diff options
| author | Adam <Adam@anope.org> | 2011-05-06 18:02:53 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2011-05-16 04:10:18 -0400 |
| commit | fd4b52ec385167794eaadb18ee635bef757728ee (patch) | |
| tree | 49d3e835b072a10887309d8d9155982a5aa61ed0 /src/users.cpp | |
| parent | b59602abf85d522bb2f188be70b6cb7c9556a856 (diff) | |
Added os_forbid
Diffstat (limited to 'src/users.cpp')
| -rw-r--r-- | src/users.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/users.cpp b/src/users.cpp index 0e986cc93..1b06461ed 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -315,13 +315,19 @@ void User::Collide(NickAlias *na) { Anope::string guestnick; + int i = 0; do { guestnick = Config->NSGuestNickPrefix + stringify(getrandom16()); - } while (finduser(guestnick)); + } while (finduser(guestnick) && i++ < 10); - this->SendMessage(nickserv->Bot(), _("Your nickname is now being changed to \002%s\002"), guestnick.c_str()); - ircdproto->SendForceNickChange(this, guestnick, Anope::CurTime); + if (i == 11) + this->Kill(Config->s_NickServ, "Services nickname-enforcer kill"); + else + { + this->SendMessage(nickserv->Bot(), _("Your nickname is now being changed to \002%s\002"), guestnick.c_str()); + ircdproto->SendForceNickChange(this, guestnick, Anope::CurTime); + } } else this->Kill(Config->s_NickServ, "Services nickname-enforcer kill"); @@ -883,7 +889,7 @@ void do_kill(User *user, const Anope::string &msg) Log(user, "killed") << "was killed (Reason: " << msg << ")"; NickAlias *na = findnick(user->nick); - if (na && !na->HasFlag(NS_FORBIDDEN) && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true))) + if (na && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true))) { na->last_seen = Anope::CurTime; na->last_quit = msg; |
