Advanced mode

This commit is contained in:
snowleo 2011-10-26 18:18:58 +02:00
parent 102570958e
commit 7f825750f0
3 changed files with 37 additions and 19 deletions

View File

@ -14,7 +14,7 @@ public abstract class AbstractState
this.stateMap = stateMap;
}
public AbstractState getState(final Class<? extends AbstractState> stateClass)
public <T extends AbstractState> T getState(final Class<? extends T> stateClass)
{
if (!stateMap.containsKey(stateClass))
{
@ -33,7 +33,7 @@ public abstract class AbstractState
throw new RuntimeException(ex);
}
}
return stateMap.get(stateClass);
return (T)stateMap.get(stateClass);
}
public abstract AbstractState getNextState();
@ -86,7 +86,10 @@ public abstract class AbstractState
/**
* Do something based on the answer, that the user gave.
*/
public abstract void doWork(WorkListener workListener);
public void doWork(final WorkListener listener)
{
listener.onWorkDone();
}
public boolean isAbortion()
{

View File

@ -0,0 +1,20 @@
package com.earth2me.essentials.update.states;
import org.bukkit.entity.Player;
public class AdvancedMode extends AbstractYesNoState
{
public AdvancedMode(final StateMap states)
{
super(states, EssentialsChat.class);
}
@Override
public void askQuestion(final Player sender)
{
sender.sendMessage("This installation mode has a lot of options.");
sender.sendMessage("Do you want use the advanced mode to see all questions?");
sender.sendMessage("Otherwise the default values will be used.");
}
}

View File

@ -1,10 +1,6 @@
package com.earth2me.essentials.update.states;
import com.earth2me.essentials.update.WorkListener;
import com.earth2me.essentials.update.tasks.InstallModule;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public class EssentialsChatSettings extends AbstractYesNoState
@ -14,21 +10,20 @@ public class EssentialsChatSettings extends AbstractYesNoState
super(states, EssentialsSpawn.class);
}
@Override
public boolean guessAnswer()
{
if (getState(AdvancedMode.class).getAnswer())
{
setAnswer(false);
return true;
}
return false;
}
@Override
public void askQuestion(final Player sender)
{
sender.sendMessage("Would you like to configure EssentialsChat to prefix ingame messages with their group?");
}
@Override
public void doWork(final WorkListener listener)
{
if (getAnswer())
{
//TODO: Configure plugin
return;
}
listener.onWorkDone();
}
}