package me.desht.chesscraft.commands; import me.desht.chesscraft.ChessCraft; import me.desht.chesscraft.Messages; import me.desht.chesscraft.chess.BoardView; import me.desht.chesscraft.chess.BoardViewManager; import me.desht.chesscraft.chess.TimeControlDefs; import me.desht.chesscraft.chess.ai.AIFactory; import me.desht.chesscraft.controlpanel.TimeControlButton; import me.desht.chesscraft.exceptions.ChessException; import me.desht.dhutils.MiscUtil; import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import java.util.Arrays; import java.util.List; public class ReloadCommand extends ChessAbstractCommand { public ReloadCommand() { super("chess reload", 1, 1); setPermissionNode("chesscraft.commands.reload"); setUsage("/chess reload <ai|config|gamedata|timecontrols>"); } @Override public boolean execute(Plugin plugin, CommandSender player, String[] args) throws ChessException { boolean reloadPersisted = false; boolean reloadAI = false; boolean reloadConfig = false; boolean reloadTimeControls = false; if (args[0].startsWith("a")) { //$NON-NLS-1$ reloadAI = true; } else if (args[0].startsWith("c")) { //$NON-NLS-1$ reloadConfig = true; } else if (args[0].startsWith("g")) { //$NON-NLS-1$ reloadPersisted = true; } else if (args[0].startsWith("t")) { //$NON-NLS-1$ reloadTimeControls = true; } else { showUsage(player); } if (reloadConfig) { plugin.reloadConfig(); MiscUtil.statusMessage(player, Messages.getString("ChessCommandExecutor.configReloaded")); //$NON-NLS-1$ } if (reloadAI) { AIFactory.getInstance().loadAIDefinitions(); MiscUtil.statusMessage(player, Messages.getString("ChessCommandExecutor.AIdefsReloaded")); //$NON-NLS-1$ } if (reloadPersisted) { ((ChessCraft)plugin).getPersistenceHandler().reload(); MiscUtil.statusMessage(player, Messages.getString("ChessCommandExecutor.persistedReloaded")); //$NON-NLS-1$ } if (reloadTimeControls) { TimeControlDefs.loadBaseDefs(); for (BoardView bv : BoardViewManager.getManager().listBoardViews()) { bv.getControlPanel().getSignButton(TimeControlButton.class).reloadDefs(); } MiscUtil.statusMessage(player, Messages.getString("ChessCommandExecutor.timeControlsReloaded")); //$NON-NLS-1$ } return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { if (args.length == 1) { return filterPrefix(sender, Arrays.asList("ai", "config", "gamedata", "timecontrols"), args[0]); } else { showUsage(sender); return noCompletions(sender); } } }