added funcmd_dice
authorpk910 <philipp@zoelle1.de>
Tue, 1 Nov 2011 23:38:31 +0000 (00:38 +0100)
committerpk910 <philipp@zoelle1.de>
Tue, 1 Nov 2011 23:43:29 +0000 (00:43 +0100)
src/cmd_funcmds.c
src/cmd_funcmds.h
src/commands.c

index 1c5d8c2cd71fcd40877d0befcf2f00ad4f07affa..d4b2642fa63ba1ac33fb90b4f7a9caa431565006 100644 (file)
 #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]);
+}
index e0123595768fb01898eb6d1fe582b0f99d70dc88..9aa69dc2e8d191dc74bd621b851e15779fbb2f89 100644 (file)
 #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
index 51d4b3fcf416c8bdf46207666fc98668d325b543..950479b06c8d86d5fbc7ecf8e5ffe553c4ced437 100644 (file)
@@ -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