X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodcmd.c;h=d84b25142f45327a2806e3eef407317bf4923879;hb=81af33175f966e57f1060936ea6f7092dc806abc;hp=2e833002ddd5b10e4c310b71917b796fd95d58a2;hpb=fe0a9858249e52e8ea685eeb08026fccd6841b21;p=srvx.git diff --git a/src/modcmd.c b/src/modcmd.c index 2e83300..d84b251 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -18,7 +18,7 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include "arch-version.h" +#include "git-version.h" #include "chanserv.h" #include "conf.h" #include "modcmd.h" @@ -626,7 +626,7 @@ int svccmd_invoke_argv(struct userNode *user, struct service *service, struct chanNode *channel, unsigned int argc, char *argv[], unsigned int server_qualified) { extern struct userNode *chanserv; struct svccmd *cmd; - unsigned int cmd_arg, perms, flags, options; + unsigned int cmd_arg, perms, flags, options, result; char channel_name[CHANNELLEN+1]; /* First check pubcmd for the channel. */ @@ -737,11 +737,13 @@ svccmd_invoke_argv(struct userNode *user, struct service *service, struct chanNo safestrncpy(channel_name, channel->name, sizeof(channel_name)); else channel_name[0] = 0; - if (!cmd->command->func(user, channel, argc, argv, cmd)) + if (!(result = cmd->command->func(user, channel, argc, argv, cmd))) return 0; if (!(flags & MODCMD_NO_LOG)) { enum log_severity slvl; - if (perms & ACTION_STAFF) + if (result & CMD_LOG_OVERRIDE) + slvl = LOG_OVERRIDE; + else if ((perms & ACTION_STAFF) || (result & CMD_LOG_STAFF)) slvl = LOG_STAFF; else if (perms & ACTION_OVERRIDE) slvl = LOG_OVERRIDE; @@ -875,7 +877,7 @@ modcmd_privmsg(struct userNode *user, struct userNode *bot, const char *text, in * users, except to add copyright information pertaining * to changes you make to srvx. */ - snprintf(response, sizeof(response), "\x01VERSION %s (%s) %s\x01", PACKAGE_STRING, CODENAME, ARCH_VERSION); + snprintf(response, sizeof(response), "\x01VERSION %s (%s) %s\x01", PACKAGE_STRING, CODENAME, GIT_VERSION); irc_notice_user(bot, user, response); } return; @@ -1733,7 +1735,7 @@ static MODCMD_FUNC(cmd_service_add) { reply("MCMSG_ALREADY_SERVICE", bot->nick); return 0; } - bot = AddService(nick, NULL, desc, hostname); + bot = AddLocalUser(nick, nick, hostname, desc, NULL); service_register(bot); reply("MCMSG_NEW_SERVICE", bot->nick); return 1; @@ -1853,12 +1855,27 @@ static MODCMD_FUNC(cmd_version) { * command or its accessibility to normal IRC users, except to add * copyright information pertaining to changes you make to srvx. */ - send_message_type(4, user, cmd->parent->bot, "$b"PACKAGE_STRING"$b ("CODENAME"), Built: "__DATE__", "__TIME__".\nCopyright 2000-2004 srvx Development Team.\nThe srvx Development Team includes Paul Chang, Adrian Dewhurst, Miles Peterson, Michael Poole and others.\nThe srvx Development Team can be reached at http://sf.net/projects/srvx/ or in #srvx on irc.gamesurge.net."); + send_message_type(4, user, cmd->parent->bot, "$b"PACKAGE_STRING"$b ("CODENAME"), Built: "__DATE__", "__TIME__". Copyright 2000-2006 srvx Development Team."); if ((argc > 1) && !irccasecmp(argv[1], "arch")) - send_message_type(4, user, cmd->parent->bot, "%s", ARCH_VERSION); + send_message_type(4, user, cmd->parent->bot, "%s", GIT_VERSION); + else + send_message_type(12, user, cmd->parent->bot, "The srvx Development Team includes Paul Chang, Adrian Dewhurst, Miles Peterson, Michael Poole and others.\nThe srvx Development Team can be reached at http://sf.net/projects/srvx/ or in #srvx on irc.gamesurge.net."); return 1; } +static MODCMD_FUNC(cmd_tell) { + struct userNode *target; + char *msg; + + target = GetUserH(argv[1]); + msg = unsplit_string(argv + 2, argc - 2, NULL); + if (!target) { + reply("MSG_NOT_TARGET_NAME"); + return 0; + } + send_message_type(MSG_TYPE_NOXLATE, target, cmd->parent->bot, "%s", msg); + return 1; +} void modcmd_nick_change(struct userNode *user, const char *old_nick) { @@ -2052,7 +2069,7 @@ modcmd_load_bots(struct dict *db, int default_nick) { hostname = database_get_data(rd->d.object, "hostname", RECDB_QSTRING); if (desc) { if (!svc) - svc = service_register(AddService(nick, NULL, desc, hostname)); + svc = service_register(AddLocalUser(nick, nick, hostname, desc, NULL)); else if (hostname) strcpy(svc->bot->hostname, hostname); desc = database_get_data(rd->d.object, "trigger", RECDB_QSTRING); @@ -2101,6 +2118,7 @@ modcmd_init(void) { modcmd_register(modcmd_module, "service privileged", cmd_service_privileged, 2, 0, "flags", "+oper", NULL); modcmd_register(modcmd_module, "service remove", cmd_service_remove, 2, 0, "flags", "+oper", NULL); modcmd_register(modcmd_module, "dumpmessages", cmd_dump_messages, 1, 0, "oper_level", "1000", NULL); + modcmd_register(modcmd_module, "tell", cmd_tell, 3, 0, "flags", "+oper", NULL); version_command = modcmd_register(modcmd_module, "version", cmd_version, 1, 0, NULL); message_register_table(msgtab); }