diff --git a/gradle.properties b/gradle.properties index c10f6c8..853a5ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ kotlin.code.style=official kotlin.stdlib.default.dependency=false org.gradle.parallel=true -version=2.2.5 +version=2.2.6 diff --git a/surf-settings-api/src/main/kotlin/dev/slne/surf/settings/api/setting/SettingKeys.kt b/surf-settings-api/src/main/kotlin/dev/slne/surf/settings/api/setting/SettingKeys.kt index 8d33eba..4533e38 100644 --- a/surf-settings-api/src/main/kotlin/dev/slne/surf/settings/api/setting/SettingKeys.kt +++ b/surf-settings-api/src/main/kotlin/dev/slne/surf/settings/api/setting/SettingKeys.kt @@ -38,4 +38,8 @@ object SettingKeys { ) val FRIEND_SOUNDS = SettingKey.ofBoolean(key("friend", "sounds"), defaultValue = true) + + // Nametag + + val SHOW_NAMETAGS = SettingKey.ofBoolean(key("nametag", "show-nametags"), defaultValue = true) } \ No newline at end of file diff --git a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/PaperMain.kt b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/PaperMain.kt index 758599f..ca1fc26 100644 --- a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/PaperMain.kt +++ b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/PaperMain.kt @@ -14,7 +14,7 @@ import dev.slne.surf.settings.paper.menu.SettingsMenu import dev.slne.surf.settings.paper.menu.sub.ChatSettingsMenu import dev.slne.surf.settings.paper.menu.sub.ClanSettingsMenu import dev.slne.surf.settings.paper.menu.sub.FriendSettingsMenu -import dev.slne.surf.settings.paper.menu.sub.LobbySettingsMenu +import dev.slne.surf.settings.paper.menu.sub.OtherSettingsMenu import org.bukkit.plugin.java.JavaPlugin val plugin get() = JavaPlugin.getPlugin(PaperMain::class.java) @@ -26,7 +26,7 @@ class PaperMain : SuspendingJavaPlugin() { ChatSettingsMenu.register() ClanSettingsMenu.register() FriendSettingsMenu.register() - LobbySettingsMenu.register() + OtherSettingsMenu.register() SettingsMenu.register() } @@ -50,6 +50,7 @@ class PaperMain : SuspendingJavaPlugin() { SurfSettingsApi.createSetting(SettingKeys.FRIEND_REQUEST_NOTIFICATIONS) SurfSettingsApi.createSetting(SettingKeys.FRIEND_NOTIFICATIONS) SurfSettingsApi.createSetting(SettingKeys.FRIEND_SOUNDS) + SurfSettingsApi.createSetting(SettingKeys.SHOW_NAMETAGS) // @formatter:on } diff --git a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/SettingsMenu.kt b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/SettingsMenu.kt index 247222e..668d63d 100644 --- a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/SettingsMenu.kt +++ b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/SettingsMenu.kt @@ -9,7 +9,7 @@ import dev.slne.surf.api.paper.inventory.framework.view.AbstractSurfView import dev.slne.surf.settings.paper.menu.sub.ChatSettingsMenu import dev.slne.surf.settings.paper.menu.sub.ClanSettingsMenu import dev.slne.surf.settings.paper.menu.sub.FriendSettingsMenu -import dev.slne.surf.settings.paper.menu.sub.LobbySettingsMenu +import dev.slne.surf.settings.paper.menu.sub.OtherSettingsMenu import me.devnatan.inventoryframework.ViewConfigBuilder import me.devnatan.inventoryframework.context.RenderContext import net.kyori.adventure.text.format.TextDecoration @@ -31,10 +31,10 @@ object SettingsMenu : AbstractSurfView("Einstellungen") { } render.slot(2, 5) { - withItem(lobbyItem()) + withItem(otherItem()) onClick { click -> click.playClickSound() - click.openForPlayer(LobbySettingsMenu) + click.openForPlayer(OtherSettingsMenu) } } @@ -74,9 +74,9 @@ private fun chatItem() = buildItem(Material.BELL) { } } -private fun lobbyItem() = buildItem(Material.GOLD_NUGGET) { +private fun otherItem() = buildItem(Material.GOLD_NUGGET) { displayName { - localColored("Lobby Einstellungen".toSmallCaps(), TextDecoration.BOLD) + localColored("Allgemeine Einstellungen".toSmallCaps(), TextDecoration.BOLD) } } diff --git a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/LobbySettingsMenu.kt b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/OtherSettingsMenu.kt similarity index 58% rename from surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/LobbySettingsMenu.kt rename to surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/OtherSettingsMenu.kt index 06678d4..acfafe5 100644 --- a/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/LobbySettingsMenu.kt +++ b/surf-settings-paper/src/main/kotlin/dev/slne/surf/settings/paper/menu/sub/OtherSettingsMenu.kt @@ -21,9 +21,11 @@ import me.devnatan.inventoryframework.context.RenderContext import net.kyori.adventure.text.format.TextDecoration import org.bukkit.Material -object LobbySettingsMenu : AbstractSurfView("Lobby") { - val scroll = mutableState(false) - val joinScroll = mutableState(false) +object OtherSettingsMenu : AbstractSurfView("Allgemein") { + private val scroll = mutableState(false) + private val joinScroll = mutableState(false) + private val nametag = mutableState(false) + private val joinNametag = mutableState(false) override fun onViewInit(config: ViewConfigBuilder) { config.size(5).cancelInteractions() @@ -33,14 +35,25 @@ object LobbySettingsMenu : AbstractSurfView("Lobby") { val player = render.player scroll.set( - SurfSettingsApi.getSettingValue(player.uniqueId, SettingKeys.LOBBY_SCROLL_SOUND), render + SurfSettingsApi.getSettingValue(player.uniqueId, SettingKeys.LOBBY_SCROLL_SOUND), + render ) - joinScroll.set( - SurfSettingsApi.getSettingValue(player.uniqueId, SettingKeys.LOBBY_SCROLL_SOUND), render + SurfSettingsApi.getSettingValue( + player.uniqueId, + SettingKeys.LOBBY_SCROLL_SOUND + ), render + ) + nametag.set( + SurfSettingsApi.getSettingValue(player.uniqueId, SettingKeys.SHOW_NAMETAGS), + render + ) + joinNametag.set( + SurfSettingsApi.getSettingValue(player.uniqueId, SettingKeys.SHOW_NAMETAGS), + render ) - render.slot(3, 5) { + render.slot(3, 4) { renderWith { lobbyScrollItem(scroll[render]) } @@ -59,6 +72,25 @@ object LobbySettingsMenu : AbstractSurfView("Lobby") { watch(scroll) } + render.slot(3, 6) { + renderWith { + nameTagItem(nametag[render]) + } + onClick { click -> + val new = !nametag[render] + nametag.set(new, render) + + click.player.sendText { + appendSuccessPrefix() + success("Du hast Nametags nun ") + variableValue(if (new) "aktiviert" else "deaktiviert") + success(".") + } + click.playClickSound() + } + watch(nametag) + } + render.slot(5, 5) { withItem(buildItem(Material.BARRIER) { displayName { @@ -83,13 +115,21 @@ object LobbySettingsMenu : AbstractSurfView("Lobby") { scroll.get(close) ) } + + if (joinNametag[close] != nametag[close]) { + SurfSettingsApi.saveSetting( + player.uniqueId, + SettingKeys.SHOW_NAMETAGS, + nametag.get(close) + ) + } } } } private fun lobbyScrollItem(state: Boolean) = buildItem(Material.STONE_BUTTON) { displayName { - localColored("Hotbar Scroll Sounds".toSmallCaps(), TextDecoration.BOLD) + localColored("Lobby Hotbar Scroll Sounds".toSmallCaps(), TextDecoration.BOLD) } buildLore { @@ -108,4 +148,31 @@ private fun lobbyScrollItem(state: Boolean) = buildItem(Material.STONE_BUTTON) { emptyLine() line { spacer("Klicke, um die Einstellung zu ändern") } } +} + +private fun nameTagItem(state: Boolean) = buildItem(Material.NAME_TAG) { + displayName { + localColored("Nametag Sichtbarkeit".toSmallCaps(), TextDecoration.BOLD) + } + + buildLore { + emptyLine() + line { variableValue("Beschreibung:".toSmallCaps()) } + line { localColored("Passe die Nametag Sichtbarkeit an.") } + + emptyLine() + line { variableValue("Status:".toSmallCaps()) } + line { + spacer("-") + appendSpace() + localColored(if (state) "Aktiviert" else "Deaktiviert") + } + + emptyLine() + line { spacer("Klicke, um die Einstellung zu ändern") } + + emptyLine() + line { error("In einigen Fällen kann diese Einstellung") } + line { error("vom Server überschrieben werden.") } + } } \ No newline at end of file