Delay player data load by @SakurajiKanade

This commit is contained in:
PikaMug 2022-03-29 22:53:31 -04:00
parent d382da8a42
commit d38d09f482
2 changed files with 42 additions and 47 deletions

View File

@ -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

View File

@ -27,7 +27,7 @@
<module>v1_8_R3</module>
<module>core</module>
<module>dist</module>
<module>bungee</module>
<!--<module>bungee</module>-->
</modules>
<repositories>