From 4d0222281564e7be703b300f10d25b12500e14ef Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sun, 14 Feb 2021 18:06:14 -0600 Subject: [PATCH] Added additional delay for sync on first player joining after boot up. First player join takes MUCH longer than subsequent joins. --- .../Aust1n46/chat/listeners/LoginListener.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java index fa87eee..916cfbe 100644 --- a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java +++ b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java @@ -26,6 +26,7 @@ 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 onPlayerKick(PlayerKickEvent plog) { @@ -100,12 +101,19 @@ public class LoginListener implements Listener { mcp.addListening(ch.getName()); } } + + 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().scheduleSyncDelayedTask(plugin, new Runnable() { + plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { public void run() { plugin.synchronize(sync, false); } - }, 10L); + }, delayInTicks); if(!plugin.getConfig().getConfigurationSection("login").getString("message", "Default").equalsIgnoreCase("Default")) { event.setJoinMessage(Format.FormatStringAll(plugin.getConfig().getConfigurationSection("login").getString("message", "Default").replace("{player}", event.getPlayer().getName()))); }