From a38d3734bd1a40e635266c6476843f465a63b529 Mon Sep 17 00:00:00 2001 From: Player Name Date: Thu, 27 Nov 2025 12:18:26 +0000 Subject: [PATCH] Global news announcements no longer overrun the chatbox Global news announcements are now locked behind the enable_global_chat server config setting PvP and brawler drops from the Chaos Elemental now refer to it as "the Chaos Elemental", rather than "a Chaos Elemental" PvP and brawler drops from revenants now lowercase the revenant's name --- .../world/map/zone/impl/WildernessZone.java | 6 ++++-- .../core/game/world/repository/Repository.kt | 19 ++++--------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java b/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java index e4886e5f6..623f2f080 100644 --- a/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java +++ b/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java @@ -108,7 +108,8 @@ public final class WildernessZone extends MapZone { byte glove = (byte) RandomFunction.random(1, 14); Item reward = new Item(BrawlingGloves.forIndicator(glove).getId()); GroundItemManager.create(reward, e.asNpc().getDropLocation(), killer.asPlayer()); - Repository.sendNews(killer.getUsername() + " has received " + reward.getName().toLowerCase() + " from a " + e.asNpc().getName() + "!"); + String npcString = e.getId() == NPCs.CHAOS_ELEMENTAL_3200 ? "the Chaos Elemental" : ("a " + e.asNpc().getName().toLowerCase()); + Repository.sendNews(killer.getUsername() + " has received " + reward.getName().toLowerCase() + " from " + npcString + "!"); } for (int j : PVP_GEAR) { boolean chance = RandomFunction.roll(pvpGearRate); @@ -120,7 +121,8 @@ public final class WildernessZone extends MapZone { reward = new Item(j); } GroundItemManager.create(reward, ((NPC) e).getDropLocation(), killer.asPlayer()); - Repository.sendNews(killer.asPlayer().getUsername() + " has received a " + reward.getName() + " from a " + e.asNpc().getName() + "!"); + String npcString = e.getId() == NPCs.CHAOS_ELEMENTAL_3200 ? "the Chaos Elemental" : ("a " + e.asNpc().getName().toLowerCase()); + Repository.sendNews(killer.asPlayer().getUsername() + " has received a " + reward.getName() + " from " + npcString + "!"); } } } diff --git a/Server/src/main/core/game/world/repository/Repository.kt b/Server/src/main/core/game/world/repository/Repository.kt index 575bcb0f2..81d44d5f4 100644 --- a/Server/src/main/core/game/world/repository/Repository.kt +++ b/Server/src/main/core/game/world/repository/Repository.kt @@ -6,6 +6,7 @@ import core.game.node.entity.player.Player import core.game.world.map.Location import core.game.world.map.RegionManager import core.ServerConstants +import core.api.sendMessage import core.game.world.update.UpdateSequence import java.util.* import java.util.concurrent.CopyOnWriteArrayList @@ -55,20 +56,7 @@ object Repository { */ @JvmStatic val disconnectionQueue = DisconnectionQueue() - /** - * Sends a market update message to all players. - * @param string The string. - * @param color The color. - */ - @JvmOverloads - fun sendMarketUpdate(string: String, icon: Int = 12, color: String = "") { - val players: Array = playerNames.values.toTypedArray() - val size = players.size - for (i in 0 until size) { - val player = players[i] as Player ?: continue - player.sendMessage("" + color + "Market Update: " + string) - } - } + /** * Send a news message to all players. * @param string The string. @@ -76,11 +64,12 @@ object Repository { */ @JvmStatic fun sendNews(string: String, icon: Int = 12, color: String = "CC6600") { + if (!ServerConstants.ENABLE_GLOBAL_CHAT) return val players: Array = playerNames.values.toTypedArray() val size = players.size for (i in 0 until size) { val player = players[i] as Player ?: continue - player.sendMessage("News: $string") + sendMessage(player, "News: $string") } }