From 0fc651ee139d35dd7eda47dfd9ca2841b5f4050f Mon Sep 17 00:00:00 2001 From: pk910 Date: Wed, 2 Nov 2011 00:38:31 +0100 Subject: [PATCH] added funcmd_dice --- src/cmd_funcmds.c | 25 ++++++++++++++++++++++++- src/cmd_funcmds.h | 3 +++ src/commands.c | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/cmd_funcmds.c b/src/cmd_funcmds.c index 1c5d8c2..d4b2642 100644 --- a/src/cmd_funcmds.c +++ b/src/cmd_funcmds.c @@ -22,6 +22,17 @@ #include "ClientSocket.h" #include "UserNode.h" #include "ChanNode.h" +#include "lang.h" + +static const struct default_language_entry msgtab[] = { + {"FUN_DICE", "$b%s$b: A $b%d$b shows on the %d-sided die."}, /* {ARGS: "TestUser", 5, 6} */ + {"FUN_DICE_NUM", "I do not understand $b%s$b. Please use a single number above 1."}, /* {ARGS: "bla"} */ + {NULL, NULL} +}; + +void init_funcmds() { + register_default_language_table(msgtab); +} struct current_funcmd_header { struct ClientSocket *client; @@ -51,8 +62,10 @@ current_funcmd.chan = chan; \ current_funcmd.send_notice = 0; \ } - static void funcmd_reply(const char *text, ...) { + const char *reply_format = get_language_string(current_funcmd.user, text); + if(reply_format) + text = reply_format; char formatBuf[MAXLEN]; if(current_funcmd.send_notice) sprintf(formatBuf, "NOTICE %s :%s", current_funcmd.user->nick, text); @@ -81,3 +94,13 @@ CMD_BIND(funcmd_pong) { FUNCMD_HEADER; funcmd_reply("\002%s\002: Ping!", user->nick); } + +CMD_BIND(funcmd_dice) { + FUNCMD_HEADER; + int max = atoi(argv[0]); + if(max > 1) { + int val = (rand() % max) + 1; + funcmd_reply("FUN_DICE", user->nick, val, max); + } else + funcmd_reply("FUN_DICE_NUM", argv[0]); +} diff --git a/src/cmd_funcmds.h b/src/cmd_funcmds.h index e012359..9aa69dc 100644 --- a/src/cmd_funcmds.h +++ b/src/cmd_funcmds.h @@ -19,7 +19,10 @@ #include "main.h" #include "modcmd.h" +void init_funcmds(); + CMD_BIND(funcmd_ping); CMD_BIND(funcmd_pong); +CMD_BIND(funcmd_dice); #endif \ No newline at end of file diff --git a/src/commands.c b/src/commands.c index 51d4b3f..950479b 100644 --- a/src/commands.c +++ b/src/commands.c @@ -129,12 +129,14 @@ void register_commands() { #undef USER_COMMAND //Fun Commands + init_funcmds(); register_command_alias(3, "FunCMD"); #define USER_COMMAND(NAME,FUNCTION,PARAMCOUNT,FLAGS) register_command(3, NAME, FUNCTION, PARAMCOUNT, NULL, 0, FLAGS) // NAME FUNCTION PARAMS FLAGS USER_COMMAND("extscript", neonserv_cmd_extscript, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_EMPTY_ARGS | CMDFLAG_CHAN_PARAM | CMDFLAG_FUNCMD); USER_COMMAND("ping", funcmd_ping, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_FUNCMD); USER_COMMAND("pong", funcmd_pong, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_FUNCMD); + USER_COMMAND("dice", funcmd_dice, 1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_FUNCMD); #undef USER_COMMAND -- 2.20.1