Hotfix for BungeeCord sync not working if the delay isn't long enough.

This commit is contained in:
Aust1n46 2021-04-02 21:03:22 -05:00
parent 9d42262e0f
commit 803170f8c2
2 changed files with 12 additions and 6 deletions

View File

@ -536,6 +536,15 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
// System.out.println(mcp.getPlayer().getServer().getServerName()); // System.out.println(mcp.getPlayer().getServer().getServerName());
// out.writeUTF(mcp.getPlayer().getServer().getServerName()); // out.writeUTF(mcp.getPlayer().getServer().getServerName());
out.writeUTF(mcp.getUUID().toString()); 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 { else {
out.writeUTF("Update"); out.writeUTF("Update");
@ -787,6 +796,9 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
} }
String uuid = msgin.readUTF(); String uuid = msgin.readUTF();
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(UUID.fromString(uuid)); MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(UUID.fromString(uuid));
if(p.hasPlayed()) {
return;
}
for(Object ch : p.getListening().toArray()) { for(Object ch : p.getListening().toArray()) {
String c = ch.toString(); String c = ch.toString();
ChatChannel cha = ChatChannel.getChannel(c); ChatChannel cha = ChatChannel.getChannel(c);

View File

@ -25,7 +25,6 @@ import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
//and it's data. //and it's data.
public class LoginListener implements Listener { public class LoginListener implements Listener {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
private boolean firstPlayerHasJoined = false;
@EventHandler(priority = EventPriority.LOW) @EventHandler(priority = EventPriority.LOW)
public void onPlayerQuit(PlayerQuitEvent plog) { public void onPlayerQuit(PlayerQuitEvent plog) {
@ -108,11 +107,6 @@ public class LoginListener implements Listener {
} }
long delayInTicks = 20L; long delayInTicks = 20L;
// Add extra delay to allow the sync to run properly
if(!firstPlayerHasJoined) {
delayInTicks = 100L;
firstPlayerHasJoined = true;
}
final MineverseChatPlayer sync = mcp; final MineverseChatPlayer sync = mcp;
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
public void run() { public void run() {