Server start message, and the stop one

This commit is contained in:
2025-10-05 12:13:00 +08:00
parent bc23269778
commit c2e7f613c7
3 changed files with 32 additions and 16 deletions

View File

@@ -82,9 +82,12 @@ class SolarNetworkConnect : JavaPlugin() {
messages = mapOf( messages = mapOf(
"join" to "➡️ {player} joined the game.", "join" to "➡️ {player} joined the game.",
"joinFirst" to "➡️ {player} first time joined the game.",
"quit" to "⬅️ {player} left the game.", "quit" to "⬅️ {player} left the game.",
"death" to "💀 {player} {message}", "death" to "💀 {player} {message}",
"advancement" to "🎉 {player} unlocked advancement: {advancement}" "advancement" to "🎉 {player} unlocked advancement: {advancement}",
"serverStart" to "🚀 Server started successfully",
"serverStop" to "⏹️ Server stopped"
) + (config.getConfigurationSection("messages")?.getValues(false) as? Map<String, String> ?: emptyMap()) ) + (config.getConfigurationSection("messages")?.getValues(false) as? Map<String, String> ?: emptyMap())
if (!setupNetwork()) { if (!setupNetwork()) {
@@ -109,10 +112,21 @@ class SolarNetworkConnect : JavaPlugin() {
config.getString("sn.endpoint") config.getString("sn.endpoint")
) )
); );
// Send server start message
destinationChatId?.let { chatId ->
messageService?.sendMessage(chatId, messages["serverStart"] ?: "🚀 Server started successfully")
}
} }
override fun onDisable() { override fun onDisable() {
logger.info(String.format("Disabled Version %s", description.version)); logger.info(String.format("Disabled Version %s", description.version));
// Send server stop message
destinationChatId?.let { chatId ->
messageService?.sendMessage(chatId, messages["serverStop"] ?: "⏹️ Server stopped")
}
sn?.disconnect() sn?.disconnect()
webSocketJob?.cancel() webSocketJob?.cancel()
} }

View File

@@ -3,6 +3,7 @@ package dev.solsynth.snConnect.listeners
import dev.solsynth.snConnect.services.SnMessageService import dev.solsynth.snConnect.services.SnMessageService
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.Listener import org.bukkit.event.Listener
import org.bukkit.event.entity.PlayerDeathEvent import org.bukkit.event.entity.PlayerDeathEvent
import org.bukkit.event.player.AsyncPlayerChatEvent import org.bukkit.event.player.AsyncPlayerChatEvent
@@ -10,40 +11,39 @@ import org.bukkit.event.player.PlayerAdvancementDoneEvent
import org.bukkit.event.player.PlayerJoinEvent import org.bukkit.event.player.PlayerJoinEvent
import org.bukkit.event.player.PlayerQuitEvent import org.bukkit.event.player.PlayerQuitEvent
class SnChatListener(private val messageService: SnMessageService, private val destinationChatId: String, private val messages: Map<String, String>) : Listener { class SnChatListener(
private val messageService: SnMessageService,
private val destinationChatId: String,
private val messages: Map<String, String>
) : Listener {
@EventHandler @EventHandler(priority = EventPriority.MONITOR)
fun onPlayerChat(event: AsyncPlayerChatEvent) { fun onPlayerChat(event: AsyncPlayerChatEvent) {
val message = "${event.player.name}: ${event.message}" val message = "${event.player.name}: ${event.message}"
messageService.sendMessage(destinationChatId, message) messageService.sendMessage(destinationChatId, message)
} }
@EventHandler @EventHandler(priority = EventPriority.MONITOR)
fun onPlayerJoin(event: PlayerJoinEvent) { fun onPlayerJoin(event: PlayerJoinEvent) {
val template = messages["join"] ?: "➡️ {player} joined the game." val firstTime = event.player.hasPlayedBefore();
val templateKey = if (!firstTime) "join" else "joinFirst";
val template = messages[templateKey]
?: if (!firstTime) "➡️ {player} joined the game." else "➡️ {player} first time joined the game."
val message = template.replace("{player}", event.player.name) val message = template.replace("{player}", event.player.name)
messageService.sendMessage(destinationChatId, message) messageService.sendMessage(destinationChatId, message)
} }
@EventHandler @EventHandler(priority = EventPriority.MONITOR)
fun onPlayerQuit(event: PlayerQuitEvent) { fun onPlayerQuit(event: PlayerQuitEvent) {
val template = messages["quit"] ?: "⬅️ {player} left the game." val template = messages["quit"] ?: "⬅️ {player} left the game."
val message = template.replace("{player}", event.player.name) val message = template.replace("{player}", event.player.name)
messageService.sendMessage(destinationChatId, message) messageService.sendMessage(destinationChatId, message)
} }
@EventHandler @EventHandler(priority = EventPriority.MONITOR)
fun onPlayerDeath(event: PlayerDeathEvent) { fun onPlayerDeath(event: PlayerDeathEvent) {
val template = messages["death"] ?: "💀 {player} {message}" val template = messages["death"] ?: "💀 {player} {message}"
val message = template.replace("{player}", event.entity.name).replace("{message}", event.deathMessage ?: "") val message = template.replace("{player}", event.entity.name).replace("{message}", event.deathMessage ?: "")
messageService.sendMessage(destinationChatId, message) messageService.sendMessage(destinationChatId, message)
} }
@EventHandler
fun onPlayerAdvancement(event: PlayerAdvancementDoneEvent) {
val advancement = event.advancement.key.toString().substringAfter("minecraft:")
val template = messages["advancement"] ?: "🎉 {player} unlocked advancement: {advancement}"
val message = template.replace("{player}", event.player.name).replace("{advancement}", advancement)
messageService.sendMessage(destinationChatId, message)
}
} }

View File

@@ -8,6 +8,8 @@ chat:
outgoing_room: 00000000-0000-0000-0000-00000000008b outgoing_room: 00000000-0000-0000-0000-00000000008b
messages: messages:
join: "➡️ {player} joined the game." join: "➡️ {player} joined the game."
joinFirst: "➡️ {player} first time joined the game."
quit: "⬅️ {player} left the game." quit: "⬅️ {player} left the game."
death: "💀 {player} {message}" death: "💀 {player} {message}"
advancement: "🎉 {player} unlocked advancement: {advancement}" serverStart: "🚀 Server started successfully"
serverStop: "⏹️ Server stopped"