Код:
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;