1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-09 08:43:13 +02:00

Module coders: introduce moddata_client_set_string() and moddata_client_get_string(). Will document later in ModData wiki page (which does not exist yet).

This commit is contained in:
Bram Matthys
2015-05-18 17:15:02 +02:00
parent 222c780d64
commit 7ad4b6db67
3 changed files with 50 additions and 16 deletions
+43
View File
@@ -380,3 +380,46 @@ aClient *acptr;
}
}
}
/** Set ModData for client (via variable name, string value) */
int moddata_client_set_string(aClient *acptr, char *varname, char *value)
{
ModDataInfo *md;
md = findmoddata_byname(varname, MODDATATYPE_CLIENT);
if (!md)
return 0;
if (value)
{
/* SET */
md->unserialize(value, &moddata_client(acptr, md));
}
else
{
/* UNSET */
md->free(&moddata_client(acptr, md));
memset(&moddata_client(acptr, md), 0, sizeof(ModData));
}
if (value)
sendto_server(NULL, 0, 0, ":%s MD %s %s %s :%s",
me.name, "client", acptr->name, md->name, value); /* set */
else
sendto_server(NULL, 0, 0, ":%s MD %s %s %s",
me.name, "client", acptr->name, md->name); /* unset */
}
/** Get ModData for client (via variable name) */
char *moddata_client_get_string(aClient *acptr, char *varname)
{
ModDataInfo *md;
md = findmoddata_byname(varname, MODDATATYPE_CLIENT);
if (!md)
return NULL;
return md->serialize(&moddata_client(acptr, md)); /* can be NULL */
}