Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ plugins {
}

repositories {
maven("https://repo.nexomc.com/releases")
maven("https://repo.nexomc.com/snapshots")
}

dependencies {
compileOnly("dev.slne.surf.npc:surf-npc-api:+")
compileOnly("com.nexomc:nexo:1.16.1")
compileOnly("com.nexomc:nexo:1.25.0-dev.11")
implementation("dev.slne.surf.event:surf-event-base-api-common:+")
implementation("dev.slne.surf.tab:surf-tab-api:+")
compileOnly("dev.slne.surf.parkour:surf-parkour-api:+")
Expand All @@ -36,12 +36,11 @@ surfPaperPluginApi {

serverDependencies {
registerSoft("surf-npc-paper")
registerSoft("surf-hologram-paper")
registerSoft("surf-parkour-paper")
registerSoft("Nexo")
registerSoft("surf-trophy-paper")
registerSoft("surf-profile-paper")
registerSoft("surf-settings-paper")
registerRequired("surf-queue-paper")
}
}
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
kotlin.code.style=official
kotlin.stdlib.default.dependency=false
org.gradle.parallel=true
version=3.1.8
version=3.1.9
10 changes: 7 additions & 3 deletions src/main/kotlin/dev/slne/surf/lobby/config/LobbyConfig.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.slne.surf.lobby.config

import org.bukkit.Bukkit
import org.bukkit.Location
import org.spongepowered.configurate.objectmapping.ConfigSerializable

Expand All @@ -11,6 +12,9 @@ data class LobbyConfig(
val survivalServerName: String = "survival",
val lobbyCategory: String = "lobby",
val spawnPoint: LocationConfig = LocationConfig.default(),
val externalEventEnabled: Boolean = false,
val externalEventReplacesDefault: Boolean = false,
val externalEventTeleportLocation: LocationConfig = LocationConfig.default()
) {
@ConfigSerializable
data class LocationConfig(
Expand All @@ -22,15 +26,15 @@ data class LobbyConfig(
val pitch: Float
) {
fun toLocation(): Location {
val worldInstance = org.bukkit.Bukkit.getWorld(world)
val worldInstance = Bukkit.getWorld(world)
?: throw IllegalArgumentException("World '$world' not found")

return Location(worldInstance, x, y, z, yaw, pitch)
}

companion object {
fun default() = LocationConfig(
world = "world",
world = Bukkit.getWorlds().first().name,
x = 0.5,
Comment thread
TheBjoRedCraft marked this conversation as resolved.
y = 100.0,
z = 0.5,
Expand All @@ -39,4 +43,4 @@ data class LobbyConfig(
)
}
}
}
}
38 changes: 33 additions & 5 deletions src/main/kotlin/dev/slne/surf/lobby/hook/npc/SurfNpcHook.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package dev.slne.surf.lobby.hook.npc

import com.github.shynixn.mccoroutine.folia.launch
import dev.slne.surf.api.core.font.toSmallCaps
import dev.slne.surf.api.core.messages.adventure.clickOpensUrl
import dev.slne.surf.api.core.messages.adventure.playSound
import dev.slne.surf.api.core.messages.adventure.sendText
Comment thread
TheBjoRedCraft marked this conversation as resolved.
import dev.slne.surf.core.api.common.SurfCoreApi
Expand Down Expand Up @@ -53,7 +52,7 @@ object SurfNpcHook {
private fun createSurvivalNpc() {
survivalNpc = npc {
displayName = {
note("Nepomuk".toSmallCaps()).decorate(TextDecoration.BOLD)
note("CastSMP".toSmallCaps()).decorate(TextDecoration.BOLD)
appendNewline()
spacer("26.1.2+")
}
Expand All @@ -67,6 +66,7 @@ object SurfNpcHook {
withEventHandler<NpcInteractEvent> {
queueToSurvivalServer(it.player)
}
scale(1.5)
}
}

Expand All @@ -86,6 +86,17 @@ object SurfNpcHook {
withEventHandler<NpcInteractEvent> {
val player = it.player

if (lobbyConfig.externalEventEnabled && lobbyConfig.externalEventReplacesDefault) {
player.teleportAsync(lobbyConfig.externalEventTeleportLocation.toLocation())
.thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
pitch(1.1f)
}
}
return@withEventHandler
}

when (eventServerBridge.state.get()) {
EventServerState.OPEN -> {
queueToEventServer(player)
Expand Down Expand Up @@ -113,13 +124,14 @@ object SurfNpcHook {
}

rotationType = NpcRotationType.FIXED
scale(1.5)
}
}

private fun createSpawnSurvivalNpc() {
spawnSurvivalNpc = npc {
displayName = {
note("Survival".toSmallCaps(), TextDecoration.BOLD)
note("CastSMP".toSmallCaps(), TextDecoration.BOLD)
}
type = EntityType.MANNEQUIN
uniqueName = "spawn_survival"
Expand All @@ -133,11 +145,12 @@ object SurfNpcHook {
player.teleportAsync(Locations.SURVIVAL_TELEPORT.getLocation()).thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
pitch(2.0f)
pitch(1.5f)
}
}
}
rotationType = NpcRotationType.FIXED
scale(1.5)
}
}

Expand All @@ -151,17 +164,30 @@ object SurfNpcHook {
skin = SurfNpcSkins.EVENT.getSkin()

location = Locations.SPAWN_EVENT.getLocation()

withKickback()
withEventHandler<NpcInteractEvent> {
val player = it.player

if (lobbyConfig.externalEventEnabled && lobbyConfig.externalEventReplacesDefault) {
player.teleportAsync(lobbyConfig.externalEventTeleportLocation.toLocation())
.thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
pitch(1.1f)
}
}
return@withEventHandler
}

player.teleportAsync(Locations.EVENT_TELEPORT.getLocation()).thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
pitch(2.0f)
pitch(1.5f)
}
}
}
scale(1.5)
rotationType = NpcRotationType.FIXED
}
}
Expand All @@ -178,6 +204,7 @@ object SurfNpcHook {
location = Locations.SPAWN_SHOP.getLocation()
withKickback()
rotationType = NpcRotationType.FIXED
scale(1.5)
}
}

Expand All @@ -201,6 +228,7 @@ object SurfNpcHook {
}
}
rotationType = NpcRotationType.FIXED
scale(1.5)
}
}

Expand Down
16 changes: 9 additions & 7 deletions src/main/kotlin/dev/slne/surf/lobby/hook/npc/SurfNpcSkins.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,27 @@ package dev.slne.surf.lobby.hook.npc

import dev.slne.surf.api.core.util.objectSetOf
import dev.slne.surf.npc.api.npc.skin.NpcSkin
import dev.slne.surf.npc.api.npc.skin.NpcSkinPart

enum class SurfNpcSkins(val skinValue: String, val skinSignature: String) {
UNKNOWN(
"ewogICJ0aW1lc3RhbXAiIDogMTY3NDQxNzAzMzQ2MCwKICAicHJvZmlsZUlkIiA6ICIzY2MxMTY3MWU0MTM0ODM0YjhjMmZjMTY1OGE4OWU3OCIsCiAgInByb2ZpbGVOYW1lIiA6ICJSb3NzaTU2IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2QwZGEwZjE0YTg1YjQzODNjYWFiNGM2NWJlOTBkMzMyNWEzMGIwY2UwNGI2YzA4ODQzODcxMDIwNDkwZDk0N2IiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==",
"VjpajnLZ4dIdfrXQJFFyV7Fp/IKEcQmEZIbiVR3MtFalVQ8BS5wCv8dsQeTmwZbv4zo4lL1urA4boAC9NIcP8KK+ucg19kgGrNDTs3Gmo7j57kZipDqKHJZMaHcvGx2Vur61YNL+cLQ9kwHaPwWdEdd9SDCJuXpvlBLrIxM8bqacyE1S/aATU388373xg2rNPCOxUy4YhScqeDSkBYdlYJ6xqQTwVIZZ8iwE/rqjq/X66VMRL6EtwwOqGqUBusvIiAfnGsyqMJ4rtohRsF9YHOR4cIk8K6E12ryl8uyp/HAkOYvfuk7TQuQSZpfgkH0aObjAeFPLGGGbV+P1cyezZm0I3erOQhviN9zfeaiuTHBmfP+RSb6dw+eQVKkdE2GkNinRp5EX5pltR3wREos2Muh2LXw3gGgWR3HvKnAZ1ofgAcIGk6pq9IKTpGaRZYhjIMpMXGsiRlgYqN4BmEDhTlV1XIldpatju6QnbTYyr8oJ97Z5FEVkhQ+5GsQnU9Rx+GyANhJjGVU06WiS/3H42SxbKaoPPIbBGPN3H8JTWO5Av3Y2zYLhWLhPFKF0b09FbhmkMJq0W9qE82DoByY/mhRmwTb1yrbKwXwxScEC4CSvbQBxwNjtp2WwttYs3L/x4Sxf4PgkPL0lvUF+yt+OGkHgJw4EzxV2giJaLfsXmsQ="
),
SURVIVAL(
"ewogICJ0aW1lc3RhbXAiIDogMTcxODMwMzkwNzU2NCwKICAicHJvZmlsZUlkIiA6ICJlY2Q0ZTI4NjdkMmE0MTE2OTljYzlkMjMzYmM1YmEyMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJSYXRlZEtub3QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTVjZDIwMDg4OGI4NGZiODA0YTE0YTQyY2IzNjI0ZDc3NTRiNDM3YTU3YjBjZWNiZTA0MmFkNTQzZmQxZGUxZCIKICAgIH0KICB9Cn0=",
"FSgou42Te1dqA7iMoa8SVRNEF79y1GglInfk9a3dqkzqJ+QBT9Im8Ddy81J/TfT9CxhXqaopovMUOecmKDn+8+HzQV4PUFqxp1EeKD2uNZ9w4UC2nTgAhIQImCoqmv3oevI5eDqJooFp4U4uiz4VG0dRMNFak1HSM5Qy63ZTnVxtYRTwGqsFIo79wAjhRuHgb8S3mtYhpwmK2NerM/j/FwB0FA+WK/dvXwTlz/34nVGpRMAWpwJcbipO0THK2lE1o8Yl803XEs0EgduU7BHnXg0r0zl9ddeLJ/7eb7/KNRCBaxEBaN1fw3KgbpqYrvkBdhuDBxmBIYjnWhSwA2MENmypyf5UR3sYSmwEjR4LKmUxuDXyqJrKBRcd3jftRR8TWl91knoNi62HyXFHdFOgLaD3Bmzj0wIgPth5mNjSVWqKC9/lWa60Lmr9g/DRtjQ79YvRntnpRKn8CGNigpklm4vZs8NoLaBcNJzVHmBREdQ36uQzIZrGvpnnur4sWqQQuC3k8pVjA4XW3xhpGtqP/F0GqIOlVFymNzhsCXvQ19uXq12PkqcWwAeERJKu+S0Ud6vi5uwqGgEANmLZlbYecHY/FGOAlT89J7I8pgVetlVosW0YO5fbqwyFDzTzr+FzHkkr+bZ+u+YyGhYW9yPT/qEHaNsqUv/0Bt+KL+BFVG8="
"ewogICJ0aW1lc3RhbXAiIDogMTc4MDUwNjUwOTkxOSwKICAicHJvZmlsZUlkIiA6ICJhNzdkNmQ2YmFjOWE0NzY3YTFhNzU1NjYxOTllYmY5MiIsCiAgInByb2ZpbGVOYW1lIiA6ICIwOEJFRDUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODBlNTQ1ZGRiOTY2NTRmYWI1NTVlNDZkMWM0OGZmNmQyYmY0YzkyZDRlNzRmYWExZDVlZGViMTQxODhhYmFhYiIKICAgIH0KICB9Cn0=",
"CKoBVXu6KLkXdmPz7Bf04Gs95vGUlzl+3hQhoXXHyUlAS7rOEFGekN7aa3Q2PWaGLoyzdusI33p4Ybywa/2j81TJ0QlIo7/Nb+IVhoLG+NOqkBZs72QVGGkH/NWzlZ76Lj08OaNMNqjcbFvdPUt83HpcoW1RsQdT/xkGQf/IH0UbO5NKBoqb0rsFfc2tWvbmCzI5ciUAhNJI1C2qe5ysUkSylwLZaURI1MwrclQCCZpefpz4LbcvYyl/TB6si2UOX6i4IuiTVHPBm75Px6imzSTNbjacmSFLXQdpdKE5y8pD5WPPQgCnYTOHo92YZPju0e+uXaUWAWCOVJ4yrxOl4j+gE3/Tyi/VYEDeLc7E+oLczQ5qFG4wcuj5Yp8ftmknSr3Obkj6sJEj73p4ylDUW5BOe2CtX1mhB1ORC8C0xd4BmwJcNgraoOpnDp4LLY3qAr6cSzIglaVaE+a24IUKzvXq6kw4FCDgyoFCljDEsVYRbsmXT9ddNaAIf8MovrRdzR+/vU47c1/VxJZApksXGEm7JPX/O7tIrrND0Pwp4eIy2LvsbatWD7ckEjbGkvNC0ke+61UKoq0La6fFHl9KHVxGH6Mnq7V76yMfXniCkOrTZHCXzWwF687NcGUwtIZTkW/LCqT9LeGCwUpoYo4hExe7arE5YHp9mUpP+E3AbH0="
),
EVENT(
"ewogICJ0aW1lc3RhbXAiIDogMTY3OTU5NzMxMjA2NiwKICAicHJvZmlsZUlkIiA6ICIxNmFkYTc5YjFjMDk0MjllOWEyOGQ5MjgwZDNjNjE5ZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJMYXp1bGl0ZV9adG9uZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YjZjYThhM2YwMTY5YzgxNDdkMGYyNjNlMTA3ZDU3YTIyMDdhZjU5NmZkMjAyNmY4OGU4MjkzMjBlNTk3NTc1IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=",
"NV9vQ1TRhq39aCIY8ghXvUmghxcHkiZ2S+wjlrFDSl4yGKcnsflvjTEGkTM/cAOklqeIfHeoPtRM4r5wCEL+QVRmfKUSGdBg83uWBiX1yFB7uowEDBx8vyzZHrUuBrj3GuP/V41LCDIPStdnWmwXTEk0Rsa36EJ6EkijEVTWuE7OVIIELpZJ0oBxYR9aqja81Mt8dTLnGbX2oLOovNfpqbs+Fy3JGhFWC/cWdy1p0jrzytrxthqYGTfYP3WMOkIFOXshynurxvKGKoOYDEPfFgUeadJJKblonZZ4tbkv4eNeClTewAE8nm914GYh2Cjelw9rZuYc9rDjU5+G+s8mcafY6Hlx1IlIYOg7pgoorRTpUUU7FbeBqchh6aclf+hDlQqsXQDAWjCdvPrKfqDbv9P9S08ZrZQYdZqyF4aN67fLt/bz59PY46ZMjE3xGSSBaxCLs0cQUMEoxT73NUak6d/kbU9/kNhIkgn7cj2B4hrL4KvtgZB8EHz8Od79DqyxLhIRZTW02Mnvcf1z4CNYTtaOzs261tVFe2SrShzYJrrHW9tKWmetFLxwT9Zu+ddayzBK5x2sYTEIbhqne1PXq7/+BF49LPRSy76c42lJpYKz+YpfVGq3+lMTkxyce+hew4+dQG5oXX7W178ZaYdq7JFNM6ffTxfayjX0sbD5wXg="
"ewogICJ0aW1lc3RhbXAiIDogMTc4MjIyMzQ2ODk4OCwKICAicHJvZmlsZUlkIiA6ICJhZmEwYmMzZTA1MjQ0MTM4YjkxMDIxY2Y3ODE2YjRkZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbGV4aXNNYWRkIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzc1NThlZjJiOWY5NjU1NTU4MTMzZmU5MDliM2Q5MzkxMWUyZDYwYWVjY2RkMDcyZmNhNTY3NmNlNjZhMTY4YTkiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==",
"ancAwwN6/cur413zm5hFp4xGY6KDcp4DVi1/VZtf76VHcOle8A5efThe1IK7DTSMqN/Uz+vQOdlmdW28iFyoaFOgmjfpu6Mnr/BqzWrXluNLhHe8CK12hMTOofH6pBSz1MckWLI9lbg6F1cdJoG6b97EuX4rjPZSjlKMVpHBVrs2hYQWsh2riKb56/HfTAgI2b9ZTaexXI14n55UFfkbCI3NqDmEOfmuVJIbDxNfsj107W+Cs+oLhxatmcwUrfqLv3R09ECfhQIzOfGgFDuN2BUX8UhPtONVJQ9Y2YpOsDY4lrJzyKM5vaIN1uHLSNb5mw97M6WRYQiwpUq0QdNvHF9jDzgfw5WbPifB3P9tuI3lhQach6uyAAN0GXIqIAsvFxOoHBMuwN3G3CX5GNZ49GEa/jDwOEZodcMN04hKqkJw5yfSzJFU0NRPWNI6HDMehNB2SLoM1SvY8roIgfylhxZeu0SHdtmKmUfEc2JnVOIo1algsa9kaJCGwBE58UW6AgewwajAhQa+rmdzsNvNg/FR6CXIEdJVJOmUubASv5BqNpHCTsfAHJ78PG8WBEAK7dBv+WWLfmawYICRRNxa5+x5+GhJHKb9Cr5qwHyU9lVk7qMu6PdHqaqNafOvKownYI1L6Fvfz7Cq0yW+++twbSr8wWjz/CFpJV78bDlFlWg="
),
RULES(
"ewogICJ0aW1lc3RhbXAiIDogMTY0OTU0MTEwOTQzNCwKICAicHJvZmlsZUlkIiA6ICJjYmFkZmRmNTRkZTM0N2UwODQ3MjUyMDIyYTFkNGRkZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJNeHJuaW5nIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2E0Y2M3ZWZiNjNlZTU4YTA2ZTBlYmJlZjdiN2U5ZTg1OGZmYTE3OGNhNWM2MjcxYzg5NjllODhlMDVlY2YwMzMiCiAgICB9CiAgfQp9",
"b5ODc0ibj8ux9FjBwtqgXPYmLd3ZKsMARL2bl8CYh0xALmCqcUXfgSwbCNU3A+DWvu86VGu4P3utw2286UNy46Zgfw0Dw4n0yyOUXD9VXU+dEh9NMN98fvjcV54TySkI9xk+yfkLweEXN+rK0AlcxJwdhDqihb4ZOYmR4zVqyPcU1ol1iZium5T+YLNilAl0eUoYd7DU74bGfkRDDrsTfU/hx65kk0nhPu7PhkYueGBw2voiyyTWdiXrXpgzK3z5q1VRTaovXAJOp60l2w/9nv3QktlviL/HcZ2uLy8YYWPZMWtKxZ79SJvTgh1gxYJq7dY0JSnNc+6yURRBAquSzypRPC5JdNFLt7NEfmeZGF8excrhXVcd938AiZsVS/+e5wjUOsqCzrqcfGAJdlZsPs1eoguLJMKHwYQSnNEeFFp6wMHLtKKr6RzMiH/5o6ZFwShM6UJv2PNX/qB0wZ3nTf4mwX+nW2AHKBr3YBi40VEBrOqTnBNkc87GGl7Mw5vwcNOluFpruKlNcxeG9BcLAxrPgft5LyFYyhQC5FGThJTbHxif2tRjTpzDqjiPmPa9XNM0gSJt+9mSrdAgl74jf4okwpCBXC6D+oDlZEQAsT21coypSMWu6tUkxPqzYPdo6UJFJCsDeRUzTUufe65xiX8vUIN1/4Y7pBK0DiZLTC0="
"ewogICJ0aW1lc3RhbXAiIDogMTYyMTkyNjMzOTIxNywKICAicHJvZmlsZUlkIiA6ICJjNjc3MGJjZWMzZjE0ODA3ODc4MTU0NWRhMGFmMDI1NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJDVUNGTDE2IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IzYjNhMzM2YTc3Y2FiOGI3NDQ2ODY4Y2VhMjkyMTkwZTc3Mjk4ZjJiNjBlODM1YjkwNTY4NjI1MDJkNjU0NjAiCiAgICB9CiAgfQp9",
"gbIH16YWg05ykuKXq1Whju1CN68gDa3C3TeCr8aNZ+hHsl6aw+sGUJC9a1brV1IzOFhXKyjxe6AcjVQM6/7wltkGCZ0HNh0BiOglWXK2pbv5xZF6v5pM3YPaDNQ37gxEDsnxw8XJkVGHFNKaFz6dNIn/sjUU0uPiwlv1772zX2EN0FcyWB+YgpKDjZ4x0xs+DytxrFQatvdrEIHnEWzq4bGGoDomN8yQccPhqB1rtDGp3TuXvzSfjwDvzzo7aVuFk6qfILW6DctAP+w6bfFE2OpgQoZrAX5/lcgjPGcMbdDi9eWHHh4BFuTJ68ZYzXyXK4j1NHRxtkCPajgdfTKmMzKhyZ5iRcASREaU7wAqErSY2ZBLx99kjfilI8qJ/wDxlnrFrYEbT0iRbLWLjThtO7X0e8+KSAe/1TKp4EdmhQ9YBd9OYTmW7tmDyRU15ukeKHUOA2njIXXDg58Rq6n2+6drb0mPJ6e69+ibu2Gg+Ou1tOxsS5XhFpnquAHCipSbqOBkyZcttR0KCxt23KENVG+66jhCjWTseXEh/yJhUhMvL18kkDQeO3OED0JRh/IG8M/lQEk1V8qT4FTTX3tATsLPbgGQtU5RlvKE4pTusN5v4ZFq+wVEXuZyNiwKgxNt4UUYsifRJ27wcwg/0YH8O7EAnJgUnGWAlurMEaFALow="
)
;

fun getSkin() = NpcSkin(name, skinValue, skinSignature, objectSetOf())
fun getSkin() =
NpcSkin(name, skinValue, skinSignature, objectSetOf(*NpcSkinPart.entries.toTypedArray()))
}
4 changes: 2 additions & 2 deletions src/main/kotlin/dev/slne/surf/lobby/hook/trophy/TrophyHook.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package dev.slne.surf.lobby.hook.trophy

import dev.slne.surf.trophy.api.surfTrophyApi
import dev.slne.surf.trophy.api.SurfTrophyApi
import org.bukkit.entity.Player

object TrophyHook {
fun openMenu(player: Player) {
surfTrophyApi.showTrophyMenu(player.uniqueId, player.uniqueId)
SurfTrophyApi.showTrophyMenu(player.uniqueId, player.uniqueId)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.github.shynixn.mccoroutine.folia.launch
import com.sksamuel.aedile.core.expireAfterWrite
import dev.slne.surf.api.core.font.toSmallCaps
import dev.slne.surf.api.core.messages.adventure.buildText
import dev.slne.surf.api.core.messages.adventure.clickOpensUrl
import dev.slne.surf.api.core.messages.adventure.playSound
import dev.slne.surf.api.core.messages.adventure.sendText
Comment thread
TheBjoRedCraft marked this conversation as resolved.
import dev.slne.surf.api.paper.builder.buildItem
Expand Down Expand Up @@ -67,6 +66,19 @@ object NavigatorInventory : View() {

render.layoutSlot('E').withItem(eventServerItem).onClick { click ->
val player = click.player

if (lobbyConfig.externalEventEnabled && lobbyConfig.externalEventReplacesDefault) {
player.teleportAsync(lobbyConfig.externalEventTeleportLocation.toLocation())
.thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
pitch(1.1f)
}
}
player.closeInventory()
return@onClick
}

player.teleportAsync(Locations.EVENT_TELEPORT.getLocation()).thenRun {
player.playSound(true) {
type(Sound.ENTITY_ENDERMAN_TELEPORT)
Expand Down Expand Up @@ -98,8 +110,8 @@ object NavigatorInventory : View() {
appendInfoPrefix()
info("Das Regelwerk findest du hier: ")
append {
variableValue("server.castcrafter.de/rules")
clickOpensUrl("https://server.castcrafter.de/rules")
variableValue("docs.castcrafter.de/rules")
clickOpensUrl("https://docs.castcrafter.de/rules")
}
}
}
Expand All @@ -111,7 +123,7 @@ object NavigatorInventory : View() {
private val connectingPlayers =
Caffeine.newBuilder().expireAfterWrite(5.minutes).build<UUID, Long>()

fun lobbySelectorView() = paginatedSurfView("Lobby Auswahl") {
fun lobbySelectorView() = paginatedSurfView("Lobbies") {
pagination {
lazySource {
SurfCoreApi.getServerByCategory(lobbyConfig.lobbyCategory)
Expand Down Expand Up @@ -245,18 +257,38 @@ private val cosmeticsItem
private val survivalServerItem
get() = plugin.getInvisibleItem().apply {
displayName {
primary("Survival Server")
primary("CastSMP ")
Comment thread
TheBjoRedCraft marked this conversation as resolved.
darkSpacer("(Survival)")
}

buildLore {
emptyLine()
line {
note("Beschreibung:".toSmallCaps())
}
line {
info("Der ")
variableValue("CastSMP")
info(" ist ein")
variableValue(" friedlicher")
info(" Survival Server.")
}

line {
info("Hier kannst du entspannt")
variableValue(" deine Träume")
info(" verwirklichen.")
}

emptyLine()

line {
note("Status:".toSmallCaps())
}
line {
when (SurfCoreApi.getServerByName(lobbyConfig.survivalServerName)?.state) {
SurfServerState.RUNNING -> success("Der Survival Server ist erreichbar")
else -> error("Der Survival Server ist derzeit nicht erreichbar")
SurfServerState.RUNNING -> success("Der CastSMP ist erreichbar")
else -> error("Der CastSMP ist derzeit nicht erreichbar")
}
}

Expand Down Expand Up @@ -313,4 +345,4 @@ private val eventServerItem
}
}
}
}
}
Loading