diff --git a/modules/protocol/inspircd.cpp b/modules/protocol/inspircd.cpp index 6ebbe1759..249a68307 100644 --- a/modules/protocol/inspircd.cpp +++ b/modules/protocol/inspircd.cpp @@ -1768,11 +1768,7 @@ struct IRCDMessageSave final if (targ->server == Me && (bi = dynamic_cast(targ))) { if (last_collide == Anope::CurTime) - { - Anope::QuitReason = "Nick collision fight on " + targ->nick; - Anope::Quitting = true; - return; - } + throw ProtocolException("Nick collision fight on " + targ->nick); IRCD->SendKill(Me, targ->nick, "Nick collision"); IRCD->SendNickChange(targ, targ->nick); diff --git a/src/messages.cpp b/src/messages.cpp index afc005b11..5ac024f2c 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -208,11 +208,8 @@ void Kill::Run(MessageSource &source, const std::vector ¶ms, static time_t last_time = 0; if (last_time == Anope::CurTime) - { - Anope::QuitReason = "Kill loop detected. Is Anope U:Lined?"; - Anope::Quitting = true; - return; - } + throw ProtocolException("Kill loop detected. Is Anope U:Lined?"); + last_time = Anope::CurTime; bi->OnKill();