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