Skip to content
Closed
29 changes: 16 additions & 13 deletions addons/sourcemod/scripting/KnockbackRestrict.sp
Original file line number Diff line number Diff line change
Expand Up @@ -1033,10 +1033,11 @@ void Kban_AddOfflineBan(OfflinePlayer player, int admin, int length, char[] reas
// Edit ID purpose
int arrayIndex = g_allKbans.PushArray(info, sizeof(info));

char escapedTargetName[MAX_NAME_LENGTH * 2 + 1], escapedAdminName[MAX_NAME_LENGTH * 2 + 1], escapedReason[REASON_MAX_LENGTH * 2 + 1];
char escapedTargetName[MAX_NAME_LENGTH * 2 + 1], escapedAdminName[MAX_NAME_LENGTH * 2 + 1], escapedReason[REASON_MAX_LENGTH * 2 + 1], escapedMap[PLATFORM_MAX_PATH * 2 + 1];
if(!g_hDB.Escape(adminName, escapedAdminName, sizeof(escapedAdminName))
|| !g_hDB.Escape(player.name, escapedTargetName, sizeof(escapedTargetName))
|| !g_hDB.Escape(reason, escapedReason, sizeof(escapedReason))) {
|| !g_hDB.Escape(reason, escapedReason, sizeof(escapedReason))
|| !g_hDB.Escape(info.map, escapedMap, sizeof(escapedMap))) {
return;
}

Expand All @@ -1052,7 +1053,7 @@ void Kban_AddOfflineBan(OfflinePlayer player, int admin, int length, char[] reas
... "'%d', '%d', '%d', '%d', '%d', '%s', '%s', '%d', '%s')",
escapedTargetName, info.clientSteamID, info.clientIP,
escapedAdminName, info.adminSteamID, escapedReason,
info.map, info.length, info.time_stamp_start,
escapedMap, info.length, info.time_stamp_start,
info.time_stamp_end, 0, 0,
"null", "null", 0, "null");

Expand Down Expand Up @@ -1442,10 +1443,10 @@ void Kban_PublishKunban(int target, int admin, const char[] reason) {
... "`client_name`, `client_steamid`,"
... "`admin_name`, `admin_steamid`,"
... "`message`, `time_stamp`)"
... "VALUES ('%s', '%s', '%s', '%s', '%s', '%d')",
... "VALUES ('%s', '%s', '%s', '%s', 'Removed Kban (Reason: %s)', '%d')",
targetNameEscaped, g_sSteamIDs[target],
adminName, adminSteamID,
"Removed Kban", GetTime());
adminNameEscaped, adminSteamID,
reasonEscaped, GetTime());
g_hDB.Query(OnKbanRemove, query);
}

Expand Down Expand Up @@ -1503,12 +1504,13 @@ void Kban_AddBan(int target, int admin, int length, char[] reason) {
// for editing id purpose
int arrayIndex = g_allKbans.PushArray(info, sizeof(info));

char escapedTargetName[MAX_NAME_LENGTH * 2 + 1], escapedAdminName[MAX_NAME_LENGTH * 2 + 1], escapedReason[REASON_MAX_LENGTH * 2 + 1];
char escapedTargetName[MAX_NAME_LENGTH * 2 + 1], escapedAdminName[MAX_NAME_LENGTH * 2 + 1], escapedReason[REASON_MAX_LENGTH * 2 + 1], escapedMap[PLATFORM_MAX_PATH * 2 + 1];

if(!g_hDB.Escape(info.clientName, escapedTargetName, sizeof(escapedTargetName))
|| !g_hDB.Escape(info.adminName, escapedAdminName, sizeof(escapedAdminName))
|| !g_hDB.Escape(info.reason, escapedReason, sizeof(escapedReason))) {
return;
|| !g_hDB.Escape(info.reason, escapedReason, sizeof(escapedReason))
|| !g_hDB.Escape(info.map, escapedMap, sizeof(escapedMap))) {
return;
}

char query[MAX_QUERIE_LENGTH];
Expand All @@ -1523,7 +1525,7 @@ void Kban_AddBan(int target, int admin, int length, char[] reason) {
... "'%d', '%d', '%d', '%d', '%d', '%s', '%s', '%d', '%s')",
escapedTargetName, info.clientSteamID, info.clientIP,
escapedAdminName, info.adminSteamID, escapedReason,
info.map, info.length, info.time_stamp_start,
escapedMap, info.length, info.time_stamp_start,
info.time_stamp_end, 0, 0,
"null", "null", 0, "null");

Expand Down Expand Up @@ -1591,10 +1593,11 @@ void PublishKban(Kban info, int admin, int target = -1, const char[] reason) {
}
}

char targetNameEscaped[MAX_NAME_LENGTH * 2 + 1], adminNameEscaped[MAX_NAME_LENGTH * 2 + 1], reasonEscaped[REASON_MAX_LENGTH * 2 + 1];
char targetNameEscaped[MAX_NAME_LENGTH * 2 + 1], adminNameEscaped[MAX_NAME_LENGTH * 2 + 1], reasonEscaped[REASON_MAX_LENGTH * 2 + 1], messageEscaped[REASON_MAX_LENGTH * 2 + 1];
if(!g_hDB.Escape(info.clientName, targetNameEscaped, sizeof(targetNameEscaped))
|| !g_hDB.Escape(info.adminName, adminNameEscaped, sizeof(adminNameEscaped))
|| !g_hDB.Escape(reason, reasonEscaped, sizeof(reasonEscaped))) {
|| !g_hDB.Escape(reason, reasonEscaped, sizeof(reasonEscaped))
|| !g_hDB.Escape(message, messageEscaped, sizeof(messageEscaped))) {
LogError("[Kb-Restrict] Couldn't escape the message.");
return;
}
Expand All @@ -1610,7 +1613,7 @@ void PublishKban(Kban info, int admin, int target = -1, const char[] reason) {
... "VALUES ('%s', '%s', '%s', '%s', '%s', '%d')",
targetNameEscaped, info.clientSteamID,
adminNameEscaped, info.adminSteamID,
message, GetTime());
messageEscaped, GetTime());

g_hDB.Query(OnKbanPublished, query, arrayIndex);
}
Expand Down
13 changes: 7 additions & 6 deletions addons/sourcemod/scripting/helpers/menus.sp
Original file line number Diff line number Diff line change
Expand Up @@ -510,16 +510,17 @@ int Menu_KbanInfoMenu(Menu menu, MenuAction action, int param1, int param2) {
if(target != -1) {
Kban_RemoveBan(target, param1, sReason);
} else {
char escapedName[MAX_NAME_LENGTH * 2 + 1];
if(!g_hDB.Escape(g_sName[param1], escapedName, sizeof(escapedName))) {
char escapedName[MAX_NAME_LENGTH * 2 + 1], escapedReason[128];
if(!g_hDB.Escape(g_sName[param1], escapedName, sizeof(escapedName)) || !g_hDB.Escape(sReason, escapedReason, sizeof(escapedReason))) {
return 0;
}

char query[MAX_QUERIE_LENGTH];
g_hDB.Format(query, sizeof(query), "UPDATE `KbRestrict_CurrentBans` SET `is_expired`=1, `is_removed`=1,"
... "`admin_name_removed`='%s', `admin_steamid_removed`='%s', `reason_removed`,"
... "`time_stamp_removed`=%d",
escapedName, g_sSteamIDs[param1], sReason, GetTime());
... "`admin_name_removed`='%s', `admin_steamid_removed`='%s', `reason_removed`='%s',"
... "`time_stamp_removed`=%d WHERE `client_steamid`='%s' AND `client_ip`='%s' AND `is_expired`=0 AND `is_removed`=0",
escapedName, g_sSteamIDs[param1], escapedReason,
GetTime(), buffers[0], buffers[1]);

g_hDB.Query(OnKbanRemove, query);
}
Expand Down Expand Up @@ -848,4 +849,4 @@ public Action OnClientSayCommand(int client, const char[] command, const char[]
}

return Plugin_Continue;
}
}
2 changes: 1 addition & 1 deletion addons/sourcemod/scripting/include/KnockbackRestrict.inc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

#define KR_V_MAJOR "4"
#define KR_V_MINOR "0"
#define KR_V_PATCH "7"
#define KR_V_PATCH "8"

#define KR_VERSION KR_V_MAJOR..."."...KR_V_MINOR..."."...KR_V_PATCH

Expand Down