From e9c007514419616d10556c83035597d05cf44a2e Mon Sep 17 00:00:00 2001 From: ME1312 Date: Fri, 21 Aug 2020 18:33:09 -0400 Subject: [PATCH] Misc fixes regarding the last few commits --- .../Bungee/Network/Packet/PacketDisconnectPlayer.java | 11 ++++++++--- .../src/net/ME1312/SubServers/Bungee/SubProxy.java | 4 +++- .../src/net/ME1312/SubServers/Host/SubCommand.java | 5 +++++ .../src/net/ME1312/SubServers/Sync/ExProxy.java | 4 +++- .../Sync/Network/Packet/PacketExDisconnectPlayer.java | 2 +- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketDisconnectPlayer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketDisconnectPlayer.java index 4af621b7..9849615c 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketDisconnectPlayer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketDisconnectPlayer.java @@ -65,10 +65,15 @@ public class PacketDisconnectPlayer implements PacketObjectIn, PacketOb } else { local.disconnect(); } - client.sendPacket(new PacketDisconnectPlayer(2, tracker)); + client.sendPacket(new PacketDisconnectPlayer(0, tracker)); } else if ((remote = plugin.api.getGlobalPlayer(id)) != null) { - - client.sendPacket(new PacketDisconnectPlayer(2, tracker)); + if (remote.getProxy().getSubData()[0] != null) { + ((SubDataClient) remote.getProxy().getSubData()[0]).sendPacket(new PacketExDisconnectPlayer(remote.getUniqueId(), (data.contains(0x0002)?data.getRawString(0x0002):null), r -> { + client.sendPacket(new PacketDisconnectPlayer(r.getInt(0x0001), tracker)); + })); + } else { + client.sendPacket(new PacketDisconnectPlayer(4, tracker)); + } } else { client.sendPacket(new PacketDisconnectPlayer(3, tracker)); } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java index 48e81a27..d3a8557e 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java @@ -38,6 +38,7 @@ import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.config.ListenerInfo; import net.md_5.bungee.api.config.ServerInfo; +import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.*; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.connection.InitialHandler; @@ -853,7 +854,8 @@ public final class SubProxy extends BungeeCord implements Listener { Logger.get("SubServers").info(e.getConnection().getName() + " connected, but already had a database entry"); RemotePlayer player = rPlayers.get(e.getConnection().getUniqueId()); if (player.getProxy() == null || player.getProxy().isMaster()) { - getPlayer(player.getUniqueId()).disconnect(new TextComponent(getTranslation("already_connected_proxy"))); + ProxiedPlayer p = getPlayer(player.getUniqueId()); + if (p != null) p.disconnect(new TextComponent(getTranslation("already_connected_proxy"))); } else if (player.getProxy().getSubData()[0] != null) { ((SubDataClient) player.getProxy().getSubData()[0]).sendPacket(new PacketExDisconnectPlayer(player.getUniqueId(), getTranslation("already_connected_proxy"))); } diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java index 93127477..692ffd6a 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java @@ -902,6 +902,11 @@ public class SubCommand { "In such cases, you would want to update a single server first", "to rebuild the cache and then update the rest in bulk.", "", + "Lastly, this command can also be used to change the template of a subserver.", + "Changing a template in this way will overwrite settings in servers.yml as if", + "the template had the Update-Settings build option enabled because,", + "most of the time, it wouldn't work otherwise.", + "", "Examples:", " /update Server2", " /update Server2 1.14.4", diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java index 076010ae..8aa97196 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java @@ -37,6 +37,7 @@ import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.config.ListenerInfo; import net.md_5.bungee.api.config.ServerInfo; +import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.*; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.connection.InitialHandler; @@ -377,7 +378,8 @@ public final class ExProxy extends BungeeCord implements Listener { Logger.get("SubServers").info(e.getConnection().getName() + " connected, but already had a database entry"); RemotePlayer player = rPlayers.get(e.getConnection().getUniqueId()); if (player.getProxy() != null && player.getProxy().equalsIgnoreCase(api.getName())) { - getPlayer(player.getUniqueId()).disconnect(new TextComponent(getTranslation("already_connected_proxy"))); + ProxiedPlayer p = getPlayer(player.getUniqueId()); + if (p != null) p.disconnect(new TextComponent(getTranslation("already_connected_proxy"))); } else { ((SubDataClient) api.getSubDataNetwork()[0]).sendPacket(new PacketDisconnectPlayer(player.getUniqueId(), getTranslation("already_connected_proxy"))); } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketExDisconnectPlayer.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketExDisconnectPlayer.java index b04fddea..d978aea4 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketExDisconnectPlayer.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketExDisconnectPlayer.java @@ -56,7 +56,7 @@ public class PacketExDisconnectPlayer implements PacketObjectIn, Packet } else { local.disconnect(); } - client.sendPacket(new PacketExDisconnectPlayer(2, tracker)); + client.sendPacket(new PacketExDisconnectPlayer(0, tracker)); } else { client.sendPacket(new PacketExDisconnectPlayer(3, tracker)); }