Код:
public void srvs_props_cmd(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    con.print(SrvUtil.HTML_HEAD + "<TITLE>"+MainProps.VERSION+" </TITLE></HEAD>" + SrvUtil.BODY + "<H2>Панель управления ботом</H2>" + "<H3>Настройки команд для сервиса " + ns + "</H3>" + "<H3>После изменений нужно перезагрузить бота!</H3>");

    String s = "<FORM METHOD=POST ACTION='" + con.getURI() + "'>" + 
            "<INPUT TYPE='hidden' NAME='page' VALUE='srvs_props_cmd_in'>" + 
            "<INPUT TYPE='hidden' NAME='ns' VALUE='" + ns +
            "'>" + "<INPUT TYPE='hidden' NAME='us' VALUE='" + us + 
            "'>" + "<INPUT TYPE='hidden' NAME='uid' VALUE='" + uid + "'>";

    s = s + "<p><a href='" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_cmd_add&ns=" + ns + 
            "'>Добавить новую</a><br>";
    for (int i = 0; i < Manager.getInstance().getService(ns).getProps().cmdCount(); i++) {
      String op = Manager.getInstance().getService(ns).getProps().getCmd(i);
      op = (op.equals("")) || (op == null) ? "пусто" : op;
      s = s + "<p><b>Команда " + i + " [ " + op + " ] - <a href='" 
              + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_edit_cmd&ns=" + ns + 
              "&nomer=" + i + "'><INPUT TYPE=button VALUE=\"Редактировать\"></a>" + " - <a href='" +
              con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd_del&ns=" + ns + 
              "&nomer=" + i + "'><INPUT TYPE=button VALUE=\"Очистить\"></a>" + " - <a href='" + 
              con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_cmd_del&ns=" + ns + 
              "&nomer=" + i + "'><INPUT TYPE=button VALUE=\"Удалить\"></a></b></p>";
    }

    con.print(s);
    if (!checkSession(uid))
      con.print("</fieldset></table><P><INPUT TYPE='button' VALUE='Назад' onClick=location.href='" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=main_page_user'></FORM>");
    else {
      con.print("</fieldset></table><P><INPUT TYPE='button' VALUE='Назад' onClick=location.href='" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=main_page'></FORM>");
    }
    con.print("</FONT></BODY></HTML>");
  }

  public void srvs_edit_cmd(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    String nomer = con.get("nomer");
    int i = Integer.parseInt(nomer);
    con.print(SrvUtil.HTML_HEAD + "<TITLE>"+MainProps.VERSION+" </TITLE></HEAD>" + SrvUtil.BODY + "<H2>Панель управления ботом</H2>" + "<H3>Редактирование команды " + i + "</H3>");

    String s = "<FORM METHOD=POST ACTION='" + con.getURI() + "'>" + "<INPUT TYPE=hidden NAME='page' VALUE='srvs_edit_cmd_in'>" + "<INPUT TYPE=hidden NAME='ns' VALUE='" + ns + "'>" + "<INPUT TYPE=hidden NAME='us' VALUE='" + us + "'>" + "<INPUT TYPE=hidden NAME='uid' VALUE='" + uid + "'>" + "<INPUT TYPE=hidden NAME='nomer' VALUE='" + nomer + "'>";

    s = s + "<p><b>Команда<br><INPUT TYPE='text' NAME='cmd_" + i + "' VALUE='" + Manager.getInstance().getService(ns).getProps().getCmd(i) + "'><br>" + "<p><b>Ответ на команду<br><textarea name='text_" + i + "' cols='80' rows='30'>" + Manager.getInstance().getService(ns).getProps().getText(i) + "</textarea><br><br>";

    s = s + "<P><INPUT TYPE='submit' VALUE='Сохранить'>";
    con.print(s);
    con.print("</fieldset></table>");
    con.print("<P><INPUT TYPE=button VALUE='Назад' onClick=location.href='" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd&ns=" + ns + "'></FORM>");
    con.print("</FONT></BODY></HTML>");
  }

  public void srvs_edit_cmd_in(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    String nomer = con.get("nomer");
    int i = Integer.parseInt(nomer);
    Manager.getInstance().getService(ns).getProps().setCmd(i, con.get("cmd_" + i), con.get("text_" + i));
    Manager.getInstance().getService(ns).getProps().save();

    con.print("<meta http-equiv='Refresh' content='0; url=" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd&ns=" + ns + "' />");
  }

  public void srvs_props_cmd_del(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    String nomer = con.get("nomer");
    int i = Integer.parseInt(nomer);
    Manager.getInstance().getService(ns).getProps().setCmd(i, "", "");
    Manager.getInstance().getService(ns).getProps().save();

    con.print("<meta http-equiv='Refresh' content='0; url=" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd&ns=" + ns + "' />");
  }

  public void srvs_cmd_add(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    Manager.getInstance().getService(ns).getProps().addCmd();
    Manager.getInstance().getService(ns).getProps().save();

    con.print("<meta http-equiv='Refresh' content='0; url=" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd&ns=" + ns + "' />");
  }

  public void srvs_cmd_del(HttpConnection con)
    throws IOException
  {
    String uid = con.get("uid");
    String us = con.get("us");
    if ((!checkSession(uid)) && 
      (!checkSession_user(uid, us))) {
      SrvUtil.error(con, "Ошибка авторизации!");
      return;
    }
    String ns = con.get("ns");
    if (!Manager.getInstance().getServiceNames().contains(ns)) {
      SrvUtil.error(con, "Отсутствует сервис с таким именем!");
      return;
    }
    String nomer = con.get("nomer");
    int i = Integer.parseInt(nomer);
    Manager.getInstance().getService(ns).getProps().delCmd(i);
    Manager.getInstance().getService(ns).getProps().save();

    con.print("<meta http-equiv='Refresh' content='0; url=" + con.getURI() + "?uid=" + uid + "&us=" + us + "&page=srvs_props_cmd&ns=" + ns + "' />");
  }
Код:
public abstract int cmdCount();
    public abstract void delCmd(int paramInt);
    public abstract void addCmd();
    public abstract void setCmd(int paramInt, String paramString1, String paramString2);
    public abstract String getCmd(int paramInt);
    public abstract String getText(int paramInt);
Код:
setIntProperty("bot.cmd.count", 1);
        setStringProperty("bot.cmd0", "!команда");
        setStringProperty("bot.cmd0.txt", "Значение команды");
        setBooleanProperty("com.on.off", true);
new UserPreference(UserPreference.BOOLEAN_TYPE, "com.on.off", "работа с командами из админки", Boolean.valueOf(getBooleanProperty("com.on.off")), true),

public int cmdCount()
  {
    return getIntProperty("bot.cmd.count");
  }

  public String getCmd(int i)
  {
    return getStringProperty("bot.cmd" + i);
  }

  public String getText(int i)
  {
    String s = getStringProperty("bot.cmd" + i + ".txt");
    s = s.replace("<br>", "\n");
    return s;
  }

  public void setCmd(int i, String cmd, String text)
  {
    setStringProperty("bot.cmd" + i, cmd);
    text = text.replace("\n", "<br>");
    setStringProperty("bot.cmd" + i + ".txt", text);
  }

  public void delCmd(int c)
  {
    for (int i = 0; i < cmdCount() - 1; i++) {
      if (i >= c) {
        setStringProperty("bot.cmd" + i, getStringProperty("bot.cmd" + (i + 1)));
        setStringProperty("bot.cmd" + i + ".txt", getStringProperty("bot.cmd" + (i + 1) + ".txt"));
      }
    }
    this.appProps.remove("bot.cmd" + (cmdCount() - 1));
    this.appProps.remove("bot.cmd" + (cmdCount() - 1) + ".txt");
    setIntProperty("bot.cmd.count", cmdCount() - 1);
  }

  public void addCmd()
  {
    int c = cmdCount();
    setIntProperty("bot.cmd.count", c + 1);
    setStringProperty("bot.cmd" + c, "!команда");
    setStringProperty("bot.cmd" + c + ".txt", "описание команды");
  }
Код:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jimbot.modules.info;

import java.util.HashMap;
import ru.jimbot.modules.Cmd;
import ru.jimbot.modules.CommandExtend;
import ru.jimbot.modules.CommandParser;
import ru.jimbot.protocol.IcqProtocol;


public class AddCom
{
  private HashMap<String, Cmd> commands = new HashMap();
  private CommandParser parser;
  private HashMap<String, CommandExtend> comMap;
  private InfoServer srv;
  private InfoCommandProc inf;
//  private InfoProps psp;

  public AddCom(InfoCommandProc inf)
  {
    parser = new CommandParser(commands);
//    psp = InfoProps.getInstance(srv.getName());
////    srv = s;
    this.inf = inf;
    comMap = new HashMap();
    init();
  }

  private void init() {
    for (int i = 0; i < inf.psp.cmdCount(); i++)
      commands.put(getCommand(i), new Cmd(getCommand(i), "", 1));
  }

  public String getCmdText(String param)
  {
    for (int i = 0; i < inf.psp.cmdCount(); i++) {
      if (!getCommand(i).equals(param)) continue; param = inf.psp.getStringProperty("bot.cmd" + i + ".txt");
    }
    return param;
  }

  public String getCommand(int i) {
    return inf.psp.getStringProperty("bot.cmd" + i);
  }

  public boolean parser(IcqProtocol proc, String uin, String mmsg) {
    String msg = mmsg.trim();
    int tp = parser.parseCommand(msg);

    if (comMap.containsKey(uin)) {
      if (!((CommandExtend)comMap.get(uin)).isExpire()) {
        tp = parser.parseCommand(((CommandExtend)comMap.get(uin)).getCmd());
      } else {
        tp = parser.parseCommand(mmsg);
        comMap.remove(uin);
      }
    } else tp = parser.parseCommand(mmsg);

    int tst = 0;
    if (tp < 0)
      tst = 0;
    else
      tst = tp;
    boolean f = true;
    switch (tst)
    {
    case 1:
      String inform = getCmdText(parser.parseCommand2(msg).cmd_name);
      proc.mq.add(uin, inform.replace("<br>", "\n"));
      break;
    default:
      f = false;
    }

    return f;
  }
}
Код:
public AddCom com;
com = new AddCom(this);
if ((psp.getBooleanProperty("com.on.off")) && (com.parser(proc, uin, tmsg))) return;