From 803170f8c2af22cec9800e35d82692186cf0c3c2 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Fri, 2 Apr 2021 21:03:22 -0500 Subject: [PATCH] Hotfix for BungeeCord sync not working if the delay isn't long enough. --- src/mineverse/Aust1n46/chat/MineverseChat.java | 12 ++++++++++++ .../Aust1n46/chat/listeners/LoginListener.java | 6 ------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/mineverse/Aust1n46/chat/MineverseChat.java b/src/mineverse/Aust1n46/chat/MineverseChat.java index 21f7801..9fcdb78 100644 --- a/src/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/mineverse/Aust1n46/chat/MineverseChat.java @@ -536,6 +536,15 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { // System.out.println(mcp.getPlayer().getServer().getServerName()); // out.writeUTF(mcp.getPlayer().getServer().getServerName()); out.writeUTF(mcp.getUUID().toString()); + Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(this, new Runnable() { + @Override + public void run() { + if(mcp.hasPlayed()) { + return; + } + synchronize(mcp, false); + } + }, 20L); // one second delay before running again } else { out.writeUTF("Update"); @@ -787,6 +796,9 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { } String uuid = msgin.readUTF(); MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(UUID.fromString(uuid)); + if(p.hasPlayed()) { + return; + } for(Object ch : p.getListening().toArray()) { String c = ch.toString(); ChatChannel cha = ChatChannel.getChannel(c); diff --git a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java index 1d4b299..62700af 100644 --- a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java +++ b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java @@ -25,7 +25,6 @@ import mineverse.Aust1n46.chat.utilities.UUIDFetcher; //and it's data. public class LoginListener implements Listener { private MineverseChat plugin = MineverseChat.getInstance(); - private boolean firstPlayerHasJoined = false; @EventHandler(priority = EventPriority.LOW) public void onPlayerQuit(PlayerQuitEvent plog) { @@ -108,11 +107,6 @@ public class LoginListener implements Listener { } long delayInTicks = 20L; - // Add extra delay to allow the sync to run properly - if(!firstPlayerHasJoined) { - delayInTicks = 100L; - firstPlayerHasJoined = true; - } final MineverseChatPlayer sync = mcp; plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { public void run() {