/* This plugin was created by -eC-Akira|GDA a.k.a Chryosis */
/* admin_scout <target> */
/* admin_sniper <target> */
/* admin_soldier <target> */
/* admin_demoman <target> */
/* admin_medic <target> */
/* admin_hwguy <target> */
/* admin_pyro <target> */
/* admin_spy <target> */
/* admin_engineer <target> */
 
/*============= Includes =============*/
#include <core>
#include <string>
#include <admin>
#include <adminlib>
/*============= Includes =============*/
 
/*============= Definitions =============*/
#define ACCESS_SCOUT ACCESS_KICK
#define ACCESS_SNIPER ACCESS_KICK
#define ACCESS_SOLDIER ACCESS_KICK
#define ACCESS_DEMOMAN ACCESS_KICK
#define ACCESS_MEDIC ACCESS_KICK
#define ACCESS_HWGUY ACCESS_KICK
#define ACCESS_PYRO ACCESS_KICK
#define ACCESS_SPY ACCESS_KICK
#define ACCESS_ENGINEER ACCESS_KICK
 
new AM_VERSION_STRING[] = "2.50.06";
/*============= Definitions =============*/
 
/*=============| admin_scout <username> |============= */
 
public admin_scout(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_scout")==1) {
			execclient(TargetName, "scout");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_scout <username> |============= */
 
 
 
/*=============| admin_sniper <username> |============= */
 
public admin_sniper(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_sniper")==1) {
			execclient(TargetName, "sniper");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_sniper <username> |============= */
 
 
 
/*=============| admin_soldier <username> |============= */
 
public admin_soldier(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_soldier")==1) {
			execclient(TargetName, "soldier");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_soldier <username> |============= */
 
 
 
/*=============| admin_demoman <username> |============= */
 
public admin_demoman(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_demoman")==1) {
			execclient(TargetName, "demoman");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_demoman <username> |============= */
 
 
 
/*=============| admin_medic <username> |============= */
 
public admin_medic(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_medic")==1) {
			execclient(TargetName, "medic");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_medic <username> |============= */
 
 
 
/*=============| admin_hwguy <username> |============= */
 
public admin_hwguy(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_hwguy")==1) {
			execclient(TargetName, "hwguy");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_hwguy <username> |============= */
 
 
 
/*=============| admin_pyro <username> |============= */
 
public admin_pyro(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_pyro")==1) {
			execclient(TargetName, "pyro");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_pyro <username> |============= */
 
 
/*=============| admin_spy <username> |============= */
 
public admin_spy(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_spy")==1) {
			execclient(TargetName, "spy");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_spy <username> |============= */
 
 
/*=============| admin_engineer <username> |============= */
 
public admin_engineer(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
 
	convert_string(HLCommand,Command,MAX_NAME_LENGTH);
	convert_string(HLData,Data,MAX_NAME_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if(check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		say_command(User,Command,TargetName);
		if (check_immunity(TargetName) != 0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't force %s to change class, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
		} else if (streq(Command,"admin_engineer")==1) {
			execclient(TargetName, "engineer");
			execclient(TargetName, "kill");
		}
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}
 
/*=============| admin_engineer <username> |============= */
 
 
public plugin_init() {
	plugin_registerinfo("Class Change Plugin","Commands to change a persons class.",AM_VERSION_STRING);
 
	plugin_registercmd("admin_scout","admin_scout",ACCESS_KICK,"admin_scout <target>: Changes target to scout.");
	plugin_registercmd("admin_sniper","admin_sniper",ACCESS_KICK,"admin_sniper <target>: Changes target to sniper.");
	plugin_registercmd("admin_soldier","admin_soldier",ACCESS_KICK,"admin_soldier <target>: Changes target to soldier.");
	plugin_registercmd("admin_demoman","admin_demoman",ACCESS_KICK,"admin_demoman <target>: Changes target to demoman.");
	plugin_registercmd("admin_medic","admin_medic",ACCESS_KICK,"admin_medic <target>: Changes target to medic.");
	plugin_registercmd("admin_hwguy","admin_hwguy",ACCESS_KICK,"admin_hwguy <target>: Changes target to hwguy.");
	plugin_registercmd("admin_pyro","admin_pyro",ACCESS_KICK,"admin_pyro <target>: Changes target to pyro.");
	plugin_registercmd("admin_spy","admin_spy",ACCESS_KICK,"admin_spy <target>: Changes target to spy.");
	plugin_registercmd("admin_engineer","admin_engineer",ACCESS_KICK,"admin_engineer <target>: Changes target to engineer.");
 
	return PLUGIN_CONTINUE;
}