From fe41e79e8aa3e3ce087700f1c2261dde3abab57d Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Fri, 1 Apr 2016 01:55:08 -0500 Subject: [PATCH] Fixes: 10 minute timer for creating clan after tutorial. CCM with LeaveSpawnGoal Synchronous database calls. --- .../clans/clans/ClansDataAccessLayer.java | 19 ++++++++++++++++--- .../tutorials/clans/ClansMainTutorial.java | 1 + .../objective/goals/clan/CreateClanGoal.java | 1 + .../objective/goals/clan/LeaveSpawnGoal.java | 12 +++++++++++- .../goals/finalobj/DisbandClanGoal.java | 1 + 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java index c7e601cc4..7e991faaf 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java @@ -785,8 +785,14 @@ public class ClansDataAccessLayer // Memory claim.Safe = !claim.Safe; - // Save - _repository.updateTerritoryClaim(claim.Chunk, claim.Safe); + runAsync(new Runnable() + { + @Override + public void run() + { + _repository.updateTerritoryClaim(claim.Chunk, claim.Safe); + } + }); // Log _manager.log("Safe Zone at [" + claim.Chunk + "] set to [" + claim.Safe + "] by [" + player + "]."); @@ -807,7 +813,14 @@ public class ClansDataAccessLayer public void clanExists(String clanName, Callback callback) { - _repository.clanExists(clanName, callback); + runAsync(new Runnable() + { + @Override + public void run() + { + _repository.clanExists(clanName, callback); + } + }); } public ClanRepository getRepository() diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/ClansMainTutorial.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/ClansMainTutorial.java index d037671f2..c9d1b2b52 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/ClansMainTutorial.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/ClansMainTutorial.java @@ -93,6 +93,7 @@ public class ClansMainTutorial extends Tutorial player.teleport(Spawn.getNorthSpawn()); + ClansManager.getInstance().getItemMapManager().setMap(player); ClansManager.getInstance().getPvpTimer().unpause(player); /* diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/CreateClanGoal.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/CreateClanGoal.java index 49a4c17e5..010847631 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/CreateClanGoal.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/CreateClanGoal.java @@ -47,6 +47,7 @@ public class CreateClanGoal extends ObjectiveGoal if (contains(event.getFounder())) { finish(event.getFounder()); + ClansManager.getInstance().resetLeftTimer(event.getFounder().getUniqueId()); } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/LeaveSpawnGoal.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/LeaveSpawnGoal.java index c976aae6b..94a7a404d 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/LeaveSpawnGoal.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/clan/LeaveSpawnGoal.java @@ -1,5 +1,6 @@ package mineplex.game.clans.tutorial.tutorials.clans.objective.goals.clan; +import java.util.HashSet; import java.util.UUID; import org.bukkit.Bukkit; @@ -17,6 +18,8 @@ import mineplex.game.clans.tutorial.tutorials.clans.objective.ClanObjective; public class LeaveSpawnGoal extends ObjectiveGoal { + private HashSet _removeList = new HashSet(); + public LeaveSpawnGoal(ClanObjective objective) { super( @@ -62,8 +65,15 @@ public class LeaveSpawnGoal extends ObjectiveGoal Player player = Bukkit.getPlayer(uuid); if (!getObjective().getPlugin().isIn(player, ClansMainTutorial.Bounds.SPAWN)) { - finish(player); + _removeList.add(uuid); } } + + for (UUID uuid : _removeList) + { + finish(Bukkit.getPlayer(uuid)); + } + + _removeList.clear(); } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/finalobj/DisbandClanGoal.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/finalobj/DisbandClanGoal.java index fb1aa9210..198b1ce6a 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/finalobj/DisbandClanGoal.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/objective/goals/finalobj/DisbandClanGoal.java @@ -50,6 +50,7 @@ public class DisbandClanGoal extends ObjectiveGoal UtilPlayer.message(event.getDisbander(), F.main("Clans", "You have disbanded your Tutorial Clan.")); ClansManager.getInstance().getClanDataAccess().delete(ClansManager.getInstance().getClan(event.getDisbander()), null); + ClansManager.getInstance().resetLeftTimer(event.getDisbander().getUniqueId()); finish(event.getDisbander()); }