docs: public void run(String cmd, CommandFilter f) {
  
          CommandWords commandWord = null;
  
          if ( cmd.contains(" ") ) {
              try {
                  commandWord = CommandWords.valueOf(cmd.substring(1, cmd.indexOf(" ")));
              } catch (IllegalArgumentException e) {
                  commandWord = CommandWords.INVALID_COMMAND_WORD;
              }
          } else {
              commandWord = CommandWords.INVALID_COMMAND_WORD;
          }
  
          switch (commandWord) {
              case change_player_type:
                  f.changePlayerTypeCommand(cmd.substring(20, cmd.length() - 1));
                  break;
              case error:
                  f.errorCommand(cmd.substring(7, cmd.length() - 1));
                  break;
              case hear:
                  f.hearCommand(cmd.substring(6, cmd.length() - 1));
                  break;
              case init:
                  f.initCommand(cmd.substring(6, cmd.length() - 1));
                  break;
              case ok:
                  f.okCommand(cmd.substring(4, cmd.length() - 1));
                  break;
              case player_param:
                  f.playerParamCommand(cmd.substring(14, cmd.length() - 1));
                  break;
              case player_type:
                  f.playerTypeCommand(cmd.substring(13, cmd.length() - 1));
                  break;
              case see:
                  f.seeCommand(cmd.substring(5, cmd.length() - 1));
                  break;
              case see_global:
                  f.seeCommand(cmd.substring(12, cmd.length() - 1));
                  break;
              case sense_body:
                  f.senseBodyCommand(cmd.substring(12, cmd.length() - 1));
                  break;
              case server_param:
                  f.serverParamCommand(cmd.substring(14, cmd.length() - 1));
                  break;
              case warning :
                  f.warningCommand(cmd.substring(9, cmd.length() - 1));
                  break;
              case INVALID_COMMAND_WORD :
              default :
                  throw new Error("Invalid command received: \"" + cmd + "\"");
          }
      }