]> jfr.im git - irc/quakenet/newserv.git/blobdiff - lua/luabot.h
Remove most of the sstring code.
[irc/quakenet/newserv.git] / lua / luabot.h
index 0c153b8ed9e2bc8163a147b40bdea70217cc5abc..e8014782f48ef278456f46bb73bee552bd19f0d7 100644 (file)
@@ -8,12 +8,14 @@
 #include "../nick/nick.h"
 #include "../channel/channel.h"
 
-int lua_channelmessage(channel *cp, char *message, ...);
-int lua_message(nick *np, char *message, ...);
-int lua_notice(nick *np, char *message, ...);
+int lua_channelmessage(channel *cp, char *message, ...) __attribute__ ((format (printf, 2, 3)));
+int lua_message(nick *np, char *message, ...) __attribute__ ((format (printf, 2, 3)));
+int lua_notice(nick *np, char *message, ...) __attribute__ ((format (printf, 2, 3)));
 int _lua_vpcall(lua_State *l, void *function, int mode, const char *sig, ...);
+char *printallmodes(channel *cp);
 
-nick *lua_nick;
+extern nick *lua_nick;
+extern sstring *luabotnick;
 
 #define LUA_OK 0
 #define LUA_FAIL 1
@@ -25,9 +27,9 @@ nick *lua_nick;
 #define LUA_TPUSHNUMBER(l, param, value) { lua_pushstring(l, param); lua_pushnumber(l, value); lua_rawset(l, -3); }
 #define LUA_TPUSHBOOLEAN(l, param, value) { lua_pushstring(l, param); lua_pushboolean(l, value); lua_rawset(l, -3); }
 
-#define LUA_PUSHNICK(l, np) { lua_newtable(l); LUA_TPUSHSTRING(l, "nick", np->nick); LUA_TPUSHSTRING(l, "ident", np->ident); LUA_TPUSHSTRING(l, "hostname", np->host->name->content); LUA_TPUSHSTRING(l, "realname", np->realname->name->content); LUA_TPUSHSTRING(l, "account", np->authname); LUA_TPUSHNUMBER(l, "numeric", np->numeric); LUA_TPUSHSTRING(l, "ip", IPtostr(np->ipaddress)); }
+#define LUA_PUSHNICK(l, np) { lua_newtable(l); LUA_TPUSHSTRING(l, "nick", np->nick); LUA_TPUSHSTRING(l, "ident", np->ident); LUA_TPUSHSTRING(l, "hostname", np->host->name->content); LUA_TPUSHSTRING(l, "realname", np->realname->name->content); LUA_TPUSHSTRING(l, "account", np->authname); LUA_TPUSHNUMBER(l, "numeric", np->numeric); LUA_TPUSHSTRING(l, "ip", IPtostr(np->p_ipaddr)); }
 
-#define LUA_PUSHCHAN(l, cp) { lua_newtable(l); LUA_TPUSHNUMBER(l, "timestamp", cp->timestamp); LUA_TPUSHNUMBER(l, "totalusers", cp->users->totalusers); if(cp->topic) { LUA_TPUSHSTRING(l, "topic", cp->topic->content); } }
+#define LUA_PUSHCHAN(l, cp) { lua_newtable(l); LUA_TPUSHNUMBER(l, "timestamp", cp->timestamp); LUA_TPUSHNUMBER(l, "totalusers", cp->users->totalusers); if(cp->topic) { LUA_TPUSHSTRING(l, "topic", cp->topic->content); }; LUA_TPUSHSTRING(l, "modes", printallmodes(cp)); }
 
 #define LUA_PUSHNICKCHANMODES(l, lp) { lua_newtable(l); LUA_TPUSHBOOLEAN(l, "opped", (*lp & CUMODE_OP) != 0); LUA_TPUSHBOOLEAN(l, "voiced", (*lp & CUMODE_VOICE) != 0); }