Jelajahi Sumber

- Added @users command to the IRC Bot. Checks no. online users.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6143 54d463be-8e91-2dee-dedb-b68131a5f0ec
Zido 19 tahun lalu
induk
melakukan
b8eb36637b
2 mengubah file dengan 22 tambahan dan 8 penghapusan
  1. 1 0
      Changelog-Trunk.txt
  2. 21 8
      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/17
+	* Added @users to the IRC Bot, outputs the # of users online. [Zido]
 	* The baby check when wearing a tuxedo/dress now works [Zido]
 	* Fixed pet being incorrectly removed when it had intimacy 0. [Skotlex]
 	* Some cleanup in the TK_RUN related code. [Skotlex]

+ 21 - 8
src/map/irc.c

@@ -210,6 +210,10 @@ void irc_parse_sub(int fd, char *incoming_string)
 	
 	char cmd1[256];
 	char cmd2[256];
+	char cmdname[256];
+	char cmdargs[256];
+
+	int users=0;
 	
 	memset(source,'\0',256);
 	memset(command,'\0',256);
@@ -219,6 +223,8 @@ void irc_parse_sub(int fd, char *incoming_string)
 
 	memset(cmd1,'\0',256);
 	memset(cmd2,'\0',256);
+	memset(cmdname,'\0',256);
+	memset(cmdargs,'\0',256);
 
 	sscanf(incoming_string, ":%255s %255s %255s :%4095[^\r\n]", source, command, target, message);
 	if (source != NULL) {
@@ -263,15 +269,22 @@ void irc_parse_sub(int fd, char *incoming_string)
 		else if((strcmpi(target,irc_channel)==0)||(strcmpi(target,irc_channel+1)==0)) {
 
 			// Broadcast [Zido] (Work in Progress)
-			if((strcmpi(command,"privmsg")==0)&&(sscanf(message,"@kami %255[^\r\n]",cmd1)>0)&&(target[0]=='#')) {
-				if(get_access(source_nick)<ACCESS_OP)
-					sprintf(send_string,"NOTICE %s :Access Denied",source_nick);
-				else {
-					sprintf(send_string,"%s: %s",source_nick,cmd1);
-					intif_GMmessage(send_string,strlen(send_string)+1,0);
-					sprintf(send_string,"NOTICE %s :Message Sent",source_nick);
+			if((strcmpi(command,"privmsg")==0)&&(sscanf(message,"@%s[^ ] %255[^\r\n]",cmdname,cmdargs)>0)&&(target[0]=='#')) {
+				if(strcmpi(cmdname,"kami")==0) {
+					if(get_access(source_nick)<ACCESS_OP)
+						sprintf(send_string,"NOTICE %s :Access Denied",source_nick);
+					else {
+						sscanf(cmdargs,"%255[^\r\n]",cmd1);
+						sprintf(send_string,"%s: %s",source_nick,cmd1);
+						intif_GMmessage(send_string,strlen(send_string)+1,0);
+						sprintf(send_string,"NOTICE %s :Message Sent",source_nick);
+					}
+					irc_send(send_string);
+				} else if(strcmpi(cmdname,"users")==0) {
+					map_getallusers(&users);
+					sprintf(send_string,"PRIVMSG %s :Users Online: %d",irc_channel,users);
+					irc_send(send_string);
 				}
-				irc_send(send_string);
 			}
 
 			// Refresh Names [Zido]