Просмотр исходного кода

- 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 лет назад
Родитель
Сommit
b17413e395
2 измененных файлов с 19 добавлено и 1 удалено
  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.
 
 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
 	  out the size request as well as the file and line where they originated.
 	  [Skotlex]

+ 18 - 1
src/map/irc.c

@@ -214,6 +214,9 @@ void irc_parse_sub(int fd, char *incoming_string)
 	char cmdargs[256];
 
 	int users=0;
+	int i=0;
+
+	struct map_session_data **allsd;
 	
 	memset(source,'\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)
 						sprintf(send_string,"NOTICE %s :Access Denied",source_nick);
 					else {
-						sprintf(send_string,"%s: %s",source_nick,cmdargs);
 						intif_GMmessage(send_string,strlen(send_string)+1,0);
 						sprintf(send_string,"NOTICE %s :Message Sent",source_nick);
 					}
 					irc_send(send_string);
+				// Number of users online [Zido]
 				} else if(strcmpi(cmdname,"users")==0) {
 					map_getallusers(&users);
 					sprintf(send_string,"PRIVMSG %s :Users Online: %d",irc_channel,users);
 					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);
+					}
 				}
 			}