Crossfire JXClient, Trunk  R20561
ScriptsCommand.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff.
19  * Copyright (C) 2006-2011 Andreas Kirschbaum.
20  */
21 
22 package com.realtime.crossfire.jxclient.commands;
23 
27 import java.util.Collection;
28 import java.util.TreeSet;
29 import org.jetbrains.annotations.NotNull;
30 
35 public class ScriptsCommand extends AbstractCommand {
36 
40  @NotNull
42 
48  public ScriptsCommand(@NotNull final ScriptManager scriptManager, @NotNull final CrossfireServerConnection crossfireServerConnection) {
49  super("scripts", crossfireServerConnection);
50  this.scriptManager = scriptManager;
51  }
52 
56  @Override
57  public boolean allArguments() {
58  return false;
59  }
60 
64  @Override
65  public void execute(@NotNull final String args) {
66  final Collection<ScriptProcess> scriptProcesses = new TreeSet<>(scriptManager.getScripts(args));
67  if (scriptProcesses.isEmpty()) {
68  drawInfo(scriptManager.hasScripts() ? "No matching scripts." : "No scripts running.");
69  return;
70  }
71 
72  drawInfo("Running scripts:");
73  for (final Object scriptProcess : scriptProcesses) {
74  drawInfo("- "+scriptProcess);
75  }
76  }
77 
78 }
Abstract base class for Command implementations.
boolean allArguments()
Returns whether all remaining commands should be included as arguments.whether all remaining commands...
final ScriptManager scriptManager
The ScriptManager to use.
final CrossfireServerConnection crossfireServerConnection
The connection instance.
boolean hasScripts()
Returns whether at least one script is running.
Maintains currently running script processes.
void execute(@NotNull final String args)
Executes the command with the given arguments.the command arguments
Set< ScriptProcess > getScripts(@NotNull final String partialScriptName)
Returns all running scripts matching a given (partial) name or a script ID.
ScriptsCommand(@NotNull final ScriptManager scriptManager, @NotNull final CrossfireServerConnection crossfireServerConnection)
Creates a new instance.
An external command executed as a client-sided script.
Adds encoding/decoding of crossfire protocol packets to a ServerConnection.
void drawInfo(@NotNull final String message)
Displays a regular output message.