mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-14 13:13:24 +00:00
The work process is done async to the server loop.
This commit is contained in:
parent
5641b1173c
commit
36fa05f3a6
1 changed files with 16 additions and 8 deletions
|
@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public class StateMachine extends WorkListener
|
||||
public class StateMachine extends WorkListener implements Runnable
|
||||
{
|
||||
public enum MachineResult
|
||||
{
|
||||
|
@ -92,18 +92,26 @@ public class StateMachine extends WorkListener
|
|||
public void startWork()
|
||||
{
|
||||
iterator = states.values().iterator();
|
||||
callStateWork();
|
||||
Bukkit.getScheduler().scheduleAsyncDelayedTask(getPlugin(), this);
|
||||
}
|
||||
|
||||
private void callStateWork()
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (!iterator.hasNext())
|
||||
{
|
||||
if (player.isOnline())
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable()
|
||||
{
|
||||
player.sendMessage("Installation done.");
|
||||
}
|
||||
finish();
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (StateMachine.this.player.isOnline())
|
||||
{
|
||||
StateMachine.this.player.sendMessage("Installation done.");
|
||||
}
|
||||
finish();
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
final AbstractState state = iterator.next();
|
||||
|
@ -139,7 +147,7 @@ public class StateMachine extends WorkListener
|
|||
{
|
||||
StateMachine.this.player.sendMessage(message);
|
||||
}
|
||||
StateMachine.this.callStateWork();
|
||||
Bukkit.getScheduler().scheduleAsyncDelayedTask(getPlugin(), StateMachine.this);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue