Skip to content

Commit 1b17c72

Browse files
Merge pull request #33 from SLNE-Development/feat/sort-lobby-server-endlich
feat: sort lobby servers by display name in NavigatorInventory
2 parents 5df293f + 6c91763 commit 1b17c72

5 files changed

Lines changed: 64 additions & 48 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
kotlin.code.style=official
22
kotlin.stdlib.default.dependency=false
33
org.gradle.parallel=true
4-
version=1.21.11-3.0.9-SNAPSHOT
4+
version=1.21.11-3.0.10-SNAPSHOT

src/main/kotlin/dev/slne/surf/lobby/config/LobbyConfig.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.spongepowered.configurate.objectmapping.ConfigSerializable
55

66
@ConfigSerializable
77
data class LobbyConfig(
8+
val survivalOpen: Boolean = false,
89
val minHeight: Int = 0,
910
val eventServerName: String = "event",
1011
val survivalServerName: String = "survival",

src/main/kotlin/dev/slne/surf/lobby/hook/npc/SurfNpcHook.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,18 @@ object SurfNpcHook {
252252
}
253253

254254
private fun queueToSurvivalServer(player: Player) {
255+
if (!lobbyConfig.survivalOpen && !player.hasPermission(PermissionRegistry.SURVIVAL_BYPASS)) {
256+
player.sendText {
257+
spacer("[")
258+
note("Nepomuk")
259+
spacer("]")
260+
appendSpace()
261+
error("Der Survival Server startet bald, sei bereit!")
262+
}
263+
return
264+
}
265+
266+
255267
surfCoreApi.getServerByName(lobbyConfig.survivalServerName)
256268
?.let { server ->
257269
plugin.launch {

src/main/kotlin/dev/slne/surf/lobby/inventory/impl/NavigatorInventory.kt

Lines changed: 49 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -122,58 +122,60 @@ fun lobbySelectorInventory() = menu(buildText { spacer("Lobby Auswahl") }, 3) {
122122
fillWith(ItemType.GRAY_STAINED_GLASS_PANE.createItemStack())
123123
})
124124
addPane(PaginatedPane(1, 1, 7, 1, Pane.Priority.HIGHEST).apply {
125-
populateWithGuiItems(surfCoreApi.getServerByCategory(lobbyConfig.lobbyCategory).map {
126-
GuiItem(buildItem(ItemType.RECOVERY_COMPASS) {
127-
displayName { variableValue(it.name) }
128-
129-
buildLore {
130-
emptyLine()
131-
line {
132-
spacer("-")
133-
appendSpace()
134-
note("Status: ")
135-
variableValue(
125+
populateWithGuiItems(
126+
surfCoreApi.getServerByCategory(lobbyConfig.lobbyCategory).sortedBy { it.displayName }
127+
.map {
128+
GuiItem(buildItem(ItemType.RECOVERY_COMPASS) {
129+
displayName { variableValue(it.displayName) }
130+
131+
buildLore {
132+
emptyLine()
133+
line {
134+
spacer("-")
135+
appendSpace()
136+
note("Status: ")
137+
variableValue(
138+
if (it.state == SurfServerState.RUNNING) {
139+
"Online"
140+
} else {
141+
"Offline"
142+
}
143+
)
144+
}
145+
line {
146+
spacer("-")
147+
appendSpace()
148+
note("Spieler: ")
149+
variableValue("${it.getPlayerCount()} / ${it.maxPlayers}")
150+
}
136151
if (it.state == SurfServerState.RUNNING) {
137-
"Online"
138-
} else {
139-
"Offline"
152+
emptyLine()
153+
line {
154+
spacer("» Klicke, um diesem Lobby Server beizutreten")
155+
}
140156
}
141-
)
142-
}
143-
line {
144-
spacer("-")
145-
appendSpace()
146-
note("Spieler: ")
147-
variableValue("${it.getPlayerCount()} / ${it.maxPlayers}")
148-
}
149-
if (it.state == SurfServerState.RUNNING) {
150-
emptyLine()
151-
line {
152-
spacer("» Klicke, um diesem Lobby Server beizutreten")
153157
}
158+
}) { event ->
159+
val player = event.whoClicked as? Player ?: return@GuiItem
160+
val updatedServer = surfCoreApi.getServerByName(it.name) ?: return@GuiItem
161+
162+
if (updatedServer.state != SurfServerState.RUNNING) {
163+
player.sendText {
164+
appendInfoPrefix()
165+
error("Dieser Server ist derzeit nicht erreichbar!")
166+
}
167+
return@GuiItem
168+
}
169+
170+
updatedServer.pullPlayers(player.surfPlayer)
154171
}
155-
}
156-
}) { event ->
157-
val player = event.whoClicked as? Player ?: return@GuiItem
158-
val updatedServer = surfCoreApi.getServerByName(it.name) ?: return@GuiItem
159-
160-
if (updatedServer.state != SurfServerState.RUNNING) {
161-
player.sendText {
162-
appendInfoPrefix()
163-
error("Dieser Server ist derzeit nicht erreichbar!")
172+
}.ifEmpty {
173+
listOf(GuiItem(buildItem(Material.BARRIER) {
174+
displayName {
175+
error("Keine Lobby Server verfügbar")
164176
}
165-
return@GuiItem
166-
}
167-
168-
updatedServer.pullPlayers(player.surfPlayer)
169-
}
170-
}.ifEmpty {
171-
listOf(GuiItem(buildItem(Material.BARRIER) {
172-
displayName {
173-
error("Keine Lobby Server verfügbar")
174-
}
175-
}))
176-
})
177+
}))
178+
})
177179
})
178180
setOnGlobalClick { it.cancel() }
179181
}

src/main/kotlin/dev/slne/surf/lobby/utils/PermissionRegistry.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ object PermissionRegistry : PermissionRegistry() {
1313

1414
val EVENT_BYPASS = create("$PREFIX.event.bypass")
1515
val QUEUE_BYPASS = create("$PREFIX.queue.bypass")
16+
val SURVIVAL_BYPASS = create("$PREFIX.survival.bypass")
1617

1718
val PUSHBACK_ATTACK = create("$PREFIX.pushback.attack")
1819
val PUSHBACK_ITEM = create("$PREFIX.pushback.item")

0 commit comments

Comments
 (0)