diff options
author | Treeki <treeki@gmail.com> | 2014-01-23 02:10:53 +0100 |
---|---|---|
committer | Treeki <treeki@gmail.com> | 2014-01-23 02:10:53 +0100 |
commit | 07e35b82c6d9ba075d42f8b0401d0616fbfc929c (patch) | |
tree | 1ea7673f552ecf961134f7a49ed9d2f02f256c8f | |
parent | dba90fe669f7f8d89bc4e722be0c29decc9afde8 (diff) | |
download | bounce4-07e35b82c6d9ba075d42f8b0401d0616fbfc929c.tar.gz bounce4-07e35b82c6d9ba075d42f8b0401d0616fbfc929c.zip |
force user to leave channels when disconnected from server
Diffstat (limited to '')
-rw-r--r-- | core.h | 2 | ||||
-rw-r--r-- | ircserver.cpp | 3 | ||||
-rw-r--r-- | window.cpp | 8 |
3 files changed, 13 insertions, 0 deletions
@@ -98,6 +98,8 @@ public: void handlePrivmsg(const UserRef &user, const char *str); char getEffectivePrefixChar(const char *nick) const; + + void disconnected(); }; diff --git a/ircserver.cpp b/ircserver.cpp index 7e20310..31cbd6d 100644 --- a/ircserver.cpp +++ b/ircserver.cpp @@ -73,6 +73,9 @@ void IRCServer::connectedEvent() { void IRCServer::disconnectedEvent() { printf("[IRCServer:%p] disconnectedEvent\n", this); status.pushMessage("Disconnected."); + + for (auto &i : channels) + i.second->disconnected(); } void IRCServer::lineReceivedEvent(char *line, int size) { printf("[%d] { %s }\n", size, line); @@ -356,3 +356,11 @@ char Channel::getEffectivePrefixChar(const char *nick) const { return 0; } + + +void Channel::disconnected() { + if (inChannel) { + inChannel = false; + pushMessage("You have been disconnected."); + } +} |