Yatopia/patches/server/0037-Respect-PlayerKickEvent-leaveMessage.patch
Ivan Pekov 86c42a4fe1
Updated Upstream and Sidestream(s) (Tuinity/EMC/Origami/Purpur)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
53d9870 Updated Upstream (Paper)

EMC Changes:
541b7328 Updated Paper

Origami Changes:
14a141e Update Paper

Purpur Changes:
17e9e39 Fix short enderman height - EntityTypes now loads before configs
8bfb9f5 Updated Upstream (Paper)
885092f Updated Upstream (Paper)
e126e38 Fix villager boat exploit
2021-01-13 08:17:16 +02:00

66 lines
3.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ivan Pekov <ivan@mrivanplays.com>
Date: Thu, 10 Sep 2020 21:16:40 +0300
Subject: [PATCH] Respect PlayerKickEvent leaveMessage
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 9d058ddf875e660cb3bd5209e5ddbf1a7abbd04c..63bceb9f1695ce4db5b932ca627d944506b03c0d 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -323,7 +323,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.networkManager.sendPacket(new PacketPlayOutKickDisconnect(ichatbasecomponent), (future) -> {
this.networkManager.close(ichatbasecomponent);
});
- this.a(ichatbasecomponent); // CraftBukkit - fire quit instantly
+ this.a(ichatbasecomponent, event.getLeaveMessage() == null || event.getLeaveMessage().equalsIgnoreCase(leaveMessage) ? null : event.getLeaveMessage()); // CraftBukkit - fire quit instantly // Yatopia
this.networkManager.stopReading();
MinecraftServer minecraftserver = this.minecraftServer;
NetworkManager networkmanager = this.networkManager;
@@ -1691,6 +1691,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(IChatBaseComponent ichatbasecomponent) {
+ // Yatopia start - added quitMessage parameter
+ a(ichatbasecomponent, null);
+ }
+ public void a(IChatBaseComponent ichatbasecomponent, String quitMessage) {
+ // Yatopia end
// CraftBukkit start - Rarely it would send a disconnect line twice
if (this.processedDisconnect) {
return;
@@ -1706,7 +1711,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
*/
this.player.p();
- String quitMessage = this.minecraftServer.getPlayerList().disconnect(this.player);
+ quitMessage = this.minecraftServer.getPlayerList().disconnect(this.player, quitMessage); // Yatopia
if ((quitMessage != null) && (quitMessage.length() > 0)) {
this.minecraftServer.getPlayerList().sendMessage(CraftChatMessage.fromString(quitMessage));
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 0fa95fa3a18c4f0e47c2becd01cf236a3acb4e82..6a0634322e4b86db2e33cef94c533dfee22e3244 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -499,6 +499,11 @@ public abstract class PlayerList {
}
public String disconnect(EntityPlayer entityplayer) { // CraftBukkit - return string
+ // Yatopia start - add quitMessage parameter
+ return disconnect(entityplayer, null);
+ }
+ public String disconnect(EntityPlayer entityplayer, String quitMessage) {
+ // Yatopia end
WorldServer worldserver = entityplayer.getWorldServer();
entityplayer.a(StatisticList.LEAVE_GAME);
@@ -598,7 +603,7 @@ public abstract class PlayerList {
cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity());
// CraftBukkit end
- return entityplayer.didPlayerJoinEvent ? playerQuitEvent.getQuitMessage() : null; // CraftBukkit // Paper - don't print quit if we never printed join
+ return entityplayer.didPlayerJoinEvent ? quitMessage != null ? quitMessage : playerQuitEvent.getQuitMessage() : null; // CraftBukkit // Paper - don't print quit if we never printed join // Yatopia
}
// CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer