00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.commands;
00023
00024 import com.realtime.crossfire.jxclient.scripts.ScriptManager;
00025 import com.realtime.crossfire.jxclient.scripts.ScriptProcess;
00026 import com.realtime.crossfire.jxclient.server.crossfire.CrossfireServerConnection;
00027 import java.util.Collection;
00028 import java.util.TreeSet;
00029 import org.jetbrains.annotations.NotNull;
00030
00035 public class ScriptsCommand extends AbstractCommand {
00036
00040 @NotNull
00041 private final ScriptManager scriptManager;
00042
00048 public ScriptsCommand(@NotNull final ScriptManager scriptManager, @NotNull final CrossfireServerConnection crossfireServerConnection) {
00049 super("scripts", crossfireServerConnection);
00050 this.scriptManager = scriptManager;
00051 }
00052
00056 @Override
00057 public boolean allArguments() {
00058 return false;
00059 }
00060
00064 @Override
00065 public void execute(@NotNull final String args) {
00066 final Collection<ScriptProcess> scriptProcesses = new TreeSet<ScriptProcess>(scriptManager.getScripts(args));
00067 if (scriptProcesses.isEmpty()) {
00068 drawInfo(scriptManager.hasScripts() ? "No matching scripts." : "No scripts running.");
00069 return;
00070 }
00071
00072 drawInfo("Running scripts:");
00073 for (final Object scriptProcess : scriptProcesses) {
00074 drawInfo("- "+scriptProcess);
00075 }
00076 }
00077
00078 }