org.jzuul.engine.commands
Class Command

java.lang.Object
  extended byorg.jzuul.engine.commands.Command
Direct Known Subclasses:
CommandAlias, Do, Drop, Exit, Give, Go, Hallo, Help, Inspect, Load, Look, NahrungAufnehmen, Save, Sleep, Take, Talk, Todo, Use, View, Whoami

public abstract class Command
extends Object

Die Klasse Command dient als Oberklase für alle Befehle, die verarbeitet werden können. Wenn ein neuer Befehl abgeleitet wird, müssen die Attribute name, arguments und desc gesetzt werden und die Methode action überschrieben werden.

Version:
$Revision: 1.1 $

Field Summary
protected  String[] args
          Enthällt die Argument, die dem Befehl übergeben wurden
protected  int arguments
          Die Anzahl der Argumente zu diesem Befehl.
protected  Room currentRoom
          Enthält den aktuellen Room des Players
protected  String desc
          Die Beschreibung des Befhels, wird von help() verwendet.
protected  boolean gameAction
          Legt fest ob es sich um eine GameAction, also eine Interaktion im Spiel (give,go) oder eine off Game action handelt (help,save aber auch inv oder look).
protected  boolean isAppletSave
          Legt fest ob dieser Befehl auch in der Applet Sandbox ausgeführt werden kann.
protected  String name
          Der Name des Befehls, sollte mit dem Klassennamen übereinstimmen
protected  String objectName
          Sollte von einem Befehl der in der Form "befehl " ist auf das eigentlich Objekt der Aktion gesetzt werden.
protected  Player player
          Enthält das aktulle Playerobjekt
static int VARARG_COMMAND
          Normalerweise valiediert doAction die Anzahl der Argumente die in arguments definiert wurde wenn man arguments auf VARARG_COMMAND setzt, ist eine variable Anzahl von Argumenten möglich.
 
Constructor Summary
Command()
          Konstruktor Default Werte: gameAction = true isAppletSave = true
 
Method Summary
protected abstract  boolean action()
          Diese Methode muss von jedem Befehl überschrieben werden und sollte die eigentlich Aktion implementieren
 boolean doAction(Player player, String[] args)
          Wird vom Engine aufgerufen, nachdem der Befehl identifiziert wurde.
 String getName()
          Gibt den Name, also den eigentlichen Befehl des Commands zurück
 int getNumArguments()
          Zugriff auf die Anzahl der Argumente
 String getObjectName()
          Gibt den Namen des Objektes (im sprachlichen Sinne) des Befehls zurück
 void help()
          Der help handler, der von dem Befehl help aufgerufen wird und bei einem Aufruf mit falschen Parametern.
 boolean isAppletSave()
          Ist der Behl in der Applet Sandbox ausführbar?
 boolean isGameAction()
          Zugriff auf die Eigenschaft gameAction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VARARG_COMMAND

public static final int VARARG_COMMAND
Normalerweise valiediert doAction die Anzahl der Argumente die in arguments definiert wurde wenn man arguments auf VARARG_COMMAND setzt, ist eine variable Anzahl von Argumenten möglich. Ein Beispiel ist Use

See Also:
Constant Field Values

arguments

protected int arguments
Die Anzahl der Argumente zu diesem Befehl. Default ist 0.


name

protected String name
Der Name des Befehls, sollte mit dem Klassennamen übereinstimmen


args

protected String[] args
Enthällt die Argument, die dem Befehl übergeben wurden


player

protected Player player
Enthält das aktulle Playerobjekt


currentRoom

protected Room currentRoom
Enthält den aktuellen Room des Players


desc

protected String desc
Die Beschreibung des Befhels, wird von help() verwendet.


gameAction

protected boolean gameAction
Legt fest ob es sich um eine GameAction, also eine Interaktion im Spiel (give,go) oder eine off Game action handelt (help,save aber auch inv oder look). Nach gameActions werden NPC Aktionen ausgeführt, nach off Game Actions nicht.


isAppletSave

protected boolean isAppletSave
Legt fest ob dieser Befehl auch in der Applet Sandbox ausgeführt werden kann.


objectName

protected String objectName
Sollte von einem Befehl der in der Form "befehl " ist auf das eigentlich Objekt der Aktion gesetzt werden. Wird von dem Event System genutzt um dem Objekt das Event der Aktion mitzuteilen (z.B. Event.USE)

Constructor Detail

Command

public Command()
Konstruktor Default Werte: gameAction = true isAppletSave = true

Method Detail

getNumArguments

public int getNumArguments()
Zugriff auf die Anzahl der Argumente

Returns:
die Anzahl der Argumente zu diesem Befehl

doAction

public final boolean doAction(Player player,
                              String[] args)
Wird vom Engine aufgerufen, nachdem der Befehl identifiziert wurde. Übergabeparameter wie der Spieler und die Anzahl der Argumente werden validiert.

Parameters:
player - Der aktuelle Spieler
args - Die auf der Kommandozeile angegebenen
Returns:
true wenn der Befehl erfolgreich ausgeführt wurde, false otherwise

action

protected abstract boolean action()
Diese Methode muss von jedem Befehl überschrieben werden und sollte die eigentlich Aktion implementieren

Returns:
true wenn der Befehl erfolgreich ausgeführt wurde

help

public void help()
Der help handler, der von dem Befehl help aufgerufen wird und bei einem Aufruf mit falschen Parametern. Kann überschrieben werden um eigen Hilfetexte auszugeben. Defaults to "Mit diesem Befehl" + this.desc


isGameAction

public boolean isGameAction()
Zugriff auf die Eigenschaft gameAction. Wird von dem Engine aufgerufen um festzustellen ob nach dem Ausführen NPC Aktionen durchgeführt werden sollen oder nicht.

Returns:
true if it is a gameAction, false otherwise

getObjectName

public String getObjectName()
Gibt den Namen des Objektes (im sprachlichen Sinne) des Befehls zurück

Returns:
ein GameObject Name

isAppletSave

public boolean isAppletSave()
Ist der Behl in der Applet Sandbox ausführbar?

Returns:
true wenns so ist, false otherwise

getName

public String getName()
Gibt den Name, also den eigentlichen Befehl des Commands zurück

Returns:
der Name des Befehls


Copyright © 2004 JZuul.org All Rights Reserved.
This documentation may be distributed and/or modified under the terms of the FDL