Potential fix for #2324

This commit is contained in:
PikaMug 2025-01-26 22:23:09 -05:00
parent 993b483177
commit 15003f5087

View File

@ -179,13 +179,6 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
saveConfig(); saveConfig();
final BukkitStorageFactory storageFactory = new BukkitStorageFactory(this); final BukkitStorageFactory storageFactory = new BukkitStorageFactory(this);
storage = storageFactory.getInstance(); storage = storageFactory.getInstance();
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
try {
questers = storage.loadOfflineQuesters().get();
} catch (final Exception e) {
e.printStackTrace();
}
});
// 9 - Setup commands // 9 - Setup commands
if (getCommand("quests") != null) { if (getCommand("quests") != null) {
@ -243,7 +236,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
for (final Player p : getServer().getOnlinePlayers()) { for (final Player p : getServer().getOnlinePlayers()) {
getQuester(p.getUniqueId()).saveData(); getQuester(p.getUniqueId()).saveData();
} }
Bukkit.getScheduler().cancelTasks(this); getServer().getScheduler().cancelTasks(this);
getLogger().info("Closing storage..."); getLogger().info("Closing storage...");
if (storage != null) { if (storage != null) {
storage.close(); storage.close();
@ -625,22 +618,31 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
questLoader.init(); questLoader.init();
getLogger().log(Level.INFO, "Loaded " + quests.size() + " Quest(s), " + actions.size() + " Action(s), " getLogger().log(Level.INFO, "Loaded " + quests.size() + " Quest(s), " + actions.size() + " Action(s), "
+ conditions.size() + " Condition(s) and " + BukkitLang.size() + " Phrase(s)"); + conditions.size() + " Condition(s) and " + BukkitLang.size() + " Phrase(s)");
for (final Player p : getServer().getOnlinePlayers()) {
final Quester quester = new BukkitQuester(BukkitQuestsPlugin.this, p.getUniqueId());
if (!quester.hasData()) {
quester.saveData();
}
// Workaround for issues with the compass on fast join
quester.findCompassTarget();
questers.add(quester);
}
customLoader.init(); customLoader.init();
questLoader.importQuests(); questLoader.importQuests();
if (getConfigSettings().canDisableCommandFeedback()) { if (getConfigSettings().canDisableCommandFeedback()) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule sendCommandFeedback false"); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule sendCommandFeedback false");
} }
loading = false; getServer().getScheduler().runTaskAsynchronously(this, () -> {
try {
questers = storage.loadOfflineQuesters().get();
} catch (final Exception e) {
e.printStackTrace();
}
});
}, 5L); }, 5L);
getServer().getScheduler().scheduleSyncDelayedTask(this, () -> {
// Workaround for issues with the Compass on fast join
for (final Player p : getServer().getOnlinePlayers()) {
final Quester quester = new BukkitQuester(BukkitQuestsPlugin.this, p.getUniqueId());
if (!quester.hasData()) {
quester.saveData();
}
quester.findCompassTarget();
questers.add(quester);
}
loading = false;
}, 60L);
} }
/** /**
@ -653,7 +655,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
} }
loading = true; loading = true;
reloadConfig(); reloadConfig();
Bukkit.getScheduler().runTaskAsynchronously(this, () -> { getServer().getScheduler().runTaskAsynchronously(this, () -> {
try { try {
getStorage().saveOfflineQuesters().get(); getStorage().saveOfflineQuesters().get();
BukkitLang.clear(); BukkitLang.clear();
@ -697,7 +699,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
exception.printStackTrace(); exception.printStackTrace();
} }
if (callback != null) { if (callback != null) {
Bukkit.getScheduler().runTask(BukkitQuestsPlugin.this, () -> { getServer().getScheduler().runTask(BukkitQuestsPlugin.this, () -> {
loading = false; loading = false;
callback.execute(result); callback.execute(result);
}); });