diff options
-rw-r--r-- | Changelog-Trunk.txt | 1 | ||||
-rw-r--r-- | src/map/irc.c | 19 | ||||
-rw-r--r-- | src/map/irc.h | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 50a291539..9e4a14950 100644 --- a/Changelog-Trunk.txt +++ b/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/07
+ * IRC User access levels now refresh on a mode set and join/part. [Zido]
* Added missing creation/destruction of the expcache_ers in guild.c
[Skotlex]
* Unified status_remove_buffs/status_remove_debuffs into a single function.
diff --git a/src/map/irc.c b/src/map/irc.c index 621201fa4..05cc16d56 100644 --- a/src/map/irc.c +++ b/src/map/irc.c @@ -275,6 +275,13 @@ void irc_parse_sub(int fd, char *incoming_string) parse_names_packet(incoming_string);
}
+ // Refresh Names [Zido]
+ if((strcmpi(command,"join")==0)||(strcmpi(command,"part")==0)||(strcmpi(command,"mode")==0)) {
+ irc_rmnames();
+ sprintf(send_string,"NAMES %s",irc_channel);
+ irc_send(send_string);
+ }
+
return;
}
@@ -431,3 +438,15 @@ int get_access(char *nick) { return -1;
}
+
+int irc_rmnames() {
+ int i=0;
+
+ for(i=0;i<=MAX_CHANNEL_USERS;i++) {
+ memset(cd.user[i].name,'\0',256);
+ cd.user[i].level=0;
+ }
+ last_cd_user=0;
+
+ return 0;
+}
diff --git a/src/map/irc.h b/src/map/irc.h index 829733c01..d042fc29a 100644 --- a/src/map/irc.h +++ b/src/map/irc.h @@ -48,4 +48,4 @@ int parse_names_packet(char *str); int parse_names(char *str);
int set_access(char *nick,int level);
int get_access(char *nick);
-int parse_mode(char *mode,char *nick);
+int irc_rmnames();
|