From fd0c5cf27367d3454352e63c0ad6ad6114418c7f Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 27 Nov 2015 20:47:57 +0100 Subject: [PATCH 1/5] Adding some more flags. --- .../nautilus/game/arcade/gametutorial/GameTutorial.java | 9 ++++++--- .../nautilus/game/arcade/gametutorial/TutorialPhase.java | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java index c591220e1..dc157fa3e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java @@ -27,8 +27,11 @@ public abstract class GameTutorial private boolean _hasStarted; private int _tick; - + + public boolean SetTutorialPositions = true; public boolean TeleportOnEnd = true; + + public long StartAfterTutorial = 5000; public GameTutorial(ArcadeManager manager, TutorialPhase[] phases) { @@ -96,8 +99,8 @@ public abstract class GameTutorial if(TeleportOnEnd) _team.SpawnTeleport(); } - Manager.GetChat().Silence(5000, false); - Manager.GetGame().PrepareTime = (System.currentTimeMillis() - Manager.GetGame().GetStateTime()) + 5000; + Manager.GetChat().Silence(StartAfterTutorial, false); + Manager.GetGame().PrepareTime = (System.currentTimeMillis() - Manager.GetGame().GetStateTime()) + StartAfterTutorial; } protected TutorialPhase getNextPhase() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java index ed16a0e20..76445fe42 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java @@ -38,6 +38,9 @@ public abstract class TutorialPhase final public void teleport() { + if(!getTutorial().SetTutorialPositions) + return; + if(_location != null && _target != null) { prepareLocations(); From ad54d28b0d42d035bf7cc6310af0c9048aaa3382 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 27 Nov 2015 22:29:29 +0100 Subject: [PATCH 2/5] fixing teleportation issues. --- .../game/arcade/gametutorial/GameTutorial.java | 13 +++++++++++-- .../game/arcade/gametutorial/TutorialPhase.java | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java index dc157fa3e..770898720 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java @@ -72,8 +72,8 @@ public abstract class GameTutorial if(_currentPhase == null) { onEnd(); - endTutorial(); _hasEnded = true; + endTutorial(); Manager.getPluginManager().callEvent(new GameTutorialEndEvent(this)); } else @@ -97,7 +97,16 @@ public abstract class GameTutorial player.setAllowFlight(false); player.setFlying(false); if(TeleportOnEnd) - _team.SpawnTeleport(); + { + Manager.runSyncLater(new Runnable() + { + @Override + public void run() + { + _team.SpawnTeleport(); + } + }, 5); + } } Manager.GetChat().Silence(StartAfterTutorial, false); Manager.GetGame().PrepareTime = (System.currentTimeMillis() - Manager.GetGame().GetStateTime()) + StartAfterTutorial; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java index 76445fe42..18b1b513b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java @@ -64,7 +64,7 @@ public abstract class TutorialPhase @Override public void run() { - while(!_hasEnded) + while(!_hasEnded && !getTutorial().hasEnded()) { _tutorial.Manager.runSync(new Runnable() { From 66fd85af1f237b0b146491bfa9e5df67ff954667 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sat, 28 Nov 2015 23:32:09 +0100 Subject: [PATCH 3/5] Adding Phase Event. --- .../arcade/gametutorial/GameTutorial.java | 3 ++ .../events/GameTutorialPhaseEvent.java | 49 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/events/GameTutorialPhaseEvent.java diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java index 770898720..a6e8f0dc5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java @@ -7,6 +7,7 @@ import mineplex.core.visibility.VisibilityManager; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.gametutorial.events.GameTutorialEndEvent; +import nautilus.game.arcade.gametutorial.events.GameTutorialPhaseEvent; import nautilus.game.arcade.gametutorial.events.GameTutorialStartEvent; import org.bukkit.Location; @@ -66,6 +67,7 @@ public abstract class GameTutorial protected void nextPhase(boolean phaseOne) { + TutorialPhase from = _currentPhase; if(!phaseOne) _currentPhase = getNextPhase(); @@ -80,6 +82,7 @@ public abstract class GameTutorial { Manager.GetChat().Silence(7000, false); onPhaseChange(_currentPhase); + Manager.getPluginManager().callEvent(new GameTutorialPhaseEvent(this, from, _currentPhase)); _currentPhase.start(phaseOne); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/events/GameTutorialPhaseEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/events/GameTutorialPhaseEvent.java new file mode 100644 index 000000000..6d9bbf631 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/events/GameTutorialPhaseEvent.java @@ -0,0 +1,49 @@ +package nautilus.game.arcade.gametutorial.events; + +import nautilus.game.arcade.gametutorial.GameTutorial; +import nautilus.game.arcade.gametutorial.TutorialPhase; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class GameTutorialPhaseEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + private GameTutorial _tutorial; + + private TutorialPhase _from; + private TutorialPhase _to; + + public GameTutorialPhaseEvent(GameTutorial tutorial, TutorialPhase from, TutorialPhase to) + { + _tutorial = tutorial; + _from = from; + _to = to; + } + + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } + + public GameTutorial getTutorial() + { + return _tutorial; + } + + public TutorialPhase getFrom() + { + return _from; + } + + public TutorialPhase getTo() + { + return _to; + } + +} From dc68375ec8a32d5a47d1434b1846b576eded5381 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sun, 29 Nov 2015 21:48:39 +0100 Subject: [PATCH 4/5] TimeBetweenPhase Flag. --- .../src/nautilus/game/arcade/gametutorial/GameTutorial.java | 1 + .../src/nautilus/game/arcade/gametutorial/TutorialPhase.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java index a6e8f0dc5..edfef5c0d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java @@ -32,6 +32,7 @@ public abstract class GameTutorial public boolean SetTutorialPositions = true; public boolean TeleportOnEnd = true; + public long TimeBetweenPhase = 0; public long StartAfterTutorial = 5000; public GameTutorial(ArcadeManager manager, TutorialPhase[] phases) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java index 18b1b513b..5b1eab19c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java @@ -103,7 +103,7 @@ public abstract class TutorialPhase TutorialText text = getNextMessage(); if(text == null) { - _tutorial.Manager.runSync(new Runnable() + _tutorial.Manager.runSyncLater(new Runnable() { @Override public void run() @@ -112,7 +112,7 @@ public abstract class TutorialPhase onEnd(); _tutorial.nextPhase(false); } - }); + }, getTutorial().TimeBetweenPhase); break; } else From e2cfcef55b6f86cd08ae118d39e5c8dde7e1b8c7 Mon Sep 17 00:00:00 2001 From: Sarah Date: Mon, 30 Nov 2015 16:58:41 +0100 Subject: [PATCH 5/5] RunTasksSync Flag. --- .../arcade/gametutorial/GameTutorial.java | 3 ++- .../arcade/gametutorial/TutorialPhase.java | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java index edfef5c0d..7809a561e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/GameTutorial.java @@ -31,7 +31,8 @@ public abstract class GameTutorial public boolean SetTutorialPositions = true; public boolean TeleportOnEnd = true; - + public boolean RunTasksSync = true; + public long TimeBetweenPhase = 0; public long StartAfterTutorial = 5000; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java index 5b1eab19c..978a75928 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/gametutorial/TutorialPhase.java @@ -142,14 +142,21 @@ public abstract class TutorialPhase private void displayMessage(final TutorialText text) { - _tutorial.Manager.runSync(new Runnable() + if(_tutorial.RunTasksSync) { - @Override - public void run() + _tutorial.Manager.runSync(new Runnable() { - onMessageDisplay(text); - } - }); + @Override + public void run() + { + onMessageDisplay(text); + } + }); + } + else + { + onMessageDisplay(text); + } } protected TutorialText getNextMessage()