summaryrefslogtreecommitdiff
path: root/modules/protocol/unreal32.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-12-29 23:12:26 -0500
committerAdam <Adam@anope.org>2010-12-29 23:12:26 -0500
commit72b8f4609b147b9b9a222c14bfc4ae100cc7f250 (patch)
tree3b5fde173f448176878036b2c718682d09f90188 /modules/protocol/unreal32.cpp
parentd36e53f702f6f166e862c88dd2399bef91e9d1d5 (diff)
Use empty SJOINs when allowed to create empty permanent channels
Diffstat (limited to 'modules/protocol/unreal32.cpp')
-rw-r--r--modules/protocol/unreal32.cpp21
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)