summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java')
-rw-r--r--EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java b/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java
index b217ebd4b..22fadc0de 100644
--- a/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java
+++ b/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractState.java
@@ -7,6 +7,17 @@ import org.bukkit.entity.Player;
public abstract class AbstractState
{
private transient boolean abortion = false;
+ private final transient StateMap stateMap;
+
+ public AbstractState(final StateMap stateMap)
+ {
+ this.stateMap = stateMap;
+ }
+
+ public AbstractState getState(final Class<? extends AbstractState> stateClass)
+ {
+ return stateMap.get(stateClass);
+ }
public abstract AbstractState getNextState();
@@ -40,7 +51,7 @@ public abstract class AbstractState
|| trimmedAnswer.equalsIgnoreCase("bye")
|| trimmedAnswer.equalsIgnoreCase("abort"))
{
- abortion = true;
+ abort();
return null;
}
final boolean found = reactOnAnswer(trimmedAnswer);
@@ -64,4 +75,9 @@ public abstract class AbstractState
{
return abortion;
}
+
+ protected void abort()
+ {
+ abortion = true;
+ }
}