- else if (user->GetExt(protectkey))
- {
- ServerInstance->Log(DEBUG, "Setting ulevel to &");
- ulevel = chartolevel("&");
- }
- else
- {
- ServerInstance->Log(DEBUG, "Setting ulevel to %s", channel->GetPrefixChar(user));
- ulevel = chartolevel(channel->GetPrefixChar(user));
- }
-
- /* Now it's the same idea, except for the target. If they're ulined make sure they get a higher level than the sender can */
- if (ServerInstance->ULine(target->server) || ServerInstance->ULine(target->nick))
- {
- ServerInstance->Log(DEBUG, "Setting tlevel to U");
- tlevel = chartolevel("U");
- }
- else if (target->GetExt(founderkey))
- {
- ServerInstance->Log(DEBUG, "Setting tlevel to ~");
- tlevel = chartolevel("~");
- }
- else if (target->GetExt(protectkey))
- {
- ServerInstance->Log(DEBUG, "Setting tlevel to &");
- tlevel = chartolevel("&");
- }
- else
+
+ int ulevel = channel->GetPrefixValue(user);
+ int tlevel = channel->GetPrefixValue(target);
+
+ hasnokicks = (ServerInstance->Modules->Find("m_nokicks.so") && channel->IsModeSet('Q'));
+
+ if (ServerInstance->ULine(target->server))