diff --git a/SprayManager/scripting/SprayManager.sp b/SprayManager/scripting/SprayManager.sp index bd19ce63..4c15c3f8 100644 --- a/SprayManager/scripting/SprayManager.sp +++ b/SprayManager/scripting/SprayManager.sp @@ -159,7 +159,6 @@ public void OnPluginStart() AutoExecConfig(true, "plugin.SprayManager"); g_hTraceTimer = CreateTimer(0.25, Timer_PerformPlayerTraces, _, TIMER_REPEAT); - g_hHideSpray = CreateTimer(4.0, Timer_UpdateHideSprays, _, TIMER_REPEAT); if (g_bLoadedLate) { @@ -328,6 +327,7 @@ public void OnClientPostAdminCheck(int client) } } update_client_online(client, 1); + UpdateHideSprays(); } public void update_client_online(int client, int is_online) @@ -365,6 +365,7 @@ public void OnClientDisconnect(int client) } ClearPlayerInfo(client); + UpdateHideSprays(); } public Action CS_OnTerminateRound(float &fDelay, CSRoundEndReason &reason) @@ -565,40 +566,41 @@ void Menu_ListBans(int client) int MenuHandler_Menu_ListBans(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[32]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[32]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - g_bInvokedThroughListMenu[iParam1] = true; - Menu_ListBans_Target(iParam1, target); - } - } - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + g_bInvokedThroughListMenu[iParam1] = true; + Menu_ListBans_Target(iParam1, target); + } + } + } + return 0; } void Menu_Trace(int client, int target) @@ -625,227 +627,230 @@ void Menu_Trace(int client, int target) int MenuHandler_Menu_Trace(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[2]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[2]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iSprayTraceTarget[iParam1]; + int target = g_iSprayTraceTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_bInvokedThroughTopMenu[iParam1] = false; + g_bInvokedThroughTopMenu[iParam1] = false; - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - switch (StringToInt(sOption)) - { - case 1: - { - PrintToChat(target, "\x01\x04[SprayManager]\x01 Your spray is not allowed, change it."); - Menu_Trace(iParam1, target); - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + switch (StringToInt(sOption)) + { + case 1: + { + PrintToChat(target, "\x01\x04[SprayManager]\x01 Your spray is not allowed, change it."); + Menu_Trace(iParam1, target); + } - case 2: - { - SlapPlayer(target, 0); - PrintToChat(target, "\x01\x04[SprayManager]\x01 Your spray is not allowed, change it."); - Menu_Trace(iParam1, target); - } + case 2: + { + SlapPlayer(target, 0); + PrintToChat(target, "\x01\x04[SprayManager]\x01 Your spray is not allowed, change it."); + Menu_Trace(iParam1, target); + } - case 3: - { - g_bInvokedThroughTopMenu[iParam1] = false; - KickClient(target, "Your spray is not allowed, change it"); - } + case 3: + { + g_bInvokedThroughTopMenu[iParam1] = false; + KickClient(target, "Your spray is not allowed, change it"); + } - case 4: - { - Menu TraceSpraySprayBan = new Menu(MenuHandler_Menu_Trace_SprayBan); - TraceSpraySprayBan.SetTitle("[SprayManager] Select a Spray Ban Length for %N (#%d)", target, GetClientUserId(target)); - TraceSpraySprayBan.ExitBackButton = true; + case 4: + { + Menu TraceSpraySprayBan = new Menu(MenuHandler_Menu_Trace_SprayBan); + TraceSpraySprayBan.SetTitle("[SprayManager] Select a Spray Ban Length for %N (#%d)", target, GetClientUserId(target)); + TraceSpraySprayBan.ExitBackButton = true; - TraceSpraySprayBan.AddItem("10", "10 Minutes"); - TraceSpraySprayBan.AddItem("30", "30 Minutes"); - TraceSpraySprayBan.AddItem("60", "1 Hour"); - TraceSpraySprayBan.AddItem("1440", "1 Day"); - TraceSpraySprayBan.AddItem("10080", "1 Week"); - TraceSpraySprayBan.AddItem("40320", "1 Month"); - TraceSpraySprayBan.AddItem("0", "Permanent"); + TraceSpraySprayBan.AddItem("10", "10 Minutes"); + TraceSpraySprayBan.AddItem("30", "30 Minutes"); + TraceSpraySprayBan.AddItem("60", "1 Hour"); + TraceSpraySprayBan.AddItem("1440", "1 Day"); + TraceSpraySprayBan.AddItem("10080", "1 Week"); + TraceSpraySprayBan.AddItem("40320", "1 Month"); + TraceSpraySprayBan.AddItem("0", "Permanent"); - g_iSprayBanTarget[iParam1] = target; + g_iSprayBanTarget[iParam1] = target; - TraceSpraySprayBan.Display(iParam1, MENU_TIME_FOREVER); - } + TraceSpraySprayBan.Display(iParam1, MENU_TIME_FOREVER); + } - case 5: - { - if (BanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Banned \x04%N\x01's spray", target); - LogAction(iParam1, target, "\"%L\" banned \"%L\"'s spray", iParam1, target); - } - } + case 5: + { + if (BanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Banned \x04%N\x01's spray", target); + LogAction(iParam1, target, "\"%L\" banned \"%L\"'s spray", iParam1, target); + } + } - case 6: - { - Menu TraceSprayBan = new Menu(MenuHandler_Menu_Trace_Ban); - TraceSprayBan.SetTitle("[SprayManager] Select a Ban Length for %N (#%d)", target, GetClientUserId(target)); - TraceSprayBan.ExitBackButton = true; + case 6: + { + Menu TraceSprayBan = new Menu(MenuHandler_Menu_Trace_Ban); + TraceSprayBan.SetTitle("[SprayManager] Select a Ban Length for %N (#%d)", target, GetClientUserId(target)); + TraceSprayBan.ExitBackButton = true; - TraceSprayBan.AddItem("10", "10 Minutes"); - TraceSprayBan.AddItem("30", "30 Minutes"); - TraceSprayBan.AddItem("60", "1 Hour"); - TraceSprayBan.AddItem("1440", "1 Day"); - TraceSprayBan.AddItem("10080", "1 Week"); - TraceSprayBan.AddItem("40320", "1 Month"); - TraceSprayBan.AddItem("0", "Permanent"); + TraceSprayBan.AddItem("10", "10 Minutes"); + TraceSprayBan.AddItem("30", "30 Minutes"); + TraceSprayBan.AddItem("60", "1 Hour"); + TraceSprayBan.AddItem("1440", "1 Day"); + TraceSprayBan.AddItem("10080", "1 Week"); + TraceSprayBan.AddItem("40320", "1 Month"); + TraceSprayBan.AddItem("0", "Permanent"); - g_iBanTarget[iParam1] = target; + g_iBanTarget[iParam1] = target; - TraceSprayBan.Display(iParam1, MENU_TIME_FOREVER); - } - } - } - } - } + TraceSprayBan.Display(iParam1, MENU_TIME_FOREVER); + } + } + } + } + } + return 0; } int MenuHandler_Menu_Trace_SprayBan(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - { - if (IsValidClient(g_iSprayBanTarget[iParam1])) - { - Menu_Trace(iParam1, g_iSprayBanTarget[iParam1]); - } - else if (g_hTopMenu != null) - { - g_bInvokedThroughTopMenu[iParam1] = false; - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } - else - { - g_bInvokedThroughTopMenu[iParam1] = false; - delete hMenu; - } - } - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + { + if (IsValidClient(g_iSprayBanTarget[iParam1])) + { + Menu_Trace(iParam1, g_iSprayBanTarget[iParam1]); + } + else if (g_hTopMenu != null) + { + g_bInvokedThroughTopMenu[iParam1] = false; + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } + else + { + g_bInvokedThroughTopMenu[iParam1] = false; + delete hMenu; + } + } + } - case MenuAction_Select: - { - char sOption[8]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[8]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iSprayBanTarget[iParam1]; + int target = g_iSprayBanTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_iSprayBanTarget[iParam1] = 0; - g_bInvokedThroughTopMenu[iParam1] = false; + g_iSprayBanTarget[iParam1] = 0; + g_bInvokedThroughTopMenu[iParam1] = false; - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - if (SprayBanClient1(iParam1, target, StringToInt(sOption), "Inappropriate Spray")) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray banned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray banned \"%L\" (Hash: \"%s\")", iParam1, target, g_sSprayHash[target]); - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + if (SprayBanClient1(iParam1, target, StringToInt(sOption), "Inappropriate Spray")) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray banned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray banned \"%L\" (Hash: \"%s\")", iParam1, target, g_sSprayHash[target]); + } - g_iSprayBanTarget[iParam1] = 0; - g_bInvokedThroughTopMenu[iParam1] = false; - } - } - } + g_iSprayBanTarget[iParam1] = 0; + g_bInvokedThroughTopMenu[iParam1] = false; + } + } + } + return 0; } int MenuHandler_Menu_Trace_Ban(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - { - if (IsValidClient(g_iBanTarget[iParam1])) - { - Menu_Trace(iParam1, g_iBanTarget[iParam1]); - } - else if (g_hTopMenu != null) - { - g_bInvokedThroughTopMenu[iParam1] = false; - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } - else - { - g_bInvokedThroughTopMenu[iParam1] = false; - delete hMenu; - } - } - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + { + if (IsValidClient(g_iBanTarget[iParam1])) + { + Menu_Trace(iParam1, g_iBanTarget[iParam1]); + } + else if (g_hTopMenu != null) + { + g_bInvokedThroughTopMenu[iParam1] = false; + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } + else + { + g_bInvokedThroughTopMenu[iParam1] = false; + delete hMenu; + } + } + } - case MenuAction_Select: - { - char sOption[8]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[8]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iBanTarget[iParam1]; + int target = g_iBanTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_iBanTarget[iParam1] = 0; - g_bInvokedThroughTopMenu[iParam1] = false; + g_iBanTarget[iParam1] = 0; + g_bInvokedThroughTopMenu[iParam1] = false; - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - FakeClientCommandEx(iParam1, "sm_ban \"#%d\" \"%s\" \"Inappropriate spray\"", GetClientUserId(g_iBanTarget[iParam1]), sOption); - g_iBanTarget[iParam1] = 0; - g_bInvokedThroughTopMenu[iParam1] = false; - } - } - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + FakeClientCommandEx(iParam1, "sm_ban \"#%d\" \"%s\" \"Inappropriate spray\"", GetClientUserId(g_iBanTarget[iParam1]), sOption); + g_iBanTarget[iParam1] = 0; + g_bInvokedThroughTopMenu[iParam1] = false; + } + } + } + return 0; } void Menu_Spray(int client) @@ -899,46 +904,49 @@ void Menu_Spray(int client) int MenuHandler_Menu_Spray(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[8]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[8]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - g_iAllowSpray = target; - ForceSpray(iParam1, target); + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + g_iAllowSpray = target; + ForceSpray(iParam1, target); - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Sprayed \x04%N\x01's spray(s).", target); + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Sprayed \x04%N\x01's spray(s).", target); - Menu_Spray(iParam1); - } - } - } + Menu_Spray(iParam1); + } + } + } + return 0; } +//' + void Menu_SprayBan(int client) { if (!IsValidClient(client)) @@ -977,95 +985,97 @@ void Menu_SprayBan(int client) int MenuHandler_Menu_SprayBan(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[32]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[32]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - Menu SprayBanLengthMenu = new Menu(MenuHandler_Menu_SprayBan_Length); - SprayBanLengthMenu.SetTitle("[SprayManager] Choose a Spray Ban Length for %N (#%d)", target, GetClientUserId(target)); - SprayBanLengthMenu.ExitBackButton = true; + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + Menu SprayBanLengthMenu = new Menu(MenuHandler_Menu_SprayBan_Length); + SprayBanLengthMenu.SetTitle("[SprayManager] Choose a Spray Ban Length for %N (#%d)", target, GetClientUserId(target)); + SprayBanLengthMenu.ExitBackButton = true; - SprayBanLengthMenu.AddItem("10", "10 Minutes"); - SprayBanLengthMenu.AddItem("30", "30 Minutes"); - SprayBanLengthMenu.AddItem("60", "1 Hour"); - SprayBanLengthMenu.AddItem("1440", "1 Day"); - SprayBanLengthMenu.AddItem("10080", "1 Week"); - SprayBanLengthMenu.AddItem("40320", "1 Month"); - SprayBanLengthMenu.AddItem("0", "Permanent"); + SprayBanLengthMenu.AddItem("10", "10 Minutes"); + SprayBanLengthMenu.AddItem("30", "30 Minutes"); + SprayBanLengthMenu.AddItem("60", "1 Hour"); + SprayBanLengthMenu.AddItem("1440", "1 Day"); + SprayBanLengthMenu.AddItem("10080", "1 Week"); + SprayBanLengthMenu.AddItem("40320", "1 Month"); + SprayBanLengthMenu.AddItem("0", "Permanent"); - g_iSprayBanTarget[iParam1] = target; + g_iSprayBanTarget[iParam1] = target; - SprayBanLengthMenu.Display(iParam1, MENU_TIME_FOREVER); - } - } - } + SprayBanLengthMenu.Display(iParam1, MENU_TIME_FOREVER); + } + } + } + return 0; } int MenuHandler_Menu_SprayBan_Length(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - Menu_SprayBan(iParam1); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + Menu_SprayBan(iParam1); + } - case MenuAction_Select: - { - char sOption[8]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[8]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iSprayBanTarget[iParam1]; + int target = g_iSprayBanTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_iSprayBanTarget[iParam1] = 0; + g_iSprayBanTarget[iParam1] = 0; - Menu_SprayBan(iParam1); - } - else - { - if (SprayBanClient1(iParam1, target, StringToInt(sOption), "Inappropriate Spray")) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray banned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray banned \"%L\" (Hash: \"%s\")", iParam1, target, g_sSprayHash[target]); - } + Menu_SprayBan(iParam1); + } + else + { + if (SprayBanClient1(iParam1, target, StringToInt(sOption), "Inappropriate Spray")) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray banned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray banned \"%L\" (Hash: \"%s\")", iParam1, target, g_sSprayHash[target]); + } - g_iSprayBanTarget[iParam1] = 0; - } - } - } + g_iSprayBanTarget[iParam1] = 0; + } + } + } + return 0; } void Menu_BanSpray(int client) @@ -1106,40 +1116,41 @@ void Menu_BanSpray(int client) int MenuHandler_Menu_BanSpray(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[32]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[32]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - Menu_BanSpray(iParam1); - } - else - { - if (BanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Banned \x04%N\x01's spray", target); - LogAction(iParam1, target, "\"%L\" banned \"%L\"'s spray", iParam1, target); - } - } - } - } + Menu_BanSpray(iParam1); + } + else + { + if (BanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Banned \x04%N\x01's spray", target); + LogAction(iParam1, target, "\"%L\" banned \"%L\"'s spray", iParam1, target); + } + } + } + } + return 0; } void Menu_Unban(int client) @@ -1180,37 +1191,38 @@ void Menu_Unban(int client) int MenuHandler_Menu_UnbanSpray(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack && g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + } - case MenuAction_Select: - { - char sOption[32]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[32]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - Menu_Unban(iParam1); - } - else - { - g_bInvokedThroughListMenu[iParam1] = false; - Menu_ListBans_Target(iParam1, target); - } - } - } + Menu_Unban(iParam1); + } + else + { + g_bInvokedThroughListMenu[iParam1] = false; + Menu_ListBans_Target(iParam1, target); + } + } + } + return 0; } void Menu_ListBans_Target(int client, int target) @@ -1284,215 +1296,218 @@ void Menu_ListBans_Target(int client, int target) int MenuHandler_Menu_ListBans_Target(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - { - if (g_bInvokedThroughListMenu[iParam1]) - Menu_ListBans(iParam1); - else - Menu_Unban(iParam1); - } - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + { + if (g_bInvokedThroughListMenu[iParam1]) + Menu_ListBans(iParam1); + else + Menu_Unban(iParam1); + } + } - case MenuAction_Select: - { - char sOption[32]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = GetClientOfUserId(StringToInt(sOption)); + case MenuAction_Select: + { + char sOption[32]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + int target = GetClientOfUserId(StringToInt(sOption)); - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - Menu_ListBans(iParam1); - } - else - { - if (g_bSprayBanned[target] && g_bSprayHashBanned[target]) - { - Menu MenuUnbanMode = new Menu(MenuHandler_Menu_UnbanMode); - MenuUnbanMode.SetTitle("[SprayManager] Unban %N?", target); - MenuUnbanMode.ExitBackButton = true; + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + Menu_ListBans(iParam1); + } + else + { + if (g_bSprayBanned[target] && g_bSprayHashBanned[target]) + { + Menu MenuUnbanMode = new Menu(MenuHandler_Menu_UnbanMode); + MenuUnbanMode.SetTitle("[SprayManager] Unban %N?", target); + MenuUnbanMode.ExitBackButton = true; - MenuUnbanMode.AddItem("H", "Remove Hash Ban."); - MenuUnbanMode.AddItem("S", "Remove Spray Ban."); - MenuUnbanMode.AddItem("B", "Remove Both."); + MenuUnbanMode.AddItem("H", "Remove Hash Ban."); + MenuUnbanMode.AddItem("S", "Remove Spray Ban."); + MenuUnbanMode.AddItem("B", "Remove Both."); - g_iSprayUnbanTarget[iParam1] = target; + g_iSprayUnbanTarget[iParam1] = target; - MenuUnbanMode.Display(iParam1, MENU_TIME_FOREVER); + MenuUnbanMode.Display(iParam1, MENU_TIME_FOREVER); - return; - } + return 0; + } - Menu MenuConfirmUnban = new Menu(MenuHandler_Menu_ConfirmUnban); - MenuConfirmUnban.SetTitle("[SprayManager] Unban %N?", target); - MenuConfirmUnban.ExitBackButton = true; + Menu MenuConfirmUnban = new Menu(MenuHandler_Menu_ConfirmUnban); + MenuConfirmUnban.SetTitle("[SprayManager] Unban %N?", target); + MenuConfirmUnban.ExitBackButton = true; - MenuConfirmUnban.AddItem("Y", "Yes."); - MenuConfirmUnban.AddItem("N", "No."); + MenuConfirmUnban.AddItem("Y", "Yes."); + MenuConfirmUnban.AddItem("N", "No."); - g_iSprayUnbanTarget[iParam1] = target; + g_iSprayUnbanTarget[iParam1] = target; - MenuConfirmUnban.Display(iParam1, MENU_TIME_FOREVER); - } - } - } + MenuConfirmUnban.Display(iParam1, MENU_TIME_FOREVER); + } + } + } + return 0; } int MenuHandler_Menu_UnbanMode(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - { - if (IsValidClient(g_iSprayUnbanTarget[iParam1])) - Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); - else if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + { + if (IsValidClient(g_iSprayUnbanTarget[iParam1])) + Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); + else if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + } - case MenuAction_Select: - { - char sOption[2]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[2]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iSprayUnbanTarget[iParam1]; + int target = g_iSprayUnbanTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_iSprayUnbanTarget[iParam1] = 0; + g_iSprayUnbanTarget[iParam1] = 0; - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - if (sOption[0] == 'H') - { - if (UnbanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Unbanned \x04%N\x01's spray", target); - LogAction(iParam1, target, "\"%L\" unbanned \"%L\"'s spray", iParam1, target); - } - } - else if (sOption[0] == 'S') - { - if (SprayUnbanClient(target, iParam1)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); - } - } - else if (sOption[0] == 'B') - { - if (SprayUnbanClient(target, iParam1) && UnbanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); - } - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + if (sOption[0] == 'H') + { + if (UnbanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Unbanned \x04%N\x01's spray", target); + LogAction(iParam1, target, "\"%L\" unbanned \"%L\"'s spray", iParam1, target); + } + } + else if (sOption[0] == 'S') + { + if (SprayUnbanClient(target, iParam1)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); + } + } + else if (sOption[0] == 'B') + { + if (SprayUnbanClient(target, iParam1) && UnbanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); + } + } - g_iSprayUnbanTarget[iParam1] = 0; - } - } - } + g_iSprayUnbanTarget[iParam1] = 0; + } + } + } + return 0; } int MenuHandler_Menu_ConfirmUnban(Menu hMenu, MenuAction action, int iParam1, int iParam2) { - switch (action) - { - case MenuAction_End: - delete hMenu; + switch (action) + { + case MenuAction_End: + delete hMenu; - case MenuAction_Cancel: - { - if (iParam2 == MenuCancel_ExitBack) - { - if (IsValidClient(g_iSprayUnbanTarget[iParam1])) - Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); - else if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - } + case MenuAction_Cancel: + { + if (iParam2 == MenuCancel_ExitBack) + { + if (IsValidClient(g_iSprayUnbanTarget[iParam1])) + Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); + else if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + } - case MenuAction_Select: - { - char sOption[2]; - hMenu.GetItem(iParam2, sOption, sizeof(sOption)); + case MenuAction_Select: + { + char sOption[2]; + hMenu.GetItem(iParam2, sOption, sizeof(sOption)); - int target = g_iSprayUnbanTarget[iParam1]; + int target = g_iSprayUnbanTarget[iParam1]; - if (!IsValidClient(target)) - { - PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); + if (!IsValidClient(target)) + { + PrintToChat(iParam1, "\x01\x04[SprayManager]\x01 Target no longer available."); - g_iSprayUnbanTarget[iParam1] = 0; + g_iSprayUnbanTarget[iParam1] = 0; - if (g_hTopMenu != null) - DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); - else - delete hMenu; - } - else - { - if (sOption[0] == 'Y') - { - if (g_bSprayHashBanned[target] && g_bSprayBanned[target]) - { - if (SprayUnbanClient(target, iParam1) && UnbanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); - } - } - else if (g_bSprayBanned[target]) - { - if (SprayUnbanClient(target, iParam1)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); - LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); - } - } - else if (g_bSprayHashBanned[target]) - { - if (UnbanClientSpray(iParam1, target)) - { - ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Unbanned \x04%N\x01's spray", target); - LogAction(iParam1, target, "\"%L\" unbanned \"%L\"'s spray", iParam1, target); - } - } + if (g_hTopMenu != null) + DisplayTopMenu(g_hTopMenu, iParam1, TopMenuPosition_LastCategory); + else + delete hMenu; + } + else + { + if (sOption[0] == 'Y') + { + if (g_bSprayHashBanned[target] && g_bSprayBanned[target]) + { + if (SprayUnbanClient(target, iParam1) && UnbanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); + } + } + else if (g_bSprayBanned[target]) + { + if (SprayUnbanClient(target, iParam1)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Spray unbanned \x04%N", target); + LogAction(iParam1, target, "\"%L\" spray unbanned \"%L\"", iParam1, target); + } + } + else if (g_bSprayHashBanned[target]) + { + if (UnbanClientSpray(iParam1, target)) + { + ShowActivity2(iParam1, "\x01\x04[SprayManager] ", "\x01Unbanned \x04%N\x01's spray", target); + LogAction(iParam1, target, "\"%L\" unbanned \"%L\"'s spray", iParam1, target); + } + } - g_iSprayUnbanTarget[iParam1] = 0; - } - else if (sOption[0] == 'N') - { - Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); - g_iSprayUnbanTarget[iParam1] = 0; - } - } - } - } + g_iSprayUnbanTarget[iParam1] = 0; + } + else if (sOption[0] == 'N') + { + Menu_ListBans_Target(iParam1, g_iSprayUnbanTarget[iParam1]); + g_iSprayUnbanTarget[iParam1] = 0; + } + } + } + } + return 0; } public Action Command_MarkNSFW(int client, int argc) @@ -2175,6 +2190,7 @@ public Action Command_SprayManager_UpdateInfo(int client, int argc) } ReplyToCommand(client, "[SprayManager] Refreshed database."); + return Plugin_Handled; } public bool isGoodSpray(int client) @@ -2354,11 +2370,11 @@ public Action HookSprayer(int iClients[MAXPLAYERS], int &iNumClients, char sSoun return Plugin_Continue; } -public Action Timer_UpdateHideSprays(Handle hTimer) +public void UpdateHideSprays() { if (!g_hDatabase) { - return Plugin_Handled; + return; } for (int client = 1; client <= MaxClients; client++) { @@ -2374,7 +2390,6 @@ public Action Timer_UpdateHideSprays(Handle hTimer) Format(sQuery, sizeof(sQuery), "SELECT `steamidtarget` FROM `sprayhidemanage` WHERE `steamidhider` = '%s' and `is_online` = 1;", g_csSID[client]); SQL_TQuery(g_hDatabase, select_sprays_to_hide, sQuery, GetClientSerial(client), DBPrio_Normal); } - return Plugin_Handled; } public Action Timer_PerformPlayerTraces(Handle hTimer) @@ -2424,6 +2439,7 @@ public Action Timer_PerformPlayerTraces(Handle hTimer) bOnce[i] = true; } } + return Plugin_Handled; } public Action Timer_ProcessPersistentSprays(Handle hThis) @@ -2466,6 +2482,7 @@ public Action Timer_ProcessPersistentSprays(Handle hThis) } g_hRoundEndTimer = null; + return Plugin_Handled; } public Action Timer_ResetOldSprays(Handle hThis) @@ -2504,6 +2521,7 @@ public Action Timer_ResetOldSprays(Handle hThis) } g_hRoundEndTimer = null; + return Plugin_Handled; } void InitializeSQL() @@ -2597,6 +2615,7 @@ public Action RetryMainTableCreation(Handle hTimer) SQL_TQuery(g_hDatabase, OnSQLTableCreated, "CREATE TABLE IF NOT EXISTS `spraymanager` (`steamid` TEXT NOT NULL, `name` TEXT DEFAULT 'unknown', `unbantime` INTEGER, `issuersteamid` TEXT, `issuername` TEXT DEFAULT 'unknown', `issuedtime` INTEGER NOT NULL, `issuedreason` TEXT DEFAULT 'none', PRIMARY KEY(steamid));"); else SQL_TQuery(g_hDatabase, OnSQLTableCreated, "CREATE TABLE IF NOT EXISTS `spraymanager` (`steamid` VARCHAR(32) NOT NULL, `name` VARCHAR(32) NOT NULL, `unbantime` INT, `issuersteamid` VARCHAR(32), `issuername` VARCHAR(32) NOT NULL, `issuedtime` INT, `issuedreason` VARCHAR(64) NOT NULL, PRIMARY KEY(steamid)) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + return Plugin_Handled; } public void OnSQLSprayBlacklistCreated(Handle hParent, Handle hChild, const char[] err, any data) @@ -2628,6 +2647,7 @@ public Action RetryBlacklistTableCreation(Handle hTimer) SQL_TQuery(g_hDatabase, OnSQLSprayBlacklistCreated, "CREATE TABLE IF NOT EXISTS `sprayblacklist` (`sprayhash` TEXT NOT NULL, `sprayer` TEXT DEFAULT 'unknown', `sprayersteamid` TEXT NOT NULL, PRIMARY KEY(sprayhash));"); else SQL_TQuery(g_hDatabase, OnSQLSprayBlacklistCreated, "CREATE TABLE IF NOT EXISTS `sprayblacklist` (`sprayhash` VARCHAR(16) NOT NULL, `sprayer` VARCHAR(32) NOT NULL, `sprayersteamid` VARCHAR(32) NOT NULL, PRIMARY KEY(sprayhash)) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + return Plugin_Handled; } public void OnSQLNSFWListCreated(Handle hParent, Handle hChild, const char[] err, any data) @@ -2659,6 +2679,7 @@ public Action RetryNSFWlistTableCreation(Handle hTimer) SQL_TQuery(g_hDatabase, OnSQLNSFWListCreated, "CREATE TABLE IF NOT EXISTS `spraynsfwlist` (`sprayhash` TEXT NOT NULL, `sprayersteamid` TEXT, `setbyadmin` INTEGER, PRIMARY KEY(sprayhash));"); else SQL_TQuery(g_hDatabase, OnSQLNSFWListCreated, "CREATE TABLE IF NOT EXISTS `spraynsfwlist` (`sprayhash` VARCHAR(16) NOT NULL, `sprayersteamid` VARCHAR(32), `setbyadmin` TINYINT PRIMARY KEY(sprayhash)) CHARACTER SET utf8 COLLATE utf8_general_ci"); + return Plugin_Handled; } public Action RetryUpdatingPlayerInfo(Handle hTimer) @@ -2670,6 +2691,7 @@ public Action RetryUpdatingPlayerInfo(Handle hTimer) OnClientPostAdminCheck(i); } + return Plugin_Handled; } public void ConVarChanged_DecalFrequency(ConVar cvar, const char[] sOldValue, const char[] sNewValue) @@ -3075,9 +3097,10 @@ public Action RetryPlayerInfoUpdate(Handle hTimer, int Serial) int client; if ((client = GetClientFromSerial(Serial)) == 0) { - return; + return Plugin_Handled; } UpdatePlayerInfo(client); + return Plugin_Handled; } public Action RetrySprayHashUpdate(Handle hTimer, int Serial) @@ -3085,9 +3108,10 @@ public Action RetrySprayHashUpdate(Handle hTimer, int Serial) int client; if ((client = GetClientFromSerial(Serial)) == 0) { - return; + return Plugin_Handled; } UpdateSprayHashInfo(client); + return Plugin_Handled; } public Action RetryNSFWSprayLookup(Handle hTimer, int Serial) @@ -3095,9 +3119,10 @@ public Action RetryNSFWSprayLookup(Handle hTimer, int Serial) int client; if ((client = GetClientFromSerial(Serial)) == 0) { - return; + return Plugin_Handled; } UpdateNSFWInfo(client); + return Plugin_Handled; } stock bool ForceSpray(int client, int target, bool bPlaySound=true)