mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-12-02 23:53:50 +01:00
d065d41c0e
Apparently caused issues we werent aware of. Unfortunately there's no way to improve it without blocking the main thread.
66 lines
3.6 KiB
Diff
66 lines
3.6 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 cb4f173774b46793bc3744cb3242edd9272df463..4fac720564b8687fae59c0f2e4898a48b16a9105 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -308,7 +308,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()); // CraftBukkit - fire quit instantly // Yatopia
|
|
this.networkManager.stopReading();
|
|
MinecraftServer minecraftserver = this.minecraftServer;
|
|
NetworkManager networkmanager = this.networkManager;
|
|
@@ -1603,6 +1603,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;
|
|
@@ -1618,7 +1623,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 f84bec53b9ed7f8ae4cbb391530dc675f42e2a7a..7095396f3c92c023111c659986f3fae384a7f9c6 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
|
@@ -500,6 +500,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);
|
|
@@ -588,7 +593,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
|