Skip to content
Draft
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
14 changes: 14 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
import dev.slne.surf.surfapi.gradle.util.registerSoft
import net.minecrell.pluginyml.paper.PaperPluginDescription

plugins {
id("dev.slne.surf.surfapi.gradle.paper-plugin")
}

group = "dev.slne.surf.essentials"
version = findProperty("version") as String

dependencies {
compileOnly("dev.slne.surf.settings:surf-settings-api-common:1.21.10-1.0.1")
}

surfPaperPluginApi {
mainClass("dev.slne.surf.essentials.PaperMain")
generateLibraryLoader(false)
foliaSupported(true)

serverDependencies {
registerSoft(
"surf-settings-paper",
loadOrder = PaperPluginDescription.RelativeLoadOrder.BEFORE
)
}

authors.addAll("twisti", "red")
}
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=1.21.10-2.0.3-SNAPSHOT
version=1.21.10-2.0.4-SNAPSHOT
10 changes: 9 additions & 1 deletion src/main/kotlin/dev/slne/surf/essentials/PaperMain.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package dev.slne.surf.essentials

import com.github.shynixn.mccoroutine.folia.SuspendingJavaPlugin
import dev.slne.surf.essentials.service.settingsService
import dev.slne.surf.surfapi.bukkit.api.extensions.pluginManager
import org.bukkit.plugin.java.JavaPlugin

val plugin get() = JavaPlugin.getPlugin(PaperMain::class.java)
Expand All @@ -10,12 +12,18 @@ class PaperMain : SuspendingJavaPlugin() {
super.onLoad()
}

override fun onEnable() {
override suspend fun onEnableAsync() {
PaperCommandManager.registerAll()
PaperListenerManager.registerAll()

if (hasSettingsApi()) {
settingsService.register()
}
}

override fun onDisable() {
super.onDisable()
}

fun hasSettingsApi() = pluginManager.isPluginEnabled("surf-settings-paper")
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package dev.slne.surf.essentials.listener

import com.github.shynixn.mccoroutine.folia.launch
import dev.slne.surf.essentials.plugin
import dev.slne.surf.essentials.service.settingsService
import dev.slne.surf.essentials.service.specialItemService
import dev.slne.surf.essentials.util.util.appendNewLineArrow
import dev.slne.surf.essentials.util.util.translatable
Expand Down Expand Up @@ -70,9 +73,19 @@ object SpecialItemListener : Listener {
success(" erhalten!")
}

it.playSound(sound {
type(Sound.ENTITY_ENDER_DRAGON_GROWL)
}, net.kyori.adventure.sound.Sound.Emitter.self())
plugin.launch {
if (plugin.hasSettingsApi()) {
if (settingsService.hasSoundsEnabled(it.uniqueId)) {
it.playSound(sound {
type(Sound.ENTITY_ENDER_DRAGON_GROWL)
}, net.kyori.adventure.sound.Sound.Emitter.self())
}
} else {
it.playSound(sound {
type(Sound.ENTITY_ENDER_DRAGON_GROWL)
}, net.kyori.adventure.sound.Sound.Emitter.self())
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package dev.slne.surf.essentials.service

import dev.slne.surf.settings.api.common.dsl.settings
import dev.slne.surf.settings.api.common.surfSettingApi
import dev.slne.surf.surfapi.core.api.util.logger
import java.util.*

class SettingsService {
suspend fun register() {
logger().atInfo().log("Hooking into surf-settings...")
settings {
setting {
identifier = SPECIAL_ITEM_SOUNDS
displayName = "Special Item Geräusche"
description =
"Aktiviert oder deaktiviert Geräusche, wenn ein Spieler einen besonderen Gegenstand erhält."
category = CATEGORY_ID
defaultValue = "true"
}
}
logger().atInfo().log("Successfully hooked into surf-settings.")
}

suspend fun hasSoundsEnabled(uuid: UUID): Boolean {
val setting = surfSettingApi.getSetting(SPECIAL_ITEM_SOUNDS) ?: return false
val value = surfSettingApi.getEntry(uuid, setting)

return value?.value?.toBooleanStrictOrNull() ?: false
}


companion object {
val INSTANCE = SettingsService()
const val CATEGORY_ID = "essentials"
const val SPECIAL_ITEM_SOUNDS = "essentials-special_item_sounds"
}
}

val settingsService get() = SettingsService.INSTANCE