mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-28 11:29:11 +00:00
Upstream has released updates that appear to apply and compile correctly Leaves Changes: LeavesMC/Leaves@08bfa446 Lithium Sleeping Block Entity(#618) (#630) LeavesMC/Leaves@610eee60 fix: fix bot resume CME (#635) LeavesMC/Leaves@04dac366 Fix vanilla display name (#638) LeavesMC/Leaves@e5aba7eb feat: hopper counter unlimited speed(#625) (#639) LeavesMC/Leaves@e44e469a fix: fix SleepingBlockEntity crash when /tick freeze (#640) LeavesMC/Leaves@5d653e31 fix: fix faster chunk serialization patch (#641) LeavesMC/Leaves@cb6cd658 [ci/skip] chore: fix patch header LeavesMC/Leaves@8d9a5b2f [ci/skip]chore: rename hopper counter enable config (#644) LeavesMC/Leaves@cc019e8f [ci/skip] feat: add Bukkit.getFeatureManager api (#645) LeavesMC/Leaves@81da0c5e [ci/skip] Bring back LivingEntity effect CME (#648) LeavesMC/Leaves@ea91106a fix: fix hopper counter config (#646) LeavesMC/Leaves@230e0987 feat: mount action(#619) (#649) LeavesMC/Leaves@d9f7afc4 fix: fix sleeping block entity(#654) (#655) LeavesMC/Leaves@12f665c0 Refactor actions (#650) LeavesMC/Leaves@c29ff9a8 feat: swap action (#657) LeavesMC/Leaves@3c09044e fix: fix grindstone curse book overstacking(#658) (#659) LeavesMC/Leaves@e05f3f7c Update paper, revert #632 (#662) LeavesMC/Leaves@0c866281 Bot Improvements (#661) LeavesMC/Leaves@956f0227 feat: add skipTripwireHookPlacementValidation to mc-technical-mode, and format config (#664) LeavesMC/Leaves@e047327c fix: fix bot use raytrace (#669) LeavesMC/Leaves@29327349 Fix #667 (#668) LeavesMC/Leaves@08f53c97 Fix bot cant get entity tracker (#670) LeavesMC/Leaves@e0d62b4e fix photographer bugs (#666) LeavesMC/Leaves@d094bdad fix: fix raid(#626) (#671) LeavesMC/Leaves@678d4e20 Revert "Fix bot cant get entity tracker (#670)" LeavesMC/Leaves@e298d097 [ci/skip] fix: fix patch name (#672) LeavesMC/Leaves@099be5b8 [ci/skip] fix: fix push to api fail when commit contains double quotation marks (#677) LeavesMC/Leaves@ba8993d3 Fix fakeplayer cant get entity tracker correctly (#676) LeavesMC/Leaves@d93e9766 feat: merge old raid config, fix bugs (#680) LeavesMC/Leaves@bf55b2a4 fix: fix sleeping block entity bug (#682) LeavesMC/Leaves@5366b382 Fix creative no clip with projectile (#683) LeavesMC/Leaves@e55edbf8 Resolves #685 (#687) LeavesMC/Leaves@a591ec57 Do not tick Arrow life regardless (#688) LeavesMC/Leaves@3623aea8 fix: stupid me (#689) LeavesMC/Leaves@73e63912 feat: update leavesclip to 3.0.7 (#681) LeavesMC/Leaves@bb5a1dff [ci/skip] fix: fix comment (#692) LeavesMC/Leaves@d87bc544 Fix #690 (#691) LeavesMC/Leaves@79d9ef74 Update paper (#693) LeavesMC/Leaves@71790286 Fix optimize noise generation LeavesMC/Leaves@3ffbde0b Optimize config transfer and remove LeavesMC/Leaves@62e62242 feat: add logger for internal plugin, and format api code (#696) LeavesMC/Leaves@f37e9d37 Fix fakeplayer break action LeavesMC/Leaves@aeb8e07d Fix fakeplayer break action * 2 LeavesMC/Leaves@40af0399 Fix StackableShulker config validator LeavesMC/Leaves@122c7365 Fix fakeplayer use action LeavesMC/Leaves@0ee80784 fix: fix photographer bugs (#699) LeavesMC/Leaves@a30c9abb Remove, and opt config and config command LeavesMC/Leaves@4b21a968 New shears wrench (#700) LeavesMC/Leaves@0f40159c Enhance update suppression (#701) LeavesMC/Leaves@374605cd Fix bot (#705) LeavesMC/Leaves@ff563baf Fix creative no clip can attract xp-orb (#706) LeavesMC/Leaves@f0de3ecd refactor: use client side judgement instead of special judgement (#708)
79 lines
5.4 KiB
Diff
79 lines
5.4 KiB
Diff
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 f09c1472d465de94b16e958ec7051f34aae7402f..b24e03e941da6e90b1b8419c7f33973aebec7818 100644
|
|
--- a/net/minecraft/server/players/PlayerList.java
|
|
+++ b/net/minecraft/server/players/PlayerList.java
|
|
@@ -445,7 +445,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()) {
|
|
@@ -458,7 +458,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
|
|
}
|
|
@@ -685,7 +685,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());
|
|
|
|
@@ -1659,4 +1659,40 @@ 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("<player_name>", craftPlayer.getName());
|
|
+
|
|
+ return net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(joinMessage)
|
|
+ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("<player_name>").replacement(craftPlayer.getName()).build())
|
|
+ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("<player_displayname>").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("<player_name>", craftPlayer.getName());
|
|
+
|
|
+ return net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(quitMessage)
|
|
+ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("<player_name>").replacement(craftPlayer.getName()).build())
|
|
+ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("<player_displayname>").replacement(craftPlayer.displayName()).build());
|
|
+ }
|
|
+
|
|
+ return net.kyori.adventure.text.Component.empty();
|
|
+ }
|
|
+ // Leaf end - Configurable connection message
|
|
}
|