From 7e7235d2940b9fc45c30e5a706a63d289e1d56f5 Mon Sep 17 00:00:00 2001 From: Haberno Date: Wed, 5 Jul 2023 01:25:15 -0400 Subject: [PATCH] Add chat message --- .../game/playerExperience/Scoreboard.kt | 8 -------- .../player/PlayerDeathMessage.kt | 17 ++++++++++++++--- .../kotlin/org/thepitcommunityserver/util/XP.kt | 9 ++++++++- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/Scoreboard.kt b/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/Scoreboard.kt index a66751b..0ffb1cf 100644 --- a/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/Scoreboard.kt +++ b/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/Scoreboard.kt @@ -76,14 +76,6 @@ object PitScoreboard : Listener { player.scoreboard = board.scoreboard } - private fun formatLevel(level: Int, prestigeLevel: Int): String { - val prestigeColor = getPrestigeColor(prestigeLevel) - val chatColor = getChatColorForLevel(level) - val formattedLevel = if (level >= 60) "${ChatColor.BOLD}$level" else level.toString() - - return "${ChatColor.RESET}${prestigeColor}[${chatColor}$formattedLevel${prestigeColor}]" - } - private fun formatLine(key: String, color: ChatColor?, value: String): String { val finalColor = color?.toString() ?: "" return ChatColor.WHITE.toString() + key + ": " + finalColor + value diff --git a/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/player/PlayerDeathMessage.kt b/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/player/PlayerDeathMessage.kt index acce78a..c4e54f4 100644 --- a/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/player/PlayerDeathMessage.kt +++ b/src/main/kotlin/org/thepitcommunityserver/game/playerExperience/player/PlayerDeathMessage.kt @@ -1,14 +1,20 @@ package org.thepitcommunityserver.game.playerExperience.player +import net.md_5.bungee.api.chat.ClickEvent +import net.md_5.bungee.api.chat.ComponentBuilder +import net.md_5.bungee.api.chat.HoverEvent +import net.md_5.bungee.api.chat.TextComponent +import net.minecraft.server.v1_8_R3.ChatClickable import net.minecraft.server.v1_8_R3.PacketPlayOutTitle +import org.bukkit.ChatColor import org.bukkit.event.EventHandler import org.bukkit.event.Listener import org.bukkit.event.entity.PlayerDeathEvent -import org.thepitcommunityserver.util.createChatComponent -import org.thepitcommunityserver.util.replaceChatColorTags -import org.thepitcommunityserver.util.sendPacketToPlayer +import org.thepitcommunityserver.db.data +import org.thepitcommunityserver.util.* object PlayerDeathMessage : Listener { + @EventHandler fun playerDeathMessage(event: PlayerDeathEvent) { val player = event.entity ?: return @@ -17,6 +23,11 @@ object PlayerDeathMessage : Listener { val title = createChatComponent(titleMessage) val titlePacket = PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, title, 0, 60, 15) + var chatMessage = TextComponent("DEATH! by ${formatLevel(player.data.level, player.data.prestige)} ${player.name} VIEW RECAP".parseChatColors()) + chatMessage.clickEvent = ClickEvent(ClickEvent.Action.RUN_COMMAND, "/recap") + chatMessage.hoverEvent = HoverEvent(HoverEvent.Action.SHOW_TEXT, ComponentBuilder("click to view kill recap".parseChatColors()).create()) + sendPacketToPlayer(player, titlePacket) + player.spigot().sendMessage(chatMessage) } } diff --git a/src/main/kotlin/org/thepitcommunityserver/util/XP.kt b/src/main/kotlin/org/thepitcommunityserver/util/XP.kt index c754298..1384916 100644 --- a/src/main/kotlin/org/thepitcommunityserver/util/XP.kt +++ b/src/main/kotlin/org/thepitcommunityserver/util/XP.kt @@ -64,7 +64,6 @@ fun getPrestigeColor(prestigeLevel: Int): ChatColor { } } - fun getPrestigeModifier(prestigeLevel: Int): Double { val modifiers = listOf( 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, @@ -77,3 +76,11 @@ fun getPrestigeModifier(prestigeLevel: Int): Double { val index = prestigeLevel.coerceIn(0, 30) return modifiers[index] } + +fun formatLevel(level: Int, prestigeLevel: Int): String { + val prestigeColor = getPrestigeColor(prestigeLevel) + val chatColor = getChatColorForLevel(level) + val formattedLevel = if (level >= 60) "${ChatColor.BOLD}$level" else level.toString() + + return "${ChatColor.RESET}${prestigeColor}[${chatColor}$formattedLevel${prestigeColor}]" +}