Untitled diff

Created Diff never expires
124 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
388 lines
108 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
373 lines
/**
/**
*
* =============================================================================
* =============================================================================
* 2 week gag & mute & ban
* 1 week gag & mute & ban
* MAKS steamcommunity.com/profiles/76561198025355822/
* MAKS steamcommunity.com/profiles/76561198025355822/
* dr lex steamcommunity.com/profiles/76561198008545221/
* dr lex steamcommunity.com/profiles/76561198008545221/
* =============================================================================
* =============================================================================
*
*
* This program is free software; you can redistribute it and/or modify it under
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
* Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* details.
*
*
* You should have received a copy of the GNU General Public License along with
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
* this program. If not, see <www.gnu.org/licenses/>.
*
*
* As a special exception, AlliedModders LLC gives you permission to link the
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* or <http://www.sourcemod.net/license.php>.
* or <www.sourcemod.net/license.php>.
*
*
*/
*/
#pragma semicolon 1
#pragma semicolon 1
#include <sourcemod>
#include <sourcemod>
#include <sdktools>
#include <sdktools>
#pragma newdecls required
#pragma newdecls required


char sg_fileTxt[160];
char sg_fileTxt[160];
char sg_log[160];


public Plugin myinfo =
public Plugin myinfo =
{
{
name = "gagmute",
name = "gagmute",
author = "MAKS & dr lex",
author = "MAKS & dr lex",
description = "2 week gag & mute",
description = "gag & mute & ban",
version = "1.1",
version = "1.3",
url = "forums.alliedmods.net/showthread.php?p=2347844"
url = "forums.alliedmods.net/showthread.php?p=2347844"
};
};


public void OnPluginStart()
public void OnPluginStart()
{
{
RegAdminCmd("sm_addban", CMD_tyban, ADMFLAG_BAN, "");
RegAdminCmd("sm_addban", CMD_addban, ADMFLAG_BAN, "");
RegAdminCmd("sm_addgag", CMD_tygag, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addgag", CMD_addgag, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addmute", CMD_tymute, ADMFLAG_CHAT, "");
RegAdminCmd("sm_addmute", CMD_addmute, ADMFLAG_CHAT, "");


BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/gagmute.txt");
BuildPath(Path_SM, sg_fileTxt, sizeof(sg_fileTxt)-1, "data/GagMuteBan.txt");
BuildPath(Path_SM, sg_log, sizeof(sg_log)-1, "logs/GagMuteBan.log");
}
}


void TyClientGagMuteBan(int client)
void HxClientGagMuteBan(int &client)
{
{
KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");


if (hGM.ImportFromFile(sg_fileTxt))
if (hGM.ImportFromFile(sg_fileTxt))
{
{
char sTeamID[24];
char sTeamID[24];
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);


if (hGM.JumpToKey(sTeamID))
if (hGM.JumpToKey(sTeamID))
{
{
int iMute = hGM.GetNum("mute", 0);
int iMute = hGM.GetNum("mute", 0);
int iGag = hGM.GetNum("gag", 0);
int iGag = hGM.GetNum("gag", 0);
int iBan = hGM.GetNum("ban", 0);
int iBan = hGM.GetNum("ban", 0);
delete hGM;

int iTime = GetTime();
int iTime = GetTime();

if (iMute > iTime)
if (iMute > iTime)
{
{
ServerCommand("sm_mute #%d", GetClientUserId(client));
ServerCommand("sm_mute #%d", GetClientUserId(client));
}
}
if (iGag > iTime)
if (iGag > iTime)
{
{
ServerCommand("sm_gag #%d", GetClientUserId(client));
ServerCommand("sm_gag #%d", GetClientUserId(client));
}
}
if (iBan > iTime)
if (iBan > iTime)
{
{
char sTime[24];
char sTime[24];
FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan);
FormatTime(sTime, sizeof(sTime)-1, "%Y-%m-%d %H:%M:%S", iBan);
KickClient(client,"Banned (%s)", sTime);
KickClient(client,"Banned (%s)", sTime);
}
}
}
}
delete hGM;
}
}
}
}


public void OnClientPostAdminCheck(int client)
public void OnClientPostAdminCheck(int client)
{
{
if (!IsFakeClient(client))
if (!IsFakeClient(client))
{
{
TyClientGagMuteBan(client);
HxClientGagMuteBan(client);
}
}
}
}


int TyClientTimeBan(int &client, int iTime)
int HxClientTimeBan(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];


KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);


GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);


if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}


int iTimeBan = GetTime() + (iTime * 60);
int iTimeBan = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("ban", iTimeBan);
hGM.SetNum("ban", iTimeBan);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;
return 1;
return 1;
}
}
return 0;
return 0;
}
}


public int TyMenuBan(Menu menu, MenuAction action, int param1, int param2)
public int MenuHandler_Ban(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
char info[16];
char sInfo[8];
bool found = menu.GetItem(param2, info, sizeof(info)-1);
bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1);
if (found && param1)
if (found && param1)
{
{
int client = StringToInt(info);
int client = StringToInt(sInfo);
if (client > 0)
if (client > 0)
{
{
if (TyClientTimeBan(client, 60*24*7))
if (HxClientTimeBan(client, 60*24*7))
{
{
PrintToChatAll("\x04%d \x05Min ban \x04%N.\n", 60*24*7, client);
LogToFileEx(sg_log, "Ban: %N -> %N", param1, client);
PrintToChatAll("\x05%d min ban:\x04 %N", 60*24*7, client);
KickClient(client, "%d Min ban.", 60*24*7);
KickClient(client, "%d Min ban.", 60*24*7);
}
}
}
}
}
}
}
}


if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}


public Action CMD_tyban(int client, int args)
public Action CMD_addban(int client, int args)
{
{
if (args)
if (client)
{
{
char sArg[8];
if (IsClientInGame(client))
GetCmdArg(1, sArg, sizeof(sArg)-1);
int iArg = StringToInt(sArg);
if (iArg > 0 && iArg < 33)
{
{
if (IsClientInGame(iArg))
char sName[32];
{
char sNumber[8];
int iTime = 60*24;
int i = 1;
if (args > 1)
{
char sTime[20];
GetCmdArg(2, sTime, sizeof(sTime)-1);
iTime = StringToInt(sTime);
}


if (TyClientTimeBan(client, iTime))
Menu hMenu = new Menu(MenuHandler_Ban);
{
hMenu.SetTitle("1 week ban player");
PrintToChatAll("\x04%d \x05Min ban \x04%N.\n", iTime, client);

KickClient(client, "%d Min ban.", iTime);
while (i <= MaxClients)
}
}
}
}
else
{
if (client)
{
if (IsClientInGame(client))
{
{
char sName[32];
if (IsClientInGame(i) && !IsFakeClient(i))
char sNumber[8];
int i = 1;

Menu hMenu = new Menu(TyMenuBan);
hMenu.SetTitle("1 week ban player");

while (i <= MaxClients)
{
{
if (IsClientInGame(i) && !IsFakeClient(i))
if (client != i)
{
{
if (client != i)
GetClientName(i, sName, sizeof(sName)-12);
{
Format(sNumber, sizeof(sNumber)-1, "%d", i);
GetClientName(i, sName, sizeof(sName)-12);
hMenu.AddItem(sNumber, sName);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
i += 1;
}
}

i += 1;
hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
Text moved with changes from lines 295-297 (98.3% similarity)

hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
}
}

return Plugin_Handled;
return Plugin_Handled;
}
}


int TyClientTimeGag(int &client, int iTime)
int HxClientTimeGag(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];


KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);


GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);


if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}


int iTimeGag = GetTime() + (iTime * 60);
int iTimeGag = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("gag", iTimeGag);
hGM.SetNum("gag", iTimeGag);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;
ServerCommand("sm_gag #%d", GetClientUserId(client));
ServerCommand("sm_gag #%d", GetClientUserId(client));
return 1;
return 1;
}
}
return 0;
return 0;
}
}


public int TyMenuGage(Menu menu, MenuAction action, int param1, int param2)
public int MenuHandler_Gage(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
char info[16];
char sInfo[8];
bool found = menu.GetItem(param2, info, sizeof(info)-1);
bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1);
if (found && param1)
if (found && param1)
{
{
int client = StringToInt(info);
int client = StringToInt(sInfo);
if (client > 0)
if (client > 0)
{
{
if (TyClientTimeGag(client, 60*24*7))
if (HxClientTimeGag(client, 60*24*7))
{
{
PrintToChatAll("\x04%d \x05Min gage \x04%N.\n", 60*24*7, client);
LogToFileEx(sg_log, "Gage: %N -> %N", param1, client);
PrintToChatAll("\x05%d min gage:\x04 %N", 60*24*7, client);
}
}
}
}
}
}
}
}


if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}


public Action CMD_tygag(int client, int args)
public Action CMD_addgag(int client, int args)
{
{
if (client && IsClientInGame(client))
if (client)
{
{
char sName[32];
if (IsClientInGame(client))
char sNumber[8];
{
int i = 1;
char sName[32];
char sNumber[8];
int i = 1;


Menu hMenu = new Menu(TyMenuGage);
Menu hMenu = new Menu(MenuHandler_Gage);
hMenu.SetTitle("1 week block chat");
hMenu.SetTitle("1 week block chat");


while (i <= MaxClients)
while (i <= MaxClients)
{
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
if (client != i)
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
GetClientName(i, sName, sizeof(sName)-12);
if (client != i)
Format(sNumber, sizeof(sNumber)-1, "%d", i);
{
hMenu.AddItem(sNumber, sName);
GetClientName(i, sName, sizeof(sName)-12);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
i += 1;
}
}
i += 1;

hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}
Text moved with changes to lines 182-184 (98.3% similarity)

hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}

return Plugin_Handled;
return Plugin_Handled;
}
}


int TyClientTimeMute(int &client, int iTime)
int HxClientTimeMute(int &client, int iTime)
{
{
if (IsClientInGame(client))
if (IsClientInGame(client))
{
{
char sName[32];
char sName[32];
char sTeamID[24];
char sTeamID[24];


KeyValues hGM = new KeyValues("gagmute");
KeyValues hGM = new KeyValues("gagmute");
hGM.ImportFromFile(sg_fileTxt);
hGM.ImportFromFile(sg_fileTxt);


GetClientName(client, sName, sizeof(sName)-12);
GetClientName(client, sName, sizeof(sName)-12);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);
GetClientAuthId(client, AuthId_Steam2, sTeamID, sizeof(sTeamID)-1);


if (!hGM.JumpToKey(sTeamID))
if (!hGM.JumpToKey(sTeamID))
{
{
hGM.JumpToKey(sTeamID, true);
hGM.JumpToKey(sTeamID, true);
}
}


int iTimeMute = GetTime() + (iTime * 60);
int iTimeMute = GetTime() + (iTime * 60);
hGM.SetString("Name", sName);
hGM.SetString("Name", sName);
hGM.SetNum("mute", iTimeMute);
hGM.SetNum("mute", iTimeMute);
hGM.Rewind();
hGM.Rewind();
hGM.ExportToFile(sg_fileTxt);
hGM.ExportToFile(sg_fileTxt);
delete hGM;
delete hGM;


ServerCommand("sm_mute #%d", GetClientUserId(client));
ServerCommand("sm_mute #%d", GetClientUserId(client));
return 1;
return 1;
}
}
return 0;
return 0;
}
}


public int TyMenuMute(Menu menu, MenuAction action, int param1, int param2)
public int MenuHandler_Mute(Menu menu, MenuAction action, int param1, int param2)
{
{
if (action == MenuAction_Select)
if (action == MenuAction_Select)
{
{
char info[16];
char sInfo[8];
bool found = menu.GetItem(param2, info, sizeof(info)-1);
bool found = menu.GetItem(param2, sInfo, sizeof(sInfo)-1);
if (found && param1)
if (found && param1)
{
{
int client = StringToInt(info);
int client = StringToInt(sInfo);
if (client > 0)
if (client > 0)
{
{
if (TyClientTimeMute(client, 60*24*7))
if (HxClientTimeMute(client, 60*24*7))
{
{
PrintToChatAll("\x04%d \x05Min mute \x04%N.\n", 60*24*7, client);
LogToFileEx(sg_log, "Mute: %N -> %N", param1, client);
PrintToChatAll("\x05%d min mute:\x04 %N", 60*24*7, client);
}
}
}
}
}
}
}
}


if (action == MenuAction_End)
if (action == MenuAction_End)
{
{
delete menu;
delete menu;
}
}
}
}


public Action CMD_tymute(int client, int args)
public Action CMD_addmute(int client, int args)
{
{
if (client && IsClientInGame(client))
if (client)
{
{
char sName[32];
if (IsClientInGame(client))
char sNumber[8];
{
int i = 1;
char sName[32];
char sNumber[8];
int i = 1;


Menu hMenu = new Menu(TyMenuMute);
Menu hMenu = new Menu(MenuHandler_Mute);
hMenu.SetTitle("1 week block microphone");
hMenu.SetTitle("1 week block microphone");


while (i <= MaxClients)
while (i <= MaxClients)
{
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
if (client != i)
if (IsClientInGame(i) && !IsFakeClient(i))
{
{
GetClientName(i, sName, sizeof(sName)-12);
if (client != i)
Format(sNumber, sizeof(sNumber)-1, "%d", i);
{
hMenu.AddItem(sNumber, sName);
GetClientName(i, sName, sizeof(sName)-12);
Format(sNumber, sizeof(sNumber)-1, "%d", i);
hMenu.AddItem(sNumber, sName);
}
}
}
i += 1;
}
}
i += 1;

hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}

hMenu.ExitButton = false;
hMenu.Display(client, 20);
}
}

return Plugin_Handled;
return Plugin_Handled;
}
}