From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Sun, 2 Jun 2024 01:21:36 +0800 Subject: [PATCH] Configurable connection message diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java index f71debc88c1d16c09546c026817aa192faac8fc6..4fa7952c30408e898cc2e3ce41d5b0f44f19ae31 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -434,7 +434,7 @@ public abstract class PlayerList { // Ensure that player inventory is populated with its viewer player.containerMenu.transferTo(player.containerMenu, bukkitPlayer); - org.bukkit.event.player.PlayerJoinEvent playerJoinEvent = new org.bukkit.event.player.PlayerJoinEvent(bukkitPlayer, io.papermc.paper.adventure.PaperAdventure.asAdventure(mutableComponent)); // Paper - Adventure + org.bukkit.event.player.PlayerJoinEvent playerJoinEvent = new org.bukkit.event.player.PlayerJoinEvent(bukkitPlayer, getJoinMsg(mutableComponent, bukkitPlayer)); // Paper - Adventure // Leaf - Configurable connection message - join message this.cserver.getPluginManager().callEvent(playerJoinEvent); if (!player.connection.isAcceptingMessages()) { @@ -447,7 +447,7 @@ public abstract class PlayerList { final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); - if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure + if (org.dreeam.leaf.config.modules.misc.ConnectionMessage.joinEnabled && jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure // Leaf - Configurable connection message - join message joinMessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(jm); // Paper - Adventure this.server.getPlayerList().broadcastSystemMessage(joinMessage, false); // Paper - Adventure } @@ -678,7 +678,7 @@ public abstract class PlayerList { player.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper - Inventory close reason } - org.bukkit.event.player.PlayerQuitEvent playerQuitEvent = new org.bukkit.event.player.PlayerQuitEvent(player.getBukkitEntity(), leaveMessage, player.quitReason); // Paper - Adventure & Add API for quit reason + org.bukkit.event.player.PlayerQuitEvent playerQuitEvent = new org.bukkit.event.player.PlayerQuitEvent(player.getBukkitEntity(), getQuitMsg(leaveMessage, player.getBukkitEntity()), player.quitReason); // Paper - Adventure & Add API for quit reason // Leaf - Configurable connection message - quit message this.cserver.getPluginManager().callEvent(playerQuitEvent); player.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); @@ -1674,4 +1674,38 @@ public abstract class PlayerList { public boolean isAllowCommandsForAllPlayers() { return this.allowCommandsForAllPlayers; } + + // Leaf start - Configurable connection message + private net.kyori.adventure.text.Component getJoinMsg(MutableComponent defaultJoinMsg, org.bukkit.craftbukkit.entity.CraftPlayer craftPlayer) { + if (org.dreeam.leaf.config.modules.misc.ConnectionMessage.joinEnabled) { + if ("default".equals(org.dreeam.leaf.config.modules.misc.ConnectionMessage.joinMessage)) { + return io.papermc.paper.adventure.PaperAdventure.asAdventure(defaultJoinMsg); + } + + final String joinMessage = org.dreeam.leaf.config.modules.misc.ConnectionMessage.joinMessage + .replace("", craftPlayer.getName()); + + return net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(joinMessage) + .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("").replacement(craftPlayer.displayName()).build()); + } + + return net.kyori.adventure.text.Component.empty(); + } + + private net.kyori.adventure.text.Component getQuitMsg(net.kyori.adventure.text.Component defaultJoinMsg, org.bukkit.craftbukkit.entity.CraftPlayer craftPlayer) { + if (org.dreeam.leaf.config.modules.misc.ConnectionMessage.quitEnabled) { + if ("default".equals(org.dreeam.leaf.config.modules.misc.ConnectionMessage.quitMessage)) { + return defaultJoinMsg; + } + + final String quitMessage = org.dreeam.leaf.config.modules.misc.ConnectionMessage.quitMessage + .replace("", craftPlayer.getName()); + + return net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(quitMessage) + .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("").replacement(craftPlayer.displayName()).build()); + } + + return net.kyori.adventure.text.Component.empty(); + } + // Leaf end - Configurable connection message }