Browse Source

- Added @who to IRC Bot, Refer to changelog.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6169 54d463be-8e91-2dee-dedb-b68131a5f0ec
Zido 19 years ago
parent
commit
b17413e395
2 changed files with 19 additions and 1 deletions
  1. 1 0
      Changelog-Trunk.txt
  2. 18 1
      src/map/irc.c

+ 1 - 0
Changelog-Trunk.txt

@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2006/04/18
 2006/04/18
+	* Added @who to the IRC Bot, outputs all online characters. [Zido]
 	* Changed the memory manager fatal errors when allocating memory to print
 	* Changed the memory manager fatal errors when allocating memory to print
 	  out the size request as well as the file and line where they originated.
 	  out the size request as well as the file and line where they originated.
 	  [Skotlex]
 	  [Skotlex]

+ 18 - 1
src/map/irc.c

@@ -214,6 +214,9 @@ void irc_parse_sub(int fd, char *incoming_string)
 	char cmdargs[256];
 	char cmdargs[256];
 
 
 	int users=0;
 	int users=0;
+	int i=0;
+
+	struct map_session_data **allsd;
 	
 	
 	memset(source,'\0',256);
 	memset(source,'\0',256);
 	memset(command,'\0',256);
 	memset(command,'\0',256);
@@ -274,15 +277,29 @@ void irc_parse_sub(int fd, char *incoming_string)
 					if(get_access(source_nick)<ACCESS_OP)
 					if(get_access(source_nick)<ACCESS_OP)
 						sprintf(send_string,"NOTICE %s :Access Denied",source_nick);
 						sprintf(send_string,"NOTICE %s :Access Denied",source_nick);
 					else {
 					else {
-						sprintf(send_string,"%s: %s",source_nick,cmdargs);
 						intif_GMmessage(send_string,strlen(send_string)+1,0);
 						intif_GMmessage(send_string,strlen(send_string)+1,0);
 						sprintf(send_string,"NOTICE %s :Message Sent",source_nick);
 						sprintf(send_string,"NOTICE %s :Message Sent",source_nick);
 					}
 					}
 					irc_send(send_string);
 					irc_send(send_string);
+				// Number of users online [Zido]
 				} else if(strcmpi(cmdname,"users")==0) {
 				} else if(strcmpi(cmdname,"users")==0) {
 					map_getallusers(&users);
 					map_getallusers(&users);
 					sprintf(send_string,"PRIVMSG %s :Users Online: %d",irc_channel,users);
 					sprintf(send_string,"PRIVMSG %s :Users Online: %d",irc_channel,users);
 					irc_send(send_string);
 					irc_send(send_string);
+				// List all users online [Zido]
+				} else if(strcmpi(cmdname,"who")==0) {
+					allsd=map_getallusers(&users);
+					if(users>0) {
+					sprintf(send_string,"NOTICE %s :%d Users Online",source_nick,users);
+					irc_send(send_string);
+						for(i=0;i<users;i++) {
+							sprintf(send_string,"NOTICE %s :Name: \"%s\"",source_nick,allsd[i]->status.name);
+							irc_send(send_string);
+						}
+					} else {
+						sprintf(send_string,"NOTICE %s :No Users Online",source_nick);
+						irc_send(send_string);
+					}
 				}
 				}
 			}
 			}