mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-08-03 11:06:08 +00:00
Minor changes because we use a map instead of a list
This commit is contained in:
parent
b07b3fc373
commit
9c793208ad
1 changed files with 7 additions and 6 deletions
|
@ -2,6 +2,8 @@ package com.earth2me.essentials.update.states;
|
||||||
|
|
||||||
import com.earth2me.essentials.update.WorkListener;
|
import com.earth2me.essentials.update.WorkListener;
|
||||||
import com.earth2me.essentials.update.VersionInfo;
|
import com.earth2me.essentials.update.VersionInfo;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Iterator;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
@ -24,7 +26,7 @@ public class StateMachine extends WorkListener
|
||||||
states.clear();
|
states.clear();
|
||||||
states.add(new EssentialsChat(states));
|
states.add(new EssentialsChat(states));
|
||||||
states.add(new EssentialsProtect(states));
|
states.add(new EssentialsProtect(states));
|
||||||
current = states.get(0);
|
current = states.values().iterator().next();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MachineResult askQuestion()
|
public MachineResult askQuestion()
|
||||||
|
@ -58,16 +60,17 @@ public class StateMachine extends WorkListener
|
||||||
current = next;
|
current = next;
|
||||||
return askQuestion();
|
return askQuestion();
|
||||||
}
|
}
|
||||||
private int position = 0;
|
private transient Iterator<AbstractState> iterator;
|
||||||
|
|
||||||
public void startWork()
|
public void startWork()
|
||||||
{
|
{
|
||||||
|
iterator = states.values().iterator();
|
||||||
callStateWork();
|
callStateWork();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void callStateWork()
|
private void callStateWork()
|
||||||
{
|
{
|
||||||
if (position > states.size())
|
if (!iterator.hasNext())
|
||||||
{
|
{
|
||||||
if (player.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
|
@ -75,14 +78,13 @@ public class StateMachine extends WorkListener
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final AbstractState state = states.get(position);
|
final AbstractState state = iterator.next();
|
||||||
state.doWork(this);
|
state.doWork(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWorkAbort(final String message)
|
public void onWorkAbort(final String message)
|
||||||
{
|
{
|
||||||
position = 0;
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable()
|
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -99,7 +101,6 @@ public class StateMachine extends WorkListener
|
||||||
@Override
|
@Override
|
||||||
public void onWorkDone(final String message)
|
public void onWorkDone(final String message)
|
||||||
{
|
{
|
||||||
position++;
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable()
|
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue