Today I faced a bug with Ban System when I am trying to ban a player, the player is only geting kicked and then he is able to join again in server with the same name without chaning his IP
pawn Код:
CMD:ban(playerid, params[])
{
LoginCheck(playerid);
if(User[playerid][accountAdmin] >= 2)
{
new
string[150],
id,
reason[128],
when[128],
ban_hr, ban_min, ban_sec, ban_month, ban_days, ban_years
;
gettime(ban_hr, ban_min, ban_sec);
getdate(ban_years, ban_month, ban_days);
if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid] [reason]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "» "red"Player not connected.");
if(User[playerid][accountAdmin] < User[id][accountAdmin])
{
SendClientMessage(playerid, -1, "» "red"You cannot use this command on high ranking admin.");
format(string, sizeof(string), "[NOTIFY] "white"%s has attempted to banned you with the reason %s.", GetName(playerid), reason);
SendClientMessage(id, COLOR_ORANGE, string);
format(string, sizeof(string), "%s has attempted to banned %s but failed for %s", GetName(playerid), GetName(id), reason);
Log("admin.txt", string);
return 1;
}
format(when, 128, "%02d/%02d/%d %02d:%02d:%02d", ban_month, ban_days, ban_years, ban_hr, ban_min, ban_sec);
format(sInfo[last_bperson], 256, "%s", GetName(id));
format(sInfo[last_bwho], 256, "%s", reason);
savestatistics();
AddBan(User[id][accountIP], 1);
BanAcc(id, GetName(playerid), reason);
ShowBan(id, GetName(playerid), reason, when);
format(string, sizeof(string), "[BANNED] "white"%s has been banned by an admin for "grey"%s"white".", GetName(id), reason);
SendPlayerMessage(COLOR_RED, string);
format(string, sizeof(string), "[BANNED] "white"%s has been banned by %s for "grey"%s"white".", GetName(id), GetName(playerid), reason);
SendAMessage(COLOR_RED, string);
format(string, sizeof(string), "[BANNED] %s has been banned by %s for %s.", GetName(id), GetName(playerid), reason);
Log("ban.txt", string);
KickDelay(id);
}
else
{
SendClientMessage(playerid, -1, "» "red"You are not authorized to use this command.");
}
return 1;
}
Do you have a code under OnPlayerConnect to check weather the player is banned or not?
pawn Код:
if(CheckBan(User[playerid][accountIP]) == 1)
{
SendClientMessage(playerid, -1, "If you think this is bugged try to relog, or contact a high ranking admin about this issue.");
SendClientMessage(playerid, COLOR_RED, "[BANNED] "white"You are banned from this server, Server has matched your IP from one of our banned IP.");
format(string, sizeof(string), "%s has connected to the server, Got banned having a matched ip from ban.cfg", GetName(playerid));
Log("finn.txt", string);
KickDelay(playerid);
return 1;
}