From cdc75e8ff92fad04eb98e2c3c2aae16df800e327 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 5 Jul 2018 18:21:50 +0100 Subject: [PATCH] Fix some stupid issues --- .../mineplex/core/mission/MissionClient.java | 10 +++++- .../mineplex/core/mission/MissionManager.java | 33 +++++++++++-------- .../core/mission/MissionRepository.java | 2 +- .../nautilus/game/arcade/ArcadeManager.java | 23 +++++++------ 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionClient.java b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionClient.java index 612dd1ddd..4386929ab 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionClient.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionClient.java @@ -34,7 +34,15 @@ public class MissionClient { Map unsaved = new HashMap<>(_missions.size()); - _missions.forEach(mission -> unsaved.put(mission, mission.saveProgress())); + _missions.forEach(mission -> + { + if (mission.isDiscarded() || mission.hasRewarded()) + { + return; + } + + unsaved.put(mission, mission.saveProgress()); + }); return unsaved; } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionManager.java b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionManager.java index 63ea6ad1e..4636cd0bc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionManager.java @@ -282,22 +282,29 @@ public class MissionManager extends MiniDbClientPlugin mission.reward(); - player.sendMessage(""); - player.sendMessage(" " + mission.getLength().getChatColour() + C.Bold + mission.getLength().getName() + " Mission Complete! " + C.mElem + C.Bold + mission.getName()); - player.sendMessage(" " + C.cGray + mission.getDescription()); - player.sendMessage(""); - - for (LevelReward reward : mission.getRewards()) + runAsync(() -> { - reward.claim(player); - player.sendMessage(" - " + reward.getDescription()); - } + if (_repository.completeMission(ClientManager.getAccountId(player), mission.getId())) + { + runSync(() -> + { + player.sendMessage(""); + player.sendMessage(" " + mission.getLength().getChatColour() + C.Bold + mission.getLength().getName() + " Mission Complete! " + C.mElem + C.Bold + mission.getName()); + player.sendMessage(" " + C.cGray + mission.getDescription()); + player.sendMessage(""); - player.sendMessage(""); - player.playSound(player.getLocation(), Sound.LEVEL_UP, 1, (float) Math.random()); + for (LevelReward reward : mission.getRewards()) + { + reward.claim(player); + player.sendMessage(" - " + reward.getDescription()); + } - _statsManager.incrementStat(player, mission.getLength().getStatName(), 1); - runAsync(() -> _repository.completeMission(ClientManager.getAccountId(player), mission.getId())); + player.sendMessage(""); + player.playSound(player.getLocation(), Sound.LEVEL_UP, 1, (float) Math.random()); + + }); + } + }); } public void incrementProgress(Player player, int amount, MissionTrackerType trackerType, GameDisplay game, T data) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionRepository.java index 4ddec63b3..0716169e7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mission/MissionRepository.java @@ -109,7 +109,7 @@ public class MissionRepository extends RepositoryBase { while (resultSet.next()) { - complete.Set(resultSet.getBoolean("complete")); + complete.Set(resultSet.getByte("complete") == PlayerMission.COMPLETE); } }, new ColumnInt("accountId", accountId), diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index 92776debe..1b111650b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -1145,9 +1145,12 @@ public class ArcadeManager extends MiniPlugin implements IRelation @EventHandler public void Login(PlayerLoginEvent event) { + Player player = event.getPlayer(); + CoreClient client = _clientManager.Get(event.getPlayer()); + if (Bukkit.getServer().hasWhitelist()) { - if (_clientManager.Get(event.getPlayer().getUniqueId()).hasPermission(Perm.BYPASS_WHITELIST)) + if (client.hasPermission(Perm.BYPASS_WHITELIST)) { event.allow(); event.setResult(PlayerLoginEvent.Result.ALLOWED); @@ -1159,9 +1162,9 @@ public class ArcadeManager extends MiniPlugin implements IRelation } else { - for (OfflinePlayer player : Bukkit.getWhitelistedPlayers()) + for (OfflinePlayer other : Bukkit.getWhitelistedPlayers()) { - if (player.getName().equalsIgnoreCase(event.getPlayer().getName())) + if (other.getName().equalsIgnoreCase(player.getName())) { event.allow(); event.setResult(PlayerLoginEvent.Result.ALLOWED); @@ -1178,29 +1181,29 @@ public class ArcadeManager extends MiniPlugin implements IRelation // Reserved Slot Check if (Bukkit.getOnlinePlayers().size() >= Bukkit.getServer().getMaxPlayers()) { - if (_clientManager.Get(event.getPlayer().getUniqueId()).hasPermission(Perm.JOIN_FULL_STAFF)) + if (client.hasPermission(Perm.JOIN_FULL_STAFF)) { event.allow(); event.setResult(PlayerLoginEvent.Result.ALLOWED); return; } - else if (_clientManager.Get(event.getPlayer().getUniqueId()).hasPermission(Perm.JOIN_FULL) - || _donationManager.Get(event.getPlayer().getUniqueId()).ownsUnknownSalesPackage(_serverConfig.ServerType + " ULTRA")) + else if (client.hasPermission(Perm.JOIN_FULL) || _donationManager.Get(player).ownsUnknownSalesPackage(_serverConfig.ServerType + " ULTRA")) { + String reason = C.Bold + "Server has reached max capacity for gameplay purposes."; - if (GetGame() != null && GetGame().DontAllowOverfill) + if (GetGame() == null || GetGame().DontAllowOverfill) { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, C.Bold + "Server has reached max capacity for gameplay purposes."); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, reason); return; } else if (Bukkit.getServer().getOnlinePlayers().size() / Bukkit.getMaxPlayers() > 1.5) { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, C.Bold + "Server has reached max capacity for gameplay purposes."); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, reason); return; } else if (_gameHostManager.isEventServer() && Bukkit.getServer().getOnlinePlayers().size() >= 128) { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, C.Bold + "Server has reached max capacity for gameplay purposes."); + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, reason); return; }