import java.util.StringTokenizer;
import util.bit.Bit;
abstract class Command {
    /* options */
    static final int OPT_PLR  = Bit.BIT0;
    static final int OPT_CRT  = Bit.BIT1;
  
    static protected Manager theManager = null;
    static protected World   theWorld   = null;
  static void setManager(Manager aManager) {
    theManager = aManager;
  }
  static void setWorld(World aWorld) {
    theWorld = aWorld;
  }
  
    private String theName = null;
    private int    minRank;
    private int    minPos;
    private int    options;
  
  Command(String name, int mRank, int mPos, int opt) {
    theName = name;
    minRank = mRank;
    minPos  = mPos;
    options = opt;
  }
    
    String getName() {
      return theName;
    }
    
    boolean hasName(String name) {
      return getName().startsWith(name);
    }
    
    int getMinRank() {
      return minRank;
    }
    int getMinPos() {
	return minPos;
    }
    boolean allowPlayer() {
	return Bit.isSet(options, OPT_PLR);
    }
    boolean allowCreature() {
	return Bit.isSet(options, OPT_CRT);
    }
    abstract void execute(Char aChar, StringTokenizer toker, String cmd, String cmdLine);
}