diff options
Diffstat (limited to 'modules/protocol/unreal32.cpp')
-rw-r--r-- | modules/protocol/unreal32.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/modules/protocol/unreal32.cpp b/modules/protocol/unreal32.cpp index 2993580c7..cc4fc23df 100644 --- a/modules/protocol/unreal32.cpp +++ b/modules/protocol/unreal32.cpp @@ -375,6 +375,24 @@ class UnrealIRCdProto : public IRCDProto { ircdproto->SendMode(NickServ, u, "+d 1"); } + + void SendChannel(Channel *c, const Anope::string &modes) + { + /* Unreal does not support updating a channels TS without actually joining a user, + * so we will join and part us now + */ + BotInfo *bi = whosends(c->ci); + if (c->FindUser(bi) == NULL) + { + bi->Join(c, true); + bi->Part(c); + } + else + { + bi->Part(c); + bi->Join(c, true); + } + } }; class Unreal32IRCdMessage : public IRCdMessage @@ -695,9 +713,6 @@ class Unreal32IRCdMessage : public IRCdMessage { c->creation_time = ts; c->Reset(); - - /* Reset mlock */ - check_modes(c); } /* Their TS is newer than ours, our modes > theirs, unset their modes if need be */ else if (ts > c->creation_time) |