+
+void set_bot_alias(int botid, char *alias) {
+ struct cmd_bot_alias *botalias, *existing_alias = NULL;
+ for(botalias = bot_aliases; botalias; botalias = botalias->next) {
+ if(!stricmp(botalias->alias, alias))
+ return;
+ if(botalias->botid == botid)
+ existing_alias = botalias;
+ }
+ if(existing_alias) {
+ free(existing_alias->alias);
+ existing_alias->alias = strdup(alias);
+ return;
+ }
+ botalias = malloc(sizeof(*botalias));
+ if (!botalias) {
+ perror("malloc() failed");
+ return;
+ }
+ botalias->botid = botid;
+ botalias->alias = strdup(alias);
+ botalias->next = bot_aliases;
+ bot_aliases = botalias;
+}
+
+const char *resolve_botid(int botid) {
+ struct cmd_bot_alias *botalias;
+ for(botalias = bot_aliases; botalias; botalias = botalias->next) {
+ if(botalias->botid == botid)
+ return botalias->alias;
+ }
+ return NULL;
+}
+
+int resolve_botalias(const char *alias) {
+ struct cmd_bot_alias *botalias;
+ for(botalias = bot_aliases; botalias; botalias = botalias->next) {
+ if(!stricmp(botalias->alias, alias))
+ return botalias->botid;
+ }
+ return 0;
+}