1.1 --- a/plugins/basecommands.sp Mon Jun 18 17:09:33 2007 +0000
1.2 +++ b/plugins/basecommands.sp Mon Jun 18 17:20:12 2007 +0000
1.3 @@ -52,9 +52,9 @@
1.4 RegAdminCmd("sm_addban", Command_AddBan, ADMFLAG_RCON, "sm_addban <time> <steamid> [reason]");
1.5 RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_RCON, "sm_banip <time> <ip> [reason]");
1.6
1.7 - hBanForward = CreateGlobalForward("OnClientBanned", ET_Ignore, Param_Cell, Param_Cell, Param_Cell, Param_String);
1.8 - hAddBanForward = CreateGlobalForward("OnBanAdded", ET_Ignore, Param_Cell, Param_String, Param_Cell, Param_String);
1.9 - hBanRemoved = CreateGlobalForward("OnBanRemoved", ET_Ignore, Param_Cell, Param_String);
1.10 + hBanForward = CreateGlobalForward("OnClientBanned", ET_Hook, Param_Cell, Param_Cell, Param_Cell, Param_String);
1.11 + hAddBanForward = CreateGlobalForward("OnBanAdded", ET_Hook, Param_Cell, Param_String, Param_Cell, Param_String);
1.12 + hBanRemoved = CreateGlobalForward("OnBanRemoved", ET_Hook, Param_Cell, Param_String);
1.13 }
1.14
1.15 public Action:Command_BanIp(client, args)
1.16 @@ -77,18 +77,25 @@
1.17 GetCmdArg(3, reason, sizeof(reason));
1.18 }
1.19
1.20 - LogMessage("\"%L\" added ban (minutes \"%d\") (ip \"%s\") (reason \"%s\")", client, minutes, arg, reason);
1.21 -
1.22 + new Action:act = Plugin_Continue;
1.23 Call_StartForward(hAddBanForward);
1.24 Call_PushCell(client);
1.25 Call_PushString(arg);
1.26 Call_PushCell(minutes);
1.27 Call_PushString(reason);
1.28 - Call_Finish();
1.29 + Call_Finish(act);
1.30
1.31 - ServerCommand("banip %d %s", minutes, arg);
1.32 - ServerCommand("writeip");
1.33 - ReplyToCommand(client, "[SM] %t", "Ban added");
1.34 + if (act < Plugin_Handled)
1.35 + {
1.36 + LogMessage("\"%L\" added ban (minutes \"%d\") (ip \"%s\") (reason \"%s\")", client, minutes, arg, reason);
1.37 + ReplyToCommand(client, "[SM] %t", "Ban added");
1.38 + }
1.39 +
1.40 + if (act < Plugin_Stop)
1.41 + {
1.42 + ServerCommand("banip %d %s", minutes, arg);
1.43 + ServerCommand("writeip");
1.44 + }
1.45
1.46 return Plugin_Handled;
1.47 }
1.48 @@ -113,18 +120,25 @@
1.49 GetCmdArg(3, reason, sizeof(reason));
1.50 }
1.51
1.52 - LogMessage("\"%L\" added ban (minutes \"%d\") (id \"%s\") (reason \"%s\")", client, minutes, arg, reason);
1.53 -
1.54 + new Action:act = Plugin_Continue;
1.55 Call_StartForward(hAddBanForward);
1.56 Call_PushCell(client);
1.57 Call_PushString(arg);
1.58 Call_PushCell(minutes);
1.59 Call_PushString(reason);
1.60 - Call_Finish();
1.61 + Call_Finish(act);
1.62
1.63 - ServerCommand("banid %d %s", minutes, arg);
1.64 - ServerCommand("writeid");
1.65 - ReplyToCommand(client, "[SM] %t", "Ban added");
1.66 + if (act < Plugin_Handled)
1.67 + {
1.68 + LogMessage("\"%L\" added ban (minutes \"%d\") (id \"%s\") (reason \"%s\")", client, minutes, arg, reason);
1.69 + ReplyToCommand(client, "[SM] %t", "Ban added");
1.70 + }
1.71 +
1.72 + if (act < Plugin_Stop)
1.73 + {
1.74 + ServerCommand("banid %d %s", minutes, arg);
1.75 + ServerCommand("writeid");
1.76 + }
1.77
1.78 return Plugin_Handled;
1.79 }
1.80 @@ -149,17 +163,25 @@
1.81 start = 2;
1.82 }
1.83
1.84 - LogMessage("\"%L\" removed ban (filter \"%s\")", arg[start]);
1.85 + Format(new_arg, sizeof(new_arg), "STEAM_0:%s", arg[start]);
1.86
1.87 - Format(new_arg, sizeof(new_arg), "STEAM_0:%s", arg[start]);
1.88 + new Action:act = Plugin_Continue;
1.89 Call_StartForward(hBanRemoved);
1.90 Call_PushCell(client);
1.91 Call_PushString(new_arg);
1.92 Call_Finish();
1.93
1.94 - ServerCommand("removeid \"%s\"", arg[start]);
1.95 - ServerCommand("writeid");
1.96 - ReplyToCommand(client, "[SM] %t", "Removed bans matching", arg);
1.97 + if (act < Plugin_Handled)
1.98 + {
1.99 + LogMessage("\"%L\" removed ban (filter \"%s\")", client, arg[start]);
1.100 + ReplyToCommand(client, "[SM] %t", "Removed bans matching", arg);
1.101 + }
1.102 +
1.103 + if (act < Plugin_Stop)
1.104 + {
1.105 + ServerCommand("removeid \"%s\"", arg[start]);
1.106 + ServerCommand("writeid");
1.107 + }
1.108
1.109 return Plugin_Handled;
1.110 }
1.111 @@ -209,44 +231,50 @@
1.112 new userid = GetClientUserId(clients[0]);
1.113 GetClientName(clients[0], arg, sizeof(arg));
1.114
1.115 - if (!time)
1.116 - {
1.117 - if (reason[0] == '\0')
1.118 - {
1.119 - ShowActivity(client, "%t", "Permabanned player", arg);
1.120 - } else {
1.121 - ShowActivity(client, "%t", "Permabanned player reason", arg, reason);
1.122 - }
1.123 - } else {
1.124 - if (reason[0] == '\0')
1.125 - {
1.126 - ShowActivity(client, "%t", "Banned player", arg, time);
1.127 - } else {
1.128 - ShowActivity(client, "%t", "Banned player reason", arg, time, reason);
1.129 - }
1.130 - }
1.131 -
1.132 - LogMessage("\"%L\" banned \"%L\" (minutes \"%d\") (reason \"%s\")", client, clients[0], time, reason);
1.133 -
1.134 /* Fire the ban forward */
1.135 + new Action:act = Plugin_Continue;
1.136 Call_StartForward(hBanForward);
1.137 Call_PushCell(client);
1.138 Call_PushCell(clients[0]);
1.139 Call_PushCell(time);
1.140 Call_PushString(reason);
1.141 Call_Finish();
1.142 -
1.143 - if (reason[0] == '\0')
1.144 +
1.145 + if (act < Plugin_Handled)
1.146 {
1.147 - strcopy(reason, sizeof(reason), "Banned");
1.148 + if (!time)
1.149 + {
1.150 + if (reason[0] == '\0')
1.151 + {
1.152 + ShowActivity(client, "%t", "Permabanned player", arg);
1.153 + } else {
1.154 + ShowActivity(client, "%t", "Permabanned player reason", arg, reason);
1.155 + }
1.156 + } else {
1.157 + if (reason[0] == '\0')
1.158 + {
1.159 + ShowActivity(client, "%t", "Banned player", arg, time);
1.160 + } else {
1.161 + ShowActivity(client, "%t", "Banned player reason", arg, time, reason);
1.162 + }
1.163 + }
1.164 + LogMessage("\"%L\" banned \"%L\" (minutes \"%d\") (reason \"%s\")", client, clients[0], time, reason);
1.165 }
1.166 -
1.167 - ServerCommand("banid %d %d", time, userid);
1.168 - ServerCommand("kickid %d \"%s\"", userid, reason);
1.169 -
1.170 - if (time == 0)
1.171 +
1.172 + if (act < Plugin_Stop)
1.173 {
1.174 - ServerCommand("writeid");
1.175 + if (reason[0] == '\0')
1.176 + {
1.177 + strcopy(reason, sizeof(reason), "Banned");
1.178 + }
1.179 +
1.180 + ServerCommand("banid %d %d", time, userid);
1.181 + ServerCommand("kickid %d \"%s\"", userid, reason);
1.182 +
1.183 + if (time == 0)
1.184 + {
1.185 + ServerCommand("writeid");
1.186 + }
1.187 }
1.188
1.189 return Plugin_Handled;