mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-27 09:51:20 +01:00
Delay player data load by @SakurajiKanade
This commit is contained in:
parent
d382da8a42
commit
d38d09f482
@ -57,7 +57,6 @@ import org.bukkit.event.player.PlayerFishEvent.State;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerLoginEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
@ -853,51 +852,6 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLogin(final PlayerLoginEvent evt) {
|
||||
final Player player = evt.getPlayer();
|
||||
// Cannot check Quests#canUseQuests until PlayerJoinEvent
|
||||
final IQuester noobCheck = new Quester(plugin, player.getUniqueId());
|
||||
if (plugin.getSettings().canGenFilesOnJoin() && !noobCheck.hasData()) {
|
||||
noobCheck.saveData();
|
||||
}
|
||||
|
||||
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> {
|
||||
final CompletableFuture<IQuester> cf = plugin.getStorage().loadQuester(player.getUniqueId());
|
||||
try {
|
||||
final IQuester quester = cf.get();
|
||||
if (quester == null) {
|
||||
return;
|
||||
}
|
||||
for (final IQuest q : quester.getCompletedQuestsTemp()) {
|
||||
if (q != null) {
|
||||
if (!quester.getCompletedTimes().containsKey(q) && q.getPlanner().getCooldown() > -1) {
|
||||
quester.getCompletedTimes().put(q, System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final IQuest quest : quester.getCurrentQuestsTemp().keySet()) {
|
||||
quester.checkQuest(quest);
|
||||
}
|
||||
for (final IQuest quest : quester.getCurrentQuestsTemp().keySet()) {
|
||||
if (quester.getCurrentStage(quest).getDelay() > -1) {
|
||||
quester.startStageTimer(quest);
|
||||
}
|
||||
}
|
||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
|
||||
if (quester.hasJournal()) {
|
||||
quester.updateJournal();
|
||||
}
|
||||
if (quester.canUseCompass()) {
|
||||
quester.findCompassTarget();
|
||||
}
|
||||
}, 40L);
|
||||
} catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(final PlayerJoinEvent evt) {
|
||||
final Player player = evt.getPlayer();
|
||||
@ -911,6 +865,47 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
});
|
||||
}
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final IQuester noobCheck = new Quester(plugin, player.getUniqueId());
|
||||
if (plugin.getSettings().canGenFilesOnJoin() && !noobCheck.hasData()) {
|
||||
noobCheck.saveData();
|
||||
}
|
||||
|
||||
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, () -> {
|
||||
final CompletableFuture<IQuester> cf = plugin.getStorage().loadQuester(player.getUniqueId());
|
||||
try {
|
||||
final IQuester quester = cf.get();
|
||||
if (quester == null) {
|
||||
return;
|
||||
}
|
||||
for (final IQuest q : quester.getCompletedQuestsTemp()) {
|
||||
if (q != null) {
|
||||
if (!quester.getCompletedTimes().containsKey(q) && q.getPlanner().getCooldown() > -1) {
|
||||
quester.getCompletedTimes().put(q, System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final IQuest quest : quester.getCurrentQuestsTemp().keySet()) {
|
||||
quester.checkQuest(quest);
|
||||
}
|
||||
for (final IQuest quest : quester.getCurrentQuestsTemp().keySet()) {
|
||||
if (quester.getCurrentStage(quest).getDelay() > -1) {
|
||||
quester.startStageTimer(quest);
|
||||
}
|
||||
}
|
||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
|
||||
if (quester.hasJournal()) {
|
||||
quester.updateJournal();
|
||||
}
|
||||
if (quester.canUseCompass()) {
|
||||
quester.findCompassTarget();
|
||||
}
|
||||
}, 40L);
|
||||
} catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, 20L);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
Loading…
Reference in New Issue
Block a user