diff --git a/bukkit/src/main/java/me/william278/husksync/bukkit/config/ConfigLoader.java b/bukkit/src/main/java/me/william278/husksync/bukkit/config/ConfigLoader.java index 609613cb..4c9fbdc7 100644 --- a/bukkit/src/main/java/me/william278/husksync/bukkit/config/ConfigLoader.java +++ b/bukkit/src/main/java/me/william278/husksync/bukkit/config/ConfigLoader.java @@ -27,6 +27,7 @@ public class ConfigLoader { Settings.syncFlight = config.getBoolean("synchronisation_settings.flight", false); Settings.useNativeImplementation = config.getBoolean("native_advancement_synchronization", false); + Settings.synchronizationTimeoutRetryDelay = config.getLong("synchronization_timeout_retry_delay", 15L); } } diff --git a/bukkit/src/main/java/me/william278/husksync/bukkit/listener/BukkitEventListener.java b/bukkit/src/main/java/me/william278/husksync/bukkit/listener/BukkitEventListener.java index 22debfc1..95c3610e 100644 --- a/bukkit/src/main/java/me/william278/husksync/bukkit/listener/BukkitEventListener.java +++ b/bukkit/src/main/java/me/william278/husksync/bukkit/listener/BukkitEventListener.java @@ -1,6 +1,7 @@ package me.william278.husksync.bukkit.listener; import me.william278.husksync.HuskSyncBukkit; +import me.william278.husksync.Settings; import me.william278.husksync.bukkit.data.DataViewer; import me.william278.husksync.bukkit.util.PlayerSetter; import org.bukkit.Bukkit; @@ -37,7 +38,7 @@ public class BukkitEventListener implements Listener { return; // If the plugin has not been initialized correctly // Update the player's data - PlayerSetter.updatePlayerData(player); + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> PlayerSetter.updatePlayerData(player)); } @EventHandler(priority = EventPriority.LOWEST) @@ -55,14 +56,16 @@ public class BukkitEventListener implements Listener { // Send a redis message requesting the player data (if they need to) if (HuskSyncBukkit.bukkitCache.isPlayerRequestingOnJoin(player.getUniqueId())) { - try { - PlayerSetter.requestPlayerData(player.getUniqueId()); - } catch (IOException e) { - plugin.getLogger().log(Level.SEVERE, "Failed to send a PlayerData fetch request", e); - } + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { + try { + PlayerSetter.requestPlayerData(player.getUniqueId()); + } catch (IOException e) { + plugin.getLogger().log(Level.SEVERE, "Failed to send a PlayerData fetch request", e); + } + }); } else { - // If the player's data wasn't set after 10 ticks, ensure it will be - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + // If the player's data wasn't set after 20 ticks, ensure it will be + Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, () -> { if (player.isOnline()) { try { if (HuskSyncBukkit.bukkitCache.isAwaitingDataFetch(player.getUniqueId())) { @@ -72,7 +75,7 @@ public class BukkitEventListener implements Listener { plugin.getLogger().log(Level.SEVERE, "Failed to send a PlayerData fetch request", e); } } - }, 5); + }, Settings.synchronizationTimeoutRetryDelay); } } diff --git a/bukkit/src/main/resources/config.yml b/bukkit/src/main/resources/config.yml index a4b1da83..0db0fe4e 100644 --- a/bukkit/src/main/resources/config.yml +++ b/bukkit/src/main/resources/config.yml @@ -17,4 +17,5 @@ synchronisation_settings: flight: false cluster_id: 'main' check_for_updates: true +synchronization_timeout_retry_delay: 15 native_advancement_synchronization: true \ No newline at end of file diff --git a/common/src/main/java/me/william278/husksync/Settings.java b/common/src/main/java/me/william278/husksync/Settings.java index ab5e0590..4b9f35b1 100644 --- a/common/src/main/java/me/william278/husksync/Settings.java +++ b/common/src/main/java/me/william278/husksync/Settings.java @@ -68,7 +68,7 @@ public class Settings { public static boolean syncLocation; public static boolean syncFlight; - // Future + public static long synchronizationTimeoutRetryDelay; public static boolean useNativeImplementation; // This Cluster ID diff --git a/gradle.properties b/gradle.properties index 41fd0adc..d38f53d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.parallel=true javaVersion=16 -plugin_version=1.3.2 +plugin_version=1.3.3 plugin_archive=husksync \ No newline at end of file