]> jfr.im git - irc/quakenet/newserv.git/blobdiff - lua/luacommands.c
LUA: Add servername and servernumeric nickpushers.
[irc/quakenet/newserv.git] / lua / luacommands.c
index 092b7f19b22e05680c5204746287c2a05092f742..e961a9982855ca914f8727dd628de5d61181ed9f 100644 (file)
@@ -958,6 +958,9 @@ static int lua_skill(lua_State *ps) {
 #define PUSHER_CHANMODES 12
 #define PUSHER_TIMESTAMP 13
 #define PUSHER_STRING_INDIRECT 14
+#define PUSHER_ACC_ID 15
+#define PUSHER_SERVER_NAME 16
+#define PUSHER_SERVER_NUMERIC 17
 
 void lua_initnickpusher(void) {
   int i = 0;
@@ -976,6 +979,9 @@ void lua_initnickpusher(void) {
   PUSH_NICKPUSHER(PUSHER_LONG, accountts);
   PUSH_NICKPUSHER(PUSHER_UMODES, umodes);
   PUSH_NICKPUSHER_CUSTOM(PUSHER_COUNTRY, "country");
+  PUSH_NICKPUSHER_CUSTOM(PUSHER_ACC_ID, "accountid");
+  PUSH_NICKPUSHER_CUSTOM(PUSHER_SERVER_NAME, "servername");
+  PUSH_NICKPUSHER_CUSTOM(PUSHER_SERVER_NUMERIC, "servernumeric");
 
   nickpushercount = i;
   nickpusher[i].argtype = 0;
@@ -1047,6 +1053,16 @@ int lua_usepusher(lua_State *l, struct lua_pusher **lp, void *np) {
       case PUSHER_CHANMODES:
         lua_pushstring(l, printallmodes(*((channel **)offset)));
         break;
+      case PUSHER_ACC_ID:
+        {
+          nick *tnp = (nick *)np;
+          if(IsAccount(tnp) && tnp->auth) {
+            lua_pushlong(l, tnp->auth->userid);
+          } else {
+            lua_pushnil(l);
+          }
+          break;
+        }
       case PUSHER_REALUSERS:
         {
           channel *cp = *((channel **)offset);
@@ -1084,6 +1100,12 @@ int lua_usepusher(lua_State *l, struct lua_pusher **lp, void *np) {
           lua_pushint(l, (long)((nick *)offset)->exts[geoipext]);
         }
         break;
+      case PUSHER_SERVER_NAME:
+        lua_pushstring(l, serverlist[homeserver(((nick *)offset)->numeric)].name->content);
+        break;
+      case PUSHER_SERVER_NUMERIC:
+        lua_pushint(l, homeserver(((nick *)offset)->numeric));
+        break;
     }
 
     i++;
@@ -1108,3 +1130,4 @@ void lua_initchanpusher(void) {
   chanpushercount = i;
   chanpusher[i].argtype = 0;
 }
+