diff --git a/src/main/java/com/gamingmesh/jobs/Jobs.java b/src/main/java/com/gamingmesh/jobs/Jobs.java index 5464ffe9..8b496a88 100644 --- a/src/main/java/com/gamingmesh/jobs/Jobs.java +++ b/src/main/java/com/gamingmesh/jobs/Jobs.java @@ -453,20 +453,17 @@ public class Jobs extends JavaPlugin { return jobsIds; } - /** - * Executes startup - * @throws IOException - */ - public void startup() { + private void startup() { reload(true); - loadAllPlayersData(); - // add all online players - Bukkit.getServer().getOnlinePlayers().forEach(getPlayerManager()::playerJoin); + CompletableFuture pd = loadAllPlayersData(); + + // attempt to add all online players to cache + pd.thenAccept(e -> Bukkit.getServer().getOnlinePlayers().forEach(getPlayerManager()::playerJoin)); } - public static void loadAllPlayersData() { - CompletableFuture.supplyAsync(() -> { + public static CompletableFuture loadAllPlayersData() { + return CompletableFuture.supplyAsync(() -> { long time = System.currentTimeMillis(); // Cloning to avoid issues HashMap temp = new HashMap<>(getPlayerManager().getPlayersInfoUUIDMap()); @@ -768,10 +765,8 @@ public class Jobs extends JavaPlugin { paymentThread.shutdown(); paymentThread = null; } + smanager = new SelectionManager(); - if (dao != null) { - dao.closeConnections(); - } getGCManager().reload(); getLanguage().reload(); diff --git a/src/main/java/com/gamingmesh/jobs/container/JobsPlayer.java b/src/main/java/com/gamingmesh/jobs/container/JobsPlayer.java index f8a99a44..80e8079e 100644 --- a/src/main/java/com/gamingmesh/jobs/container/JobsPlayer.java +++ b/src/main/java/com/gamingmesh/jobs/container/JobsPlayer.java @@ -330,6 +330,7 @@ public class JobsPlayer { int TotalLevel = getTotalLevels(); Parser eq = Jobs.getGCManager().getLimit(type).getMaxEquation(); eq.setVariable("totallevel", TotalLevel); + maxJobsEquation = Jobs.getPlayerManager().getMaxJobs(this); limits.put(type, (int) eq.getValue()); setSaved(false); }