#pragma semicolon 1 #include #include #include #include #include #include #include bool g_bHideLennies[MAXPLAYERS + 1] = { false, ... }; Handle g_hCookieHideLennies = null; #define NUMBEROFLENNIES 23 char g_cLennies[NUMBEROFLENNIES][] = {"( ͡° ͜ʖ ͡°)", "͜ʖ", "(° ͜ʖ °)", "( ͝͠°͜ل͝͠°)", "( ͡° ͜ ͡°)", "( ͡°╭͜ʖ╮͡° )", "( ͠° ͜ʖ ͡°)", "( ° ͜ʖ °)", "(╯°□°)╯", "_(ツ)_", "_ツ_", "( ̿°̿ ͜ل͜ ̿°̿ )", "( ͡", "( ͠", "( ͝", "( °", "(͡", "ಠ_ಠ", "͡°", "°͡", "ʖ", "͡", "͜"}; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Plugin myinfo = { name = "AntiLenny", author = "Dogan", description = "Makes it possible to selfmute Lennies", version = "1.3.0", url = "" } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnPluginStart() { RegConsoleCmd("sm_hide_lennies", OnToggleLennies, "Toggle blocking Lennies"); g_hCookieHideLennies = RegClientCookie("lennies_blocked", "are lennies blocked", CookieAccess_Protected); SetCookieMenuItem(MenuHandler_CookieMenu, 0, "Hide Lennies"); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action OnToggleLennies(int client, int args) { ToggleLennies(client); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void ShowSettingsMenu(int client) { Menu menu = new Menu(MenuHandler_MainMenu); menu.SetTitle("AntiLenny Settings", client); char sBuffer[128]; Format(sBuffer, sizeof(sBuffer), "Hiding Lennies: %s", g_bHideLennies[client] ? "Enabled" : "Disabled"); menu.AddItem("0", sBuffer); menu.ExitBackButton = true; menu.Display(client, MENU_TIME_FOREVER); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void MenuHandler_CookieMenu(int client, CookieMenuAction action, any info, char[] buffer, int maxlen) { switch(action) { case(CookieMenuAction_DisplayOption): { Format(buffer, maxlen, "AntiLenny", client); } case(CookieMenuAction_SelectOption): { ShowSettingsMenu(client); } } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public int MenuHandler_MainMenu(Menu menu, MenuAction action, int client, int selection) { switch(action) { case(MenuAction_Select): { switch(selection) { case(0): ToggleLennies(client); } ShowSettingsMenu(client); } case(MenuAction_Cancel): { ShowCookieMenu(client); } case(MenuAction_End): { delete menu; } } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action CCC_OnChatMessage(int client, int author, const char[] message) { for(int i = 0; i < NUMBEROFLENNIES; i++) { if(g_bHideLennies[client] && StrContains(message, g_cLennies[i], false) != -1) { return Plugin_Handled; } } return Plugin_Continue; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void ToggleLennies(int client) { g_bHideLennies[client] = !g_bHideLennies[client]; SetClientCookie(client, g_hCookieHideLennies, g_bHideLennies[client] ? "1" : ""); CPrintToChat(client, "{cyan}[AntiLenny] {white}%s", g_bHideLennies[client] ? "Lennies are now hidden" : "Lennies are not hidden anymore"); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientCookiesCached(int client) { char sBuffer[2]; GetClientCookie(client, g_hCookieHideLennies, sBuffer, sizeof(sBuffer)); if(sBuffer[0] != '\0') { g_bHideLennies[client] = true; } else { g_bHideLennies[client] = false; } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientDisconnect(int client) { g_bHideLennies[client] = false; }