Chatmanager448.sk

Created by Theindo448

Other available versions. Ordered by newest to oldest versions:

Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.

#================================#
#>	   Created by Theindo448	<#
#								 #
#>	   Version: 1.3.1 Release	<#
#								 #
#>	   Skript: ChatManager448	<#
#================================#


#===========[DEPENDENCIES]==================#
#
#	--[FOR 1.9+]--
#
#	Skript: https://github.com/SkriptLang/Skript/releases/
#	SkQuery: https://www.spigotmc.org/resources/skquery-1-9-1-15.36631/
#	
#===========================================#
#
#	--[FOR 1.8x]--
#
#	Skript: https://github.com/Matocolotoe/Skript-1.8/releases/
#	SkQueryLime: https://cdn.discordapp.com/attachments/697442955555897394/697456620774359110/SkQueryLime.jar
#
#[NOTE] = The Skript plugin that has been forked by Matocolotoe is actually still under development. Maybe some systems have errors
#
#===========================================#


#-------------------------Changelogs----------------------
#
#	1.3.1 Changelogs:
#
#- "Strict" mode can detect players when using a command (Usually this system detects the msg command)
#	
#	[This update will make "Strict" mode to more aggressively]
#
#	***This additional system will not work "If a system use Type [Censored]"***
#	***I recommend using the "Block" type so that the additional system can work properly***
#
#- Fixed wrong GUI Name "Mentions"
#- Changed some messages
#- "Debug mode" and the "Log system" can be used properly
#- Created new GUI for "Reset Options"
#- Shorten the contents of messages on "List" (for players)
#- Removed unused Prefix ID
#
#-------------------------Changelogs----------------------


#-##=====================================[License]====================================================##-#
#
#  		This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
# 		To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
#
#-##=====================================[License]====================================================##-#


#--------------------------------------------IMPORTANT!!--------------------------------------------
#
#Note: Don't change this skript if you don't know what you are doing!
#
# List Permissions:
#
#- chatmanager.bypass.* (Player can use all system from this skript)
#- chatmanager.bypass (Only bypassed the Chat Manager Feature)
#- chatmanager.bypass.cmdspy
#- chatmanager.bypass.antispam
#- chatmanager.bypass.antibadword
#- chatmanager.bypass.antiadv
#- chatmanager.bypass.blockcmd
#- chatmanager.bypass.commandcooldown
#- chatmanager.bypass.chatmute
#- chatmanager.admin (Player can use all commands from this skript)
#- chatmanager.loop.* (The Player will get all messages from the system)
#- chatmanager.loop.cmdspy
#- chatmanager.loop.badword
#- chatmanager.loop.update
#- chatmanager.loop.adv
#- chatmanager.loop.antispam
#- chatmanager.loop.blockcmd
#- chatmanager.loop.commandcooldown
#
#--------------------------------------------IMPORTANT!!--------------------------------------------


options:
	
	
	
	#--[You can change the messages here]--
	
	debugprefix: &8[&aChat&3Debug&8]
	prefix: &8[&aChat&eManager&8]
	
	antiadvertisePREFIX: &7(&bAntiAdvertise&7)
	antibadwordPREFIX: &7(&dAntiBadword&7)
	commandspyPREFIX: &7(&6CommandSpy&7)
	commandcooldownPREFIX: &7(&aCommandCooldown&7)
	antispamPREFIX: &7(&eAntiSpam&7)
	blockcommandPREFIX: &7(&cBlockCommands&7)
	
	antiadvertiseID: (AntiAdvertise)
	antibadwordID: (AntiBadword)
	blockcommandID: (BlockCommands)

	lineprefix: &a> &7&m----------&8[&aChat&eManager&8]&7&m---------- &a<
	line: &a> &7&m-------------------------------- &a<

	nopermission: &cYou don't have permission for that!
	CommandCooldown-BlockMSG: &cYou can't use commands by spamming! Please wait for %difference between {_commandcooldownTimespam} and {_commandcooldownwaited}%&c to use command again!.
	
	AntiSpam-BlockMSG: &cYou can't spamming in the chat! Please wait for %difference between {_Timespam} and {_waited}%&c to chat again!.
	AntiBadword-BlockMSG: &cDon't say bad word in chat!
	AntiAdvertise-BlockMSG: &cDon't advertise in chat!
	GlobalChat-BlockMSG: &cYou can't chat now! Only staff can chat!
	
	MentionSOUND: ENTITY_EXPERIENCE_ORB_PICKUP
	
	fileLogSystem: chatmanager448/VL-CM448.log

	#------{{IF YOU DON'T KNOW WHAT YOU ARE DOING THEN DO NOT EDIT THIS SKRIPT IN THIS POINT!}}------

	version: 1.3.1
	
	filename: ChatManager448
	
	updatelink: https://pastebin.com/raw/ZekQ8yk2
	linkredirect: https://bit.ly/2Zo3lPy
	
	permission: chatmanager.bypass.*

	#------{{IF YOU DON'T KNOW WHAT YOU ARE DOING THEN DO NOT EDIT THIS SKRIPT IN THIS POINT!}}------




variables:
	{cm448.chat.mute} = false
	{cm448.system.adv} = false
	{cm448.system.badword} = false
	{cm448.system.spam} = false
	{cm448.system.block} = false
	{cm448.commandspy.system} = false
	{cm448.system.commandcooldown} = false
	
	{cm448.logsystem} = false
	{cm448.debug} = false
	{cm448.mentionToggle} = false
	
	{cm448.cdchat.%player%} = false
	{cm448.antispam} = "3 seconds"
	{cm448.CommandCooldown} = "5 seconds"
	
	{cm448.updatealert.%player%} = true
	
	{cm448.AntiAdvertise.BlockType} = "Block"
	{cm448.AntiBadwords.BlockType} = "Block"
	{cm448.AntiAdvertise.ProtectLevel} = "Normal"
	{cm448.AntiBadword.ProtectLevel} = "Normal"

#---------- Setup ----------#

on chat:
	if {cm448.CommandCooldown2.addwords.%player%} is set:
		cancel event
		set {_commandcooldownTEMPMSG} to message
		if {_commandcooldownTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-CommandCooldown-TempData::*} doesn't contain "%{_commandcooldownTEMPMSG}%":
				add "%{_commandcooldownTEMPMSG}%" to {cm448-CommandCooldown-TempData::*}
				add "/%{_commandcooldownTEMPMSG}%" to {cm448-CommandCooldown-Words::*}
				send "{@prefix} &aSuccessfully add &e%{_commandcooldownTEMPMSG}%&a. List Words: &e%{cm448-CommandCooldown-Words::*}%&a. Add more words or write &cdone &ato complete the setup {@commandcooldownPREFIX}" to player
				stop trigger
			if {cm448-CommandCooldown-TempData::*} contains "%{_commandcooldownTEMPMSG}%":
				send "{@prefix} &cThat command is already added!" to player
				stop trigger
		else:
			delete {cm448.CommandCooldown2.addwords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsCommandCooldown"
			stop trigger
	else if {cm448.CommandCooldown2.removewords.%player%} is set:
		cancel event
		set {_commandcooldownTEMPMSG} to message
		if {_commandcooldownTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-CommandCooldown-TempData::*} contains "%{_commandcooldownTEMPMSG}%":
				remove "%{_commandcooldownTEMPMSG}%" from {cm448-CommandCooldown-TempData::*}
				remove "/%{_commandcooldownTEMPMSG}%" from {cm448-CommandCooldown-Words::*}
				send "{@prefix} &aSuccessfully remove &e%{_commandcooldownTEMPMSG}%&a. List Words: &e%{cm448-CommandCooldown-Words::*}%&a. Remove more words or write &cdone &ato complete the setup {@commandcooldownPREFIX}" to player
				stop trigger
			if {cm448-CommandCooldown-TempData::*} doesn't contain "%{_commandcooldownTEMPMSG}%":
				send "{@prefix} &cThat command is already removed!" to player
				stop trigger
		else:
			delete {cm448.CommandCooldown2.removewords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsCommandCooldown"
			stop trigger
	else if {cm448.AntiBadwords2.addwords.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			if {cm448-AntiBadwords-Words::*} doesn't contain message:
				add message to {cm448-AntiBadwords-Words::*}
				send "{@prefix} &aSuccessfully add &e%message%&a. List Words: &e%{cm448-AntiBadwords-Words::*}%&a. Add more words or write &cdone &ato complete the setup {@antibadwordPREFIX}" to player
				stop trigger
			if {cm448-AntiBadwords-Words::*} contains message:
				send "{@prefix} &cThat word is already added!" to player
				stop trigger
		else:
			delete {cm448.AntiBadwords2.addwords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsAntiBadword"
			stop trigger
	else if {cm448.AntiBadwords2.removewords.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			if {cm448-AntiBadwords-Words::*} contains message:
				remove message from {cm448-AntiBadwords-Words::*}
				send "{@prefix} &aSuccessfully remove &e%message%&a. List Words: &e%{cm448-AntiBadwords-Words::*}%&a. Remove more words or write &cdone &ato complete the setup {@antibadwordPREFIX}" to player
				stop
			if {cm448-AntiBadwords-Words::*} doesn't contain message:
				send "{@prefix} &cThat word is already removed!" to player
				stop trigger
		else:
			delete {cm448.AntiBadwords2.removewords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsAntiBadword"
	else if {cm448.CommandSpy2.addwords.%player%} is set:
		cancel event
		set {_commandspyTEMPMSG} to message
		if {_commandspyTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-CommandSpy-TempData::*} doesn't contain {_commandspyTEMPMSG}:
				add "%{_commandspyTEMPMSG}%" to {cm448-CommandSpy-TempData::*}
				add "/%{_commandspyTEMPMSG}%" to {cm448-CommandSpy-Words::*}
				send "{@prefix} &aSuccessfully add &e%{_commandspyTEMPMSG}%&a. List Commands: &e%{cm448-CommandSpy-Words::*}%&a. Add more whitelist commands or write &cdone &ato complete the setup {@commandspyPREFIX}" to player
				stop trigger
			if {cm448-CommandSpy-TempData::*} contains {_commandspyTEMPMSG}:
				send "{@prefix} &cThat command is already added!" to player
				stop trigger
		else:
			delete {cm448.CommandSpy2.addwords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsCommandSpy"
			stop trigger
	else if {cm448.CommandSpy2.removewords.%player%} is set:
		cancel event
		set {_commandspyTEMPMSG} to message
		if {_commandspyTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-CommandSpy-TempData::*} contains {_commandspyTEMPMSG}:
				remove "%{_commandspyTEMPMSG}%" from {cm448-CommandSpy-TempData::*}
				remove "/%{_commandspyTEMPMSG}%" from {cm448-CommandSpy-Words::*}
				send "{@prefix} &aSuccessfully remove &e%{_commandspyTEMPMSG}%&a. List Commands: &e%{cm448-CommandSpy-Words::*}%&a. Remove more whitelist commands or write &cdone &ato complete the setup {@commandspyPREFIX}" to player
				stop trigger
			if {cm448-CommandSpy-TempData::*} doesn't contain {_commandspyTEMPMSG}:
				send "{@prefix} &cThat command is already removed!" to player
				stop trigger
		else:
			delete {cm448.CommandSpy2.removewords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsCommandSpy"
			stop trigger
	else if {cm448.BlockCommands2.addwords.%player%} is set:
		cancel event
		set {_blockcmdTEMPMSG} to message
		if {_blockcmdTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-BlockCommands-TempData::*} doesn't contain {_blockcmdTEMPMSG}:
				add "%{_blockcmdTEMPMSG}%" to {cm448-BlockCommands-TempData::*}
				add "/%{_blockcmdTEMPMSG}%" to {cm448-BlockCommands-Words::*}
				send "{@prefix} &aSuccessfully add &e%{_blockcmdTEMPMSG}%&a. List Commands: &e%{cm448-BlockCommands-Words::*}%&a. Add more blacklist commands or write &cdone &ato complete the setup {@blockcommandPREFIX}" to player
				stop trigger
			if {cm448-BlockCommands-TempData::*} contains {_blockcmdTEMPMSG}:
				send "{@prefix} &cThat command is already added!" to player
				stop trigger
		else:
			delete {cm448.BlockCommands2.addwords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsBlockCommands"
			stop trigger
	else if {cm448.BlockCommands2.removewords.%player%} is set:
		cancel event
		set {_blockcmdTEMPMSG} to message
		if {_blockcmdTEMPMSG} is not "done":
			wait 1 tick
			if {cm448-BlockCommands-TempData::*} contains {_blockcmdTEMPMSG}:
				remove "%{_blockcmdTEMPMSG}%" from {cm448-BlockCommands-TempData::*}
				remove "/%{_blockcmdTEMPMSG}%" from {cm448-BlockCommands-Words::*}
				send "{@prefix} &aSuccessfully remove &e%{_blockcmdTEMPMSG}%&a. List Commands: &e%{cm448-BlockCommands-Words::*}%&a. Remove more blacklist commands or write &cdone &ato complete the setup {@blockcommandPREFIX}" to player
				stop trigger
			if {cm448-BlockCommands-TempData::*} doesn't contain {_blockcmdTEMPMSG}:
				send "{@prefix} &cThat command is already removed!" to player
				stop trigger
		else:
			delete {cm448.BlockCommands2.removewords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsBlockCommands"
			stop trigger
	else if {cm448.AntiAdvertise2.addwords.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			if {cm448-AntiAdvertise-Words::*} doesn't contain message:
				add message to {cm448-AntiAdvertise-Words::*}
				send "{@prefix} &aSuccessfully add &e%message%&a. List Words: &e%{cm448-AntiAdvertise-Words::*}%&a. Add more words or write &cdone &ato complete the setup {@antiadvertisePREFIX}" to player
				stop trigger
			if {cm448-AntiAdvertise-Words::*} contains message:
				send "{@prefix} &cThat word is already added!" to player
				stop trigger
		else:
			delete {cm448.AntiAdvertise2.addwords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsAntiAdvertise"
			stop trigger
	else if {cm448.AntiAdvertise2.removewords.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			if {cm448-AntiAdvertise-Words::*} contains message:
				remove message from {cm448-AntiAdvertise-Words::*}
				send "{@prefix} &aSuccessfully remove &e%message%&a. List Words: &e%{cm448-AntiAdvertise-Words::*}%&a. Remove more words or write &cdone &ato complete the setup {@antiadvertisePREFIX}" to player
				stop trigger
			if {cm448-AntiAdvertise-Words::*} doesn't contain message:
				send "{@prefix} &cThat word is already removed!" to player
				stop trigger
		else:
			delete {cm448.AntiAdvertise2.removewords.%player%}
			send "{@prefix} &aSuccessfully completed setup" to player
			make player execute command "/cm settingsAntiAdvertise"
			stop trigger
	else if {cm448.AntiSpam2.changecooldown.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			set {_cm448.antispam.setupTimeMSG} to "seconds"
			set {_antispammsg} to message
			wait 1 tick
			if {_antispammsg} contains {_cm448.antispam.setupTimeMSG}:
				if {_antispammsg} is {_cm448.antispam.setupTimeMSG}:
					set {cm448.antispam} to {_antispammsg}
					send "{@prefix} &aSuccessfully changed to &e%{_antispammsg}%&a. Change cooldown time again or write &cdone &ato complete the setup {@antispamPREFIX}" to player
					send "&7> Current Cooldown Time: &e%{cm448.antispam}%" to player
					if {cm448.debug} = true:
						send "{@debugprefix} &7%{_cm448.antispam.setupTimeMSG}%" to player
					stop trigger
				else:
					set {cm448.antispam} to {_antispammsg}
					send "{@prefix} &aSuccessfully changed to &e%{_antispammsg}%&a. Change cooldown time again or write &cdone &ato complete the setup {@antispamPREFIX}" to player
					send "&7> Current Cooldown Time: &e%{cm448.antispam}%" to player
					if {cm448.debug} = true:
						send "{@debugprefix} &7%{_cm448.antispam.setupTimeMSG}%" to player
					stop trigger
			else:
				send "{@prefix} &cYou must write down the type of time specified!" to player
				send "&7> Example: 3 seconds" to player
				if {cm448.debug} = true:
					send "{@debugprefix} &7%{_cm448.antispam.setupTimeMSG}%" to player
				stop trigger
		else:
			delete {cm448.AntiSpam2.changecooldown.%player%}
			send "{@prefix} &aSuccessfully completed setup!" to player
			make player execute command "/cm settingsAntiSpam"
			stop trigger
	else if {cm448.CommandCooldown2.changecooldown.%player%} is set:
		cancel event
		if message is not "done":
			wait 1 tick
			set {_cm448.CommandCooldown.setupTimeMSG} to "seconds"
			set {_CommandCooldownmsg} to message
			wait 1 tick
			if {_CommandCooldownmsg} contains {_cm448.CommandCooldown.setupTimeMSG}:
				if {_CommandCooldownmsg} is {_cm448.CommandCooldown.setupTimeMSG}:
					set {cm448.CommandCooldown} to {_CommandCooldownmsg}
					send "{@prefix} &aSuccessfully changed to &e%{_CommandCooldownmsg}%&a. Change cooldown time again or write &cdone &ato complete the setup {@commandcooldownPREFIX}" to player
					send "&7> Current Cooldown Time: &e%{cm448.CommandCooldown}%"
					if {cm448.debug} = true:
						send "{@debugprefix} &7%{_cm448.CommandCooldown.setupTimeMSG}%" to player
					stop trigger
				else:
					set {cm448.CommandCooldown} to {_CommandCooldownmsg}
					send "{@prefix} &aSuccessfully changed to &e%{_CommandCooldownmsg}%&a. Change cooldown time again or write &cdone &ato complete the setup {@commandcooldownPREFIX}" to player
					send "&7> Current Cooldown Time: &e%{cm448.CommandCooldown}%"
					if {cm448.debug} = true:
						send "{@debugprefix} &7%{_cm448.CommandCooldown.setupTimeMSG}%" to player
					stop trigger
			else:
				send "{@prefix} &cYou must write down the type of time specified!" to player
				send "&7> Example: 5 seconds" to player
				if {cm448.debug} = true:
					send "{@debugprefix} &7%{_cm448.CommandCooldown.setupTimeMSG}%" to player
				stop trigger
		else:
			delete {cm448.CommandCooldown2.changecooldown.%player%}
			send "{@prefix} &aSuccessfully completed setup!" to player
			make player execute command "/cm settingsCommandCooldown"
			stop trigger

#---------- Update Notification ----------#

on join:
	if {cm448.updatealert.%player%} is true:
		if player has permission "chatmanager.loop.update" or "{@permission}":
			wait 10 ticks
			send "{@prefix} &aChecking a new updates..." to player
			wait 1 seconds
			if text from "{@updatelink}" is not "{@version}":
				set {_update.version} to text from "{@updatelink}"
				wait 0.4 seconds
				send "{@line}" to player
				send "{@prefix} &eAn Updates are Available!" to player
				send "&7> &eNew Version: &a&l%{_update.version}%" to player
				send "&7> &eYour skript version: &7(&c{@version}&7)" to player
				send formatted "&7> &eDownload New Version Now: &6&n<link:{@linkredirect}>Click here<reset>" to player
				send "{@line}" to player
				set {chatmanager448.newupdates.notif} to "&6Updates Available!"
			else if text from "{@updatelink}" is "{@version}":
				send "{@prefix} &aThe skript is running with the latest version &6&l(&e{@version}&6&l)" to player
				set {chatmanager448.newupdates.notif} to ""
			else:
				send "{@prefix} &cError: Failed to check the updates, Please contact &6Theindo448." to player

#---------- System Properties ----------#

on command:
	if sender is player:
		if {cm448.system.block} is true:
			set {_blockcmdplayermessage} to command
			if player has permission "chatmanager.bypass.blockcmd", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				loop {cm448-BlockCommands-Words::*}:
					if loop-value contains {_blockcmdplayermessage}:
						cancel event
						send "{@nopermission}" to player
						if {cm448.logsystem} is true:
							log "{@prefix} {@blockcommandID} %player% > %complete command%" to "{@fileLogSystem}"
						if {cm448.debug} = true:
							send "{@debugprefix} &6Found &ccommand that has been blocked from %player%'s chat &7(&cBlockCommands&7)" to console
						stop trigger
					else:
						if {cm448.debug} = true:
							send "{@debugprefix} &cNo command found that has been blocked from %player%'s chat &7(&cBlockCommands&7)" to console
							stop trigger
		if {cm448.commandspy.system} is true:
			set {_cmdspyplayermessage} to command
			if player has permission "chatmanager.bypass.cmdspy", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				wait 0.2 seconds
				loop all players:
					if loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.cmdspy" or "{@permission}":
						if player is not loop-player:
							loop {cm448-CommandSpy-Words::*}:
								if loop-value-2 contains {_cmdspyplayermessage}:
									if {cm448.debug} = true:
										send "{@debugprefix} &cNo command exceptions were found from %player% &7(&6CommandSpy&7)" to console
									send "{@line}" to loop-player
									send "{@prefix} &cCommand Spy" to loop-player
									send "&c%player% &6executed command &e%complete command%" to loop-player
									send "{@line}" to loop-player
									stop trigger
								else:
									if {cm448.debug} = true:
										send "{@debugprefix} &cFound exception command from %player% &7(&6CommandSpy&7)" to console
		if {cm448.system.commandcooldown} is true:
			if sender is player:
				if player has permission "chatmanager.bypass.commandcooldown", "chatmanager.bypass" or "{@permission}":
					stop trigger
				else:
					set {_commandcooldownmsg} to command
					loop {cm448-CommandCooldown-Words::*}:
						loop-value contains {_commandcooldownmsg}
						set {_commandcooldownwaited} to difference between {cm448.commandcooldown.%player%.lastused} and now
						set {_commandcooldownTimespam} to "%{cm448.commandcooldown}%" parsed as timespan
						if {_commandcooldownwaited} is less than {_commandcooldownTimespam}:
							send "{@prefix} {@CommandCooldown-BlockMSG}" to player
							cancel event
							stop trigger
						set {cm448.commandcooldown.%player%.lastused} to now

on command:
	if sender is player:
		if {cm448.system.adv} is true:
			set {_advplayermessage} to complete command
			if player has permission "chatmanager.bypass.antiadv", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				if {cm448.AntiAdvertise.ProtectLevel} is "Strict":
					replace all " ", "/", "^", "*", "##", ".", "$$", "<", ">", "\", "/", ":", ";", "[", "]", "{", "}", "(", ")", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "{}", "[]", "()", "<>", "=", "-", "&", "@", "~", ",", "!", """", "'", "|", "%%", "Aa","Bb", "Cc", "Dd", "Ee", "Ff", "Gg", "Hh", "Ii", "Jj", "Kk", "Ll", "Mm", "Nn", "Oo", "Pp", "Qq", "Rr", "Ss", "Tt", "Uu", "Vv", "Ww", "Xx", "Yy", and "Zz" with "" in {_advplayermessage}
					loop {cm448-AntiAdvertise-Words::*}:
						if {_advplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s chat &7(&bAntiAdvertise&7)" to console
							message "{@line}" to console
							message "{@prefix} &cAdvertisement Block System" to console
							message "&7%player% &b> &a/%complete command%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antiadvertiseID} %player% > /%complete command%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &eAdvertisement Block System" to loop-player
									message "&7%player% » &a/%complete command%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiAdvertise.BlockType} is "Block":
								send "{@prefix} {@AntiAdvertise-BlockMSG}" to player
								cancel event
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s chat&7(&bAntiAdvertise&7)" to console
		if {cm448.system.badword} is true:
			set {_badwordplayermessage} to complete command
			if player has permission "chatmanager.bypass.antibadword", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				if {cm448.AntiBadword.ProtectLevel} is "Strict":
					replace all " ", "/", "^", "*", "##", ".", "$$", "<", ">", "\", "/", ":", ";", "[", "]", "{", "}", "(", ")", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "{}", "[]", "()", "<>", "=", "-", "&", "@", "~", ",", "!", """", "'", "|", "%%", "Aa","Bb", "Cc", "Dd", "Ee", "Ff", "Gg", "Hh", "Ii", "Jj", "Kk", "Ll", "Mm", "Nn", "Oo", "Pp", "Qq", "Rr", "Ss", "Tt", "Uu", "Vv", "Ww", "Xx", "Yy", and "Zz" with "" in {_badwordplayermessage}
					loop {cm448-AntiBadwords-Words::*}:
						if {_badwordplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s &cchat &7(&dAntiBadword&7)" to console
							message "{@line}" to console
							message "{@prefix} &6Badword Block System" to console
							message "&6%player% &7> &c/%complete command%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antibadwordID} %player% > /%complete command%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &6Badword Block System" to loop-player
									message "&6%player% &7» &c/%complete command%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiBadwords.BlockType} is "Block":
								send "{@prefix} {@AntiBadword-BlockMSG}" to player
								cancel event
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s &cchat &7(&dAntiBadword&7)" to console

on chat:
	if sender is player:
		if {cm448.chat.mute} is true:
			if player has permission "chatmanager.bypass.chatmute", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				message "{@prefix} {@GlobalChat-BlockMSG}" to player
				cancel event
		if {cm448.system.adv} is true:
			set {_advplayermessage} to message
			if player has permission "chatmanager.bypass.antiadv", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				if {cm448.AntiAdvertise.ProtectLevel} is "Normal":
					loop {cm448-AntiAdvertise-Words::*}:
						if {_advplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s chat &7(&bAntiAdvertise&7)" to console
							message "{@line}" to console
							message "{@prefix} &cAdvertisement Block System" to console
							message "&7%player% &b> &a%message%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antiadvertiseID} %player% > %message%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &eAdvertisement Block System" to loop-player
									message "&7%player% » &a%message%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiAdvertise.BlockType} is "Block":
								send "{@prefix} {@AntiAdvertise-BlockMSG}" to player
								cancel event
							if {cm448.AntiAdvertise.BlockType} is "Censored":
								if {_advplayermessage} is loop-value:
									replace all loop-value in the message with "***"
								else:
									replace all loop-value in the message with "***"
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s chat&7(&bAntiAdvertise&7)" to console
				if {cm448.AntiAdvertise.ProtectLevel} is "Strict":
					replace all " ", "/", "^", "*", "##", ".", "$$", "<", ">", "\", "/", ":", ";", "[", "]", "{", "}", "(", ")", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "{}", "[]", "()", "<>", "=", "-", "&", "@", "~", ",", "!", """", "'", "|", "%%", "Aa","Bb", "Cc", "Dd", "Ee", "Ff", "Gg", "Hh", "Ii", "Jj", "Kk", "Ll", "Mm", "Nn", "Oo", "Pp", "Qq", "Rr", "Ss", "Tt", "Uu", "Vv", "Ww", "Xx", "Yy", and "Zz" with "" in {_advplayermessage}
					loop {cm448-AntiAdvertise-Words::*}:
						if {_advplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s chat &7(&bAntiAdvertise&7)" to console
							message "{@line}" to console
							message "{@prefix} &cAdvertisement Block System" to console
							message "&7%player% &b> &a%message%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antiadvertiseID} %player% > %message%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &eAdvertisement Block System" to loop-player
									message "&7%player% » &a%message%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiAdvertise.BlockType} is "Block":
								send "{@prefix} {@AntiAdvertise-BlockMSG}" to player
								cancel event
							if {cm448.AntiAdvertise.BlockType} is "Censored":
								if {_advplayermessage} is loop-value:
									replace all loop-value in the message with "***"
								else:
									replace all loop-value in the message with "***"
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s chat&7(&bAntiAdvertise&7)" to console
		if {cm448.system.badword} is true:
			set {_badwordplayermessage} to message
			if player has permission "chatmanager.bypass.antibadword", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				if {cm448.AntiBadword.ProtectLevel} is "Normal":
					loop {cm448-AntiBadwords-Words::*}:
						if {_badwordplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s &cchat &7(&dAntiBadword&7)" to console
							message "{@line}" to console
							message "{@prefix} &6Badword Block System" to console
							message "&6%player% &7> &c%message%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antibadwordID} %player% > %message%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &6Badword Block System" to loop-player
									message "&6%player% &7» &c%message%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiBadwords.BlockType} is "Block":
								send "{@prefix} {@AntiBadword-BlockMSG}" to player
								cancel event
							if {cm448.AntiBadwords.BlockType} is "Censored":
								if {_badwordplayermessage} is loop-value:
									replace all loop-value in the message with "***"
								else:
									replace all loop-value in the message with "***"
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s &cchat &7(&dAntiBadword&7)" to console
				if {cm448.AntiBadword.ProtectLevel} is "Strict":
					replace all " ", "/", "^", "*", "##", ".", "$$", "<", ">", "\", "/", ":", ";", "[", "]", "{", "}", "(", ")", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "{}", "[]", "()", "<>", "=", "-", "&", "@", "~", ",", "!", """", "'", "|", "%%", "Aa","Bb", "Cc", "Dd", "Ee", "Ff", "Gg", "Hh", "Ii", "Jj", "Kk", "Ll", "Mm", "Nn", "Oo", "Pp", "Qq", "Rr", "Ss", "Tt", "Uu", "Vv", "Ww", "Xx", "Yy", and "Zz" with "" in {_badwordplayermessage}
					loop {cm448-AntiBadwords-Words::*}:
						if {_badwordplayermessage} contains loop-value:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &6Found &cthe word blacklist in the %player%'s &cchat &7(&dAntiBadword&7)" to console
							message "{@line}" to console
							message "{@prefix} &6Badword Block System" to console
							message "&6%player% &7> &c%message%" to console
							message "{@line}" to console
							if {cm448.logsystem} is true:
								log "{@prefix} {@antibadwordID} %player% > %message%" to "{@fileLogSystem}"
							loop all players:
								loop-player has permission "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
									message "{@line}" to loop-player
									message "{@prefix} &6Badword Block System" to loop-player
									message "&6%player% &7» &c%message%" to loop-player
									message "{@line}" to loop-player
							if {cm448.AntiBadwords.BlockType} is "Block":
								send "{@prefix} {@AntiBadword-BlockMSG}" to player
								cancel event
							if {cm448.AntiBadwords.BlockType} is "Censored":
								if {_badwordplayermessage} is loop-value:
									replace all loop-value in the message with "***"
								else:
									replace all loop-value in the message with "***"
						else:
							if {cm448.debug} = true:
								{cm448.spam.detection.%player%} is not set
								send "{@debugprefix} &cNo word blacklist found in %player%'s &cchat &7(&dAntiBadword&7)" to console
		if {cm448.system.spam} is true:
			if player has permission "chatmanager.bypass.antispam", "chatmanager.bypass" or "{@permission}":
				stop trigger
			else:
				set {_waited} to difference between {cm448.antispam.%player%.lastused} and now
				set {_Timespam} to "%{cm448.antispam}%" parsed as timespan
				if {_waited} is less than {_Timespam}:
					set {cm448.spam.detection.%player%} to true
					send "{@prefix} {@AntiSpam-BlockMSG}" to player
					cancel event
					if {cm448.debug} = true:
						send "{@debugprefix} &6Stop Spamming message from %player% &7(&eAntiSpam&7)" to console
					stop trigger
				set {cm448.antispam.%player%.lastused} to now
				delete {cm448.spam.detection.%player%}

on chat:
	if {cm448.mentionToggle} = true:
		loop all players:
			if message contains "%loop-player%":
				replace all "%loop-player%" with "&e&l@%loop-player%&r" in message
				play sound "{@MentionSOUND}" with volume 1 to loop-player
				send action bar "&6Someone just mentioned you in chat" to loop-player


#---------- Commands ----------#
			
command /chatmanager [<text>] [<text>] [<text>]:
	description: Set the chatmanager
	aliases: /cm
	trigger:
		if executor is player:
			if player has permission "chatmanager.admin.*" or "chatmanager.admin.core" or "{@permission}":
				if arg 1 is not set:
					make player execute command "/cm gui"
					stop trigger
				if arg 1 is "help" or "gui":
					open chest with 3 rows named "{@prefix} &aMain Menu" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI." to close
					format slot 11 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI." to run [make player execute command "/chatmanager help"]
					format slot 12 of player with paper named "&bInformation" with lore "&7Click to show the information." to run [make player execute command "/chatmanager info"]
					format slot 13 of player with iron sword named "&6Reload" with lore "&7Click to reload the skript." to run [make player execute command "/chatmanager reload"]
					format slot 15 of player with water bucket named "&aUtilities" with lore "&7Click to open GUI for Utilities." to run [make player execute command "/chatmanager utilities"]
					format slot 14 of player with redstone named "&eSystem Config" with lore "&7Click to open GUI for System Config." to run [make player execute command "/chatmanager system"]
					stop trigger
				if arg 1 is "updateselect":
					open chest with 3 rows named "&aUpdate System" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager utilities"] 
					format slot 11 of player with redstone named "&aUpdate Notifications" with lore "&7Click to enable/disable Update Notifications." to run [make player execute command "/chatmanager updatealert"]
					format slot 15 of player with paper named "&eCheck Updates" with lore "&7Click to check the new updates." to run [make player execute command "/cm checkupdate"]
					stop trigger
				if arg 1 is "utilities":
					open chest with 3 rows named "{@prefix} &aUtilities" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager help"] 
					format slot 11 of player with minecart with chest named "&aUpdate System" with lore "&7Click to open GUI for update system." to run [make player execute command "/chatmanager updateselect"]
					format slot 12 of player with lapis lazuli block named "&cGlobal Chat" with lore "&7Click to mute the globalchat." to run [make player execute command "/chatmanager chatmute"]
					format slot 13 of player with paper named "&eMention" with lore "&7Click to open GUI for Player Mention." to run [make player execute command "/chatmanager mention"]
					format slot 14 of player with water bucket named "&dClearchat" with lore "&7Click to open GUI for clearchat." to run [make player execute command "/chatmanager clearchat"]
					format slot 15 of player with stick named "&3Debug" with lore "&7Click to open GUI for Debug." to run [make player execute command "/chatmanager debug"]
					stop trigger
				if arg 1 is "mention":
					open chest with 3 rows named "{@prefix} &eMention" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager utilities"] 
					format slot 13 of player with paper named "&eToggle" with lore "&7Set the &eMention &7system to be turned on / off" and "&7Current Status: &e%{cm448.mentionToggle}%" to run [make player execute command "/chatmanager mention-Toggle"]
					stop trigger
				if arg 1 is "mention-Toggle":
					if {cm448.mentionToggle} = false:
						set {cm448.mentionToggle} to true
						send "{@prefix} &aSuccessfully enabled &eMention &asystem&a!" to player
						send "{@prefix} &a%player% &ajust enabled the &eMention &asystem" to console
						stop trigger
					if {cm448.mentionToggle} = true:
						set {cm448.mentionToggle} to false
						send "{@prefix} &c%player% &cjust disabled the &eMention &csystem" to console
						send "{@prefix} &cSuccessfully disabled &eMention &csystem&c!" to player
						stop trigger
				if arg 1 is "debug":
					open chest with 3 rows named "{@prefix} &3Debug" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager utilities"] 
					format slot 13 of player with paper named "&3Toggle" with lore "&7&7Set the &3Debug &7system to be turned on / off" and "&7Current Status: &3%{cm448.debug}%" to run [make player execute command "/chatmanager debug-Toggle"]
					stop trigger
				if arg 1 is "debug-Toggle":
					if {cm448.debug} = false:
						set {cm448.debug} to true
						send "{@prefix} &aSuccessfully enabled &3Debug Mode&a!" to player
						send "{@prefix} &a%player% &ajust enabled the &3Debug Mode" to console
						stop trigger
					if {cm448.debug} = true:
						set {cm448.debug} to false
						send "{@prefix} &c%player% &cjust disabled the &3Debug Mode" to console
						send "{@prefix} &cSuccessfully disabled &3Debug Mode&c!" to player
						stop trigger
				if arg 1 is "checkupdate":
					send "{@prefix} &aChecking a new updates ...." to player
					wait 1 seconds
					if text from "{@updatelink}" is not "{@version}":
						set {_update.version} to text from "{@updatelink}"
						wait 0.4 seconds
						send "{@line}" to player
						send "{@prefix} &eAn Updates are Available!" to player
						send "&7> &eNew Version: &a&l%{_update.version}%" to player
						send "&7> &eYour skript version: &7(&c{@version}&7)" to player
						send formatted "&7> &eDownload New Version Now: &6&n<link:{@linkredirect}>Click here<reset>" to player
						send "{@line}" to player
						set {chatmanager448.newupdates.notif} to "&6Updates Available!"
						stop trigger
					else if text from "{@updatelink}" is "{@version}":
						send "{@prefix} &aThe skript is running with the latest version &6&l(&e{@version}&6&l)" to player
						set {chatmanager448.newupdates.notif} to ""
						stop trigger
					else:
						send "{@prefix} &cError: Failed to check the updates, Please contact &6Theindo448." to player
						stop trigger
				if arg 1 is "resetall":
					set {_user} to player
					set {cm448.chat.mute} to false
					set {cm448.system.adv} to false
					set {cm448.system.badword} to false
					set {cm448.system.spam} to false
					set {cm448.system.block} to false
					set {cm448.system.commandcooldown} to false
					set {cm448.commandspy.system} to false
					set {cm448.updatealert.%{_user}%} to true
					set {cm448.CommandCooldown} to "5 seconds"
					set {cm448.antispam} to "3 seconds"
					set {cm448.AntiAdvertise.ProtectLevel} to "Normal"
					set {cm448.AntiBadword.ProtectLevel} to "Normal"
					set {cm448.AntiAdvertise.BlockType} to "Block"
					set {cm448.AntiBadwords.BlockType} to "Block"
					delete {cm448-AntiBadwords-Words::*}
					delete {cm448-CommandSpy-Words::*}
					delete {cm448-CommandSpy-TempData::*}
					delete {cm448-BlockCommands-Words::*}
					delete {cm448-BlockCommands-TempData::*}
					delete {cm448-AntiAdvertise-Words::*}
					delete {cm448-CommandCooldown-Words::*}
					delete {cm448-CommandCooldown-TempData::*}
					delete {cm448.AntiBadwords2.addwords.%{_user}%}
					delete {cm448.AntiAdvertise2.addwords.%{_user}%}
					delete {cm448.BlockCommands2.addwords.%{_user}%}
					delete {cm448.CommandSpy2.addwords.%{_user}%}
					delete {cm448.CommandCooldown2.addwords.%{_user}%}
					delete {cm448.AntiBadwords2.removewords.%{_user}%}
					delete {cm448.AntiAdvertise2.removewords.%{_user}%}
					delete {cm448.BlockCommands2.removewords.%{_user}%}
					delete {cm448.CommandSpy2.removewords.%{_user}%}
					delete {cm448.CommandCooldown2.removewords.%{_user}%}
					delete {cm448.AntiSpam2.changecooldown.%{_user}%}
					delete {cm448.CommandCooldown2.changecooldown.%{_user}%}
					wait 0.2 seconds
					send "{@prefix} &aSuccessfully reset all &evariables&a!" to player
					stop trigger
				if arg 1 is "resetsystem":
					set {cm448.chat.mute} to false
					set {cm448.system.adv} to false
					set {cm448.system.badword} to false
					set {cm448.system.spam} to false
					set {cm448.system.block} to false
					set {cm448.system.commandcooldown} to false
					set {cm448.commandspy.system} to false
					set {cm448.CommandCooldown} to "5 seconds"
					set {cm448.antispam} to "3 seconds"
					set {cm448.AntiAdvertise.ProtectLevel} to "Normal"
					set {cm448.AntiBadword.ProtectLevel} to "Normal"
					set {cm448.AntiAdvertise.BlockType} to "Block"
					set {cm448.AntiBadwords.BlockType} to "Block"
					wait 0.2 seconds
					send "{@prefix} &aSuccessfully reset all &esystem&a!" to player
					stop trigger
				if arg 1 is "resetdata":
					delete {cm448-AntiBadwords-Words::*}
					delete {cm448-CommandSpy-Words::*}
					delete {cm448-CommandSpy-TempData::*}
					delete {cm448-BlockCommands-Words::*}
					delete {cm448-BlockCommands-TempData::*}
					delete {cm448-AntiAdvertise-Words::*}
					delete {cm448-CommandCooldown-Words::*}
					delete {cm448-CommandCooldown-TempData::*}
					wait 0.2 seconds
					send "{@prefix} &aSuccessfully reset all &edata&a!" to player
					stop trigger
				if arg 1 is "logsystem":
					if {cm448.logsystem} is false:
						set {cm448.logsystem} to true
						send "{@prefix} &aSuccessfully enabled &3Log System"
						stop trigger
					else:
						set {cm448.logsystem} to false
						send "{@prefix} &cSuccessfully disabled &3Log System"
						stop trigger
				if arg 1 is "updatealert":
					if {cm448.updatealert.%player%} is false:
						set {cm448.updatealert.%player%} to true
						send "{@prefix} &aUpdate Notification has been enabled!" to player
						stop trigger
					else:
						set {cm448.updatealert.%player%} to false
						send "{@prefix} &cUpdate Notification has been disabled!" to player
						stop trigger
				if arg 1 is "info" or "about":
					send "{@lineprefix}"
					send "&7> &aCreator: &eTheindo448"
					send "&7> &aVersion: &c{@version}"
					send "&7> &aType: &eRegular Version"
					send "&7>"
					send "&7> &aLicence: &6&n<link:http://creativecommons.org/licenses/by-sa/4.0/>Click here<reset>"
					send "&7> &aLink: &6&n<link:{@linkredirect}>Click here<reset>"
					send "{@line}"
					stop trigger
				if arg 1 is "rel" or "reload":
					reload skript "{@filename}"
					wait 2 ticks
					send "{@prefix} &aThe skript has been reloaded!" to player
					stop trigger
					
				#----------------------------------------------------------------------------------------------------------------
					
				if arg 1 is "system":
					open chest with 6 rows named "{@prefix} &eSystem" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager help"]
					format slot 40 of player with dispenser named "&3Log system" with lore "&7Click to set this system to be turned on / off", "&7Current Status: &3%{cm448.logsystem}%", "", "&7Note: Proof of violation from the player will be stored in" and "plugins/Skript/logs/{@fileLogSystem}" to run [make player execute command "/chatmanager logsystem"]
					format slot 42 of player with chest named "&6List" with lore "&7Click to show the list all systems (+ status)" to run [make player execute command "/chatmanager listsystems"]
					format slot 25 of player with piston named "&aCommand Cooldown &7System" with lore "&7Click to open settings for &aCommand Cooldown &7system" to run [make player execute command "/chatmanager settingsCommandCooldown"]
					format slot 24 of player with paper named "&bAnti Advertise &7System" with lore "&7Click to open settings for &bAnti Advertise &7system" to run [make player execute command "/chatmanager settingsAntiAdvertise"]
					format slot 23 of player with iron bars named "&cBlock Commands &7System" with lore "&7Click to open settings for &cBlock Commands &7system" to run [make player execute command "/chatmanager settingsBlockCommands"]
					format slot 21 of player with hopper named "&6CommandSpy &7System" with lore "&7Click to open settings for &6CommandSpy &7system" to run [make player execute command "/chatmanager settingsCommandSpy"]
					format slot 20 of player with minecart named "&eAnti Spam &7System" with lore "&7Click to open settings for &eAnti Spam &7system" to run [make player execute command "/chatmanager settingsAntiSpam"]
					format slot 19 of player with redstone comparator named "&dAnti Badwords &7System" with lore "&7Click to open settings for &dAnti Badwords &7system" to run [make player execute command "/chatmanager settingsAntiBadword"]
					format slot 38 of player with flint and steel named "&cReset Options" with lore formatted "&7Click to open the Reset GUI" to run [make player execute command "/chatmanager resetoptions"]
					stop trigger
				if arg 1 is "resetoptions":
					open chest with 3 rows named "{@prefix} &cReset Options" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 11 of player with lava bucket named "&cReset All" with lore formatted "&7Click to reset all system in Main System" and "" and "&c(Including &l&nSaved Data, Toggle System, and More variables&c)" to close then run [make player execute command "/chatmanager resetall"]
					format slot 13 of player with redstone torch named "&cReset &eData" with lore formatted "&7Click to reset all data in Main System" and "" and "&c(Including &l&nSaved Data&c)" to close then run [make player execute command "/chatmanager resetdata"]
					format slot 15 of player with tnt named "&cReset &6Settings" with lore "&7Click to reset all settings in Main System" and "" and "&c(Including &l&nToggle System&c)" to close then run [make player execute command "/chatmanager resetsystem"]
					stop trigger
				
				#Settings For AntiBadword

				if arg 1 is "settingsAntiBadword":
					open chest with 3 rows named "&2Settings for &dAntiBadword" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsAntiBadword"]
					format slot 11 of player with emerald block named "&aAdd Words" with lore "&7Click to add words" to close then run [make player execute command "/cm setupAdd-for-AntiBadword"]
					format slot 12 of player with gold block named "&eList Words" with lore "&7Click to check the words" to close then run [make player execute command "/cm setupList-for-AntiBadword"]
					format slot 13 of player with redstone block named "&cRemove Words" with lore "&7Click to remove words" to close then run [make player execute command "/cm setupRemove-for-AntiBadword"]
					format slot 14 of player with bow named "&6System Type" with lore "&7Click to change system type on &dAnti Badword &7system" and "&7Current System Type: &e%{cm448.AntiBadwords.BlockType}%" to run [make player execute command "/cm sysType-AntiBadword"]
					format slot 15 of player with magenta wool named "&dToggle" with lore "&7Set the &dAnti Badword &7system to be turned on / off" and "&7Current Status: &d%{cm448.system.badword}%" to run [make player execute command "/cm badword"]
					format slot 22 of player with stick named "&aProtection Level" with lore "&7Click to change the protection level on this system", "&7List Protection Level: &6Normal&7/&cStrict" and "&7Current Level: &e%{cm448.AntiBadword.ProtectLevel}%" to run [make player execute command "/cm ProtectLevel-AntiBadword"]
					stop trigger
				if arg 1 is "ProtectLevel-AntiBadword":
					if {cm448.AntiBadword.ProtectLevel} is "Normal":
						set {cm448.AntiBadword.ProtectLevel} to "Strict"
						send "{@prefix} &aSuccessfully changed to &e%{cm448.AntiBadword.ProtectLevel}%" to player
						stop trigger
					if {cm448.AntiBadword.ProtectLevel} is "Strict":
						set {cm448.AntiBadword.ProtectLevel} to "Normal"
						send "{@prefix} &aSuccessfully changed to &e%{cm448.AntiBadword.ProtectLevel}%" to player
						stop trigger
				if arg 1 is "sysType-AntiBadword":
					if {cm448.AntiBadwords.BlockType} is "Censored":
						set {cm448.AntiBadwords.BlockType} to "Block"
						loop all players:
							if loop-player has permission "chatmanager.loop.badword", "chatmanager.loop.*" or "{@nopermission}":
								send "{@prefix} &aThe system type has been changed to '%{cm448.AntiBadwords.BlockType}%'" to loop-player
								stop trigger
					if {cm448.AntiBadwords.BlockType} is "Block":
						set {cm448.AntiBadwords.BlockType} to "Censored"
						loop all players:
							if loop-player has permission "chatmanager.loop.badword", "chatmanager.loop.*" or "{@nopermission}":
								send "{@prefix} &aThe system type has been changed to '%{cm448.AntiBadwords.BlockType}%'" to loop-player
								stop trigger
				if arg 1 is "setupAdd-for-AntiBadword":
					set {cm448.AntiBadwords2.addwords.%player%} to true
					send "{@prefix} &aWhat words do you want to add? Write &cdone &ato cancel the setup"
					stop trigger
				if arg 1 is "setupList-for-AntiBadword":
					send "{@line}"
					send "{@prefix} &eList Words &7(&dAntiBadword&7)"
					send ""
					send "&e%{cm448-AntiBadwords-Words::*}%"
					send ""
					send "{@line}"
					stop trigger
				if arg 1 is "setupRemove-for-AntiBadword":
					set {cm448.AntiBadwords2.removewords.%player%} to true
					send "{@prefix} &aWhat words do you want to &eremove&a? Write &cdone &ato cancel the setup"
					stop trigger

				#Settings for CommandSpy

				if arg 1 is "settingsCommandSpy":
					open chest with 3 rows named "&2Settings for &6CommandSpy" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsCommandSpy"]
					format slot 11 of player with emerald block named "&aAdd Command" with lore "&7Click to add whitelist command" to close then run [make player execute command "/cm setupAdd-for-CommandSpy"]
					format slot 12 of player with gold block named "&eList Commands" with lore "&7Click to check the whitelist commands" to close then run [make player execute command "/cm setupList-for-CommandSpy"]
					format slot 13 of player with redstone block named "&cRemove Command" with lore "&7Click to remove whitelist command" to close then run [make player execute command "/cm setupRemove-for-CommandSpy"]
					format slot 15 of player with orange wool named "&6Toggle" with lore "&7Set the &6CommandSpy &7system to be turned on / off" and "&7Current Status: &6%{cm448.system.adv}%" to run [make player execute command "/cm cmdspy"]
					stop trigger
				if arg 1 is "setupAdd-for-CommandSpy":
					set {cm448.CommandSpy2.addwords.%player%} to true
					send "{@prefix} &aWhat commands do you want to add? Write &cdone &ato cancel the setup"
					stop trigger
				if arg 1 is "setupList-for-CommandSpy":
					send "{@line}"
					send "{@prefix} &eList Command(s) &7(&6CommandSpy&7)"
					send ""
					send "&e%{cm448-CommandSpy-Words::*}%"
					send ""
					send "{@line}"
					stop trigger
				if arg 1 is "setupRemove-for-CommandSpy":
					set {cm448.CommandSpy2.removewords.%player%} to true
					send "{@prefix} &aWhat commands do you want to &eremove&a? Write &cdone &ato cancel the setup"
					stop trigger
					
				#Settings for BlockCommands
				
				if arg 1 is "settingsBlockCommands":
					open chest with 3 rows named "&2Settings for &cBlockCommands" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsBlockCommands"]
					format slot 11 of player with emerald block named "&aAdd Command" with lore "&7Click to add blacklist command" to close then run [make player execute command "/cm setupAdd-for-BlockCommands"]
					format slot 12 of player with gold block named "&eList Commands" with lore "&7Click to check the blacklist commands" to close then run [make player execute command "/cm setupList-for-BlockCommands"]
					format slot 13 of player with redstone block named "&cRemove Command" with lore "&7Click to delete blacklist command" to close then run [make player execute command "/cm setupRemove-for-BlockCommands"]
					format slot 15 of player with red wool named "&cToggle" with lore "&7Set the &cBlock Commands &7system to be turned on / off" and "&7Current Status: &c%{cm448.system.block}%" to run [make player execute command "/cm blockcmd"]
					stop trigger
				if arg 1 is "setupAdd-for-BlockCommands":
					set {cm448.BlockCommands2.addwords.%player%} to true
					send "{@prefix} &aWhat command do you want to add? Write &cdone &ato cancel the setup"
					stop trigger
				if arg 1 is "setupList-for-BlockCommands":
					send "{@line}"
					send "{@prefix} &eList Commands &7(&cBlockCommands&7)"
					send ""
					send "&e%{cm448-BlockCommands-Words::*}%"
					send ""
					send "{@line}"
					stop trigger
				if arg 1 is "setupRemove-for-BlockCommands":
					set {cm448.BlockCommands2.removewords.%player%} to true
					send "{@prefix} &aWhat commands do you want to &eremove&a? Write &cdone &ato cancel the setup"
					stop trigger
				
				#Settings For AntiAdvertise
				
				if arg 1 is "settingsAntiAdvertise":
					open chest with 3 rows named "&2Settings for &bAntiAdvertise" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsAntiAdvertise"]
					format slot 11 of player with emerald block named "&aAdd Words" with lore "&7Click to add words" to close then run [make player execute command "/cm setupAdd-for-AntiAdvertise"]
					format slot 12 of player with gold block named "&eList Words" with lore "&7Click to check the words" to close then run [make player execute command "/cm setupList-for-AntiAdvertise"]
					format slot 13 of player with redstone block named "&cRemove Words" with lore "&7Click to delete words" to close then run [make player execute command "/cm setupRemove-for-AntiAdvertise"]
					format slot 14 of player with bow named "&6System Type" with lore "&7Click to change system type on &bAnti Advertise &7system" and "&7Current System Type: &e%{cm448.AntiAdvertise.BlockType}%" to run [make player execute command "/cm sysType-AntiAdvertise"]
					format slot 15 of player with light blue wool named "&bToggle" with lore "&7Set the &bAnti Advertise &7system to be turned on / off" and "&7Current Status: &b%{cm448.system.adv}%" to run [make player execute command "/cm advertise"]
					format slot 22 of player with stick named "&aProtection Level" with lore "&7Click to change the protection level on this system", "&7List Protection Level: &6Normal&7/&cStrict" and "&7Current Level: &e%{cm448.AntiAdvertise.ProtectLevel}%" to run [make player execute command "/cm ProtectLevel-AntiAdvertise"]
					stop trigger
				if arg 1 is "ProtectLevel-AntiAdvertise":
					if {cm448.AntiAdvertise.ProtectLevel} is "Normal":
						set {cm448.AntiAdvertise.ProtectLevel} to "Strict"
						send "{@prefix} &aSuccessfully changed to &e%{cm448.AntiAdvertise.ProtectLevel}%" to player
						stop trigger
					if {cm448.AntiAdvertise.ProtectLevel} is "Strict":
						set {cm448.AntiAdvertise.ProtectLevel} to "Normal"
						send "{@prefix} &aSuccessfully changed to &e%{cm448.AntiAdvertise.ProtectLevel}%" to player
						stop trigger
				if arg 1 is "sysType-AntiAdvertise":
					if {cm448.AntiAdvertise.BlockType} is "Censored":
						set {cm448.AntiAdvertise.BlockType} to "Block"
						loop all players:
							if loop-player has permission "chatmanager.loop.adv", "chatmanager.loop.*" or "{@nopermission}":
								send "{@prefix} &aThe system type has been changed to '%{cm448.AntiAdvertise.BlockType}%'" to loop-player
								stop trigger
					if {cm448.AntiAdvertise.BlockType} is "Block":
						set {cm448.AntiAdvertise.BlockType} to "Censored"
						loop all players:
							if loop-player has permission "chatmanager.loop.adv", "chatmanager.loop.*" or "{@nopermission}":
								send "{@prefix} &aThe system type has been changed to '%{cm448.AntiAdvertise.BlockType}%'" to loop-player
								stop trigger
				if arg 1 is "setupAdd-for-AntiAdvertise":
					set {cm448.AntiAdvertise2.addwords.%player%} to true
					send "{@prefix} &aWhat words do you want to add? Write &cdone &ato cancel the setup"
					stop trigger
				if arg 1 is "setupList-for-AntiAdvertise":
					send "{@line}"
					send "{@prefix} &eList Words &7(&bAntiAdvertise&7)"
					send ""
					send "&e%{cm448-AntiAdvertise-Words::*}%"
					send ""
					send "{@line}"
					stop trigger
				if arg 1 is "setupRemove-for-AntiAdvertise":
					set {cm448.AntiAdvertise2.removewords.%player%} to true
					send "{@prefix} &aWhat words do you want to &eremove&a? Write &cdone &ato cancel the setup"
					stop trigger
				
				#Settings For AntiSpam
				
				if arg 1 is "settingsAntiSpam":
					open chest with 3 rows named "&2Settings for &eAntiSpam" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsAntiSpam"]
					format slot 12 of player with emerald named "&aCooldown Time" with lore "&7Click to change cooldown time for &eAnti Spam" and "&7Current Cooldown Time: &e%{cm448.antispam}%" to close then run [make player execute command "/cm setupChange-for-AntiSpam"]
					format slot 14 of player with yellow wool named "&eToggle" with lore "&7Set the &eAnti Spam &7system to be turned on / off" and "&7Current Status: &e%{cm448.system.spam}%" to run [make player execute command "/cm spam"]
					stop trigger
				if arg 1 is "setupChange-for-AntiSpam":
					set {cm448.AntiSpam2.changecooldown.%player%} to true
					send "{@prefix} &aChoose the cooldown time on the AntiSpam system. Write &cdone &ato cancel the setup"
					send "&7> Example: 3 seconds"
					send "&7> Current Cooldown Time: &e%{cm448.antispam}%"
					stop trigger
				
				#Settings for CommandCooldown
				
				if arg 1 is "settingsCommandCooldown":
					open chest with 3 rows named "&2Settings for &aCommandCooldown" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List System" to run [make player execute command "/chatmanager system"]
					format slot 8 of player with grass named "&aRefresh" with lore "&7Click to refresh the GUI" to run [make player execute command "/cm settingsCommandCooldown"]
					format slot 11 of player with emerald block named "&aAdd Command" with lore "&7Click to add command" to close then run [make player execute command "/cm setupAdd-for-CommandCooldown"]
					format slot 12 of player with gold block named "&eList Commands" with lore "&7Click to check the commands" to close then run [make player execute command "/cm setupList-for-CommandCooldown"]
					format slot 13 of player with redstone block named "&cRemove Command" with lore "&7Click to remove command" to close then run [make player execute command "/cm setupRemove-for-CommandCooldown"]
					format slot 14 of player with iron ingot named "&aCooldown Time" with lore "&7Click to change cooldown time for &aCommand Cooldown" and "&7Current Cooldown Time: &e%{cm448.commandcooldown}%" to close then run [make player execute command "/cm setupChange-for-CommandCooldown"]
					format slot 15 of player with green wool named "&aToggle" with lore "&7Set the &aCommand Cooldown &7system to be turned on / off" and "&7Current Status: &a%{cm448.system.commandcooldown}%" to run [make player execute command "/cm commandcooldown"]
					stop trigger
				if arg 1 is "setupChange-for-CommandCooldown":
					set {cm448.CommandCooldown2.changecooldown.%player%} to true
					send "{@prefix} &aChoose the cooldown time on the 'Command Cooldown' system. Write &cdone &ato cancel the setup"
					send "&7> Example: 5 seconds"
					send "&7> Current Cooldown Time: &e%{cm448.CommandCooldown}%"
					stop trigger
				if arg 1 is "setupAdd-for-CommandCooldown":
					set {cm448.CommandCooldown2.addwords.%player%} to true
					send "{@prefix} &aWhat command do you want to add? Write &cdone &ato cancel the setup"
					stop trigger
				if arg 1 is "setupList-for-CommandCooldown":
					send "{@line}"
					send "{@prefix} &eList Commands &7(&aCommandCooldown&7)"
					send ""
					send "&e%{cm448-CommandCooldown-Words::*}%"
					send ""
					send "{@line}"
					stop trigger
				if arg 1 is "setupRemove-for-CommandCooldown":
					set {cm448.CommandCooldown2.removewords.%player%} to true
					send "{@prefix} &aWhat command do you want to &eremove&a? Write &cdone &ato cancel the setup"
					stop trigger
				
				#----------------------------------------------------------------------------------------------------------------
				
				if arg 1 is "listsystems":
					wait 1 tick
					send "{@line}"
					send "{@prefix} &bList all systems (+ Status)"
					send ""
					send "&8>=- &7Systems:"
					send ""
					send formatted "&8> <tooltip:&d&lAntiBadword%nl%&r&7Status: &f%{cm448.system.badword}%%nl%&7Mode: &f%{cm448.Antibadword.ProtectLevel}%%nl%&7Type: &f%{cm448.Antibadwords.BlockType}%>&d&lAntiBadword<reset>"
					send formatted "&8> <tooltip:&e&lAntiSpam%nl%&r&7Status: &f%{cm448.system.spam}%%nl%&7Cooldown Time: &f%{cm448.antispam}%>&e&lAntiSpam<reset>"
					send formatted "&8> <tooltip:&6&lCommandSpy%nl%&r&7Status: &f%{cm448.commandspy.system}%>&6&lCommandSpy<reset>"
					send formatted "&8> <tooltip:&c&lBlockCommands%nl%&r&7Status: &f%{cm448.system.block}%>&c&lBlockCommands<reset>"
					send formatted "&8> <tooltip:&b&lAntiAdvertise%nl%&r&7Status: &f%{cm448.system.adv}%%nl%&7Mode: &f%{cm448.AntiAdvertise.ProtectLevel}%%nl%&7Type: &f%{cm448.AntiAdvertise.BlockType}%>&b&lAntiAdvertise<reset>"
					send formatted "&8> <tooltip:&a&lCommandCooldown%nl%&r&7Status: &f%{cm448.system.commandcooldown}%%nl%&7Cooldown Time: &f%{cm448.CommandCooldown}%>&a&lCommandCooldown<reset>"
					send ""
					send "&8>=- &7Utilities:"
					send ""
					send "&8> &eChatMute: &6%{cm448.chat.mute}%"
					send "&8> &eMention: &6%{cm448.mentionToggle}%"
					send "&8> &eDebug: &6%{cm448.debug}%"
					send "&8> &eLog System: &6%{cm448.logsystem}%"
					send "{@line}"
					stop trigger
				if arg 1 is "commandcooldown":
					if {cm448.system.commandcooldown} is false:
						set {cm448.system.commandcooldown} to true
						send "{@prefix} &aThe Command Cooldown system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.commandcooldown" or "{@permission}":
								send "{@prefix} &aThe Command Cooldown system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.system.CommandCooldown} to false
						send "{@prefix} &cThe Command Cooldown system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.commandcooldown" or "{@permission}":
								send "{@prefix} &cThe Command Cooldown system has been disabled by &e%player%" to loop-player
				if arg 1 is "advertise" or "adv":
					if {cm448.system.adv} is false:
						set {cm448.system.adv} to true
						send "{@prefix} &aThe Anti Advertise system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
								send "{@prefix} &aThe Anti Advertise system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.system.adv} to false
						send "{@prefix} &cThe Anti Advertise system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
								send "{@prefix} &cThe Anti Advertise system has been disabled by &e%player%" to loop-player
				if arg 1 is "badword" or "badwords" or "toxic":
					if {cm448.system.badword} is false:
						set {cm448.system.badword} to true
						send "{@prefix} &aThe Anti Badword system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
								send "{@prefix} &aThe Anti Badword system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.system.badword} to false
						send "{@prefix} &cThe Anti Badword system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
								send "{@prefix} &cThe Anti Badword system has been disabled by &e%player%" to loop-player
				if arg 1 is "spam" or "spamming":
					if {cm448.system.spam} is false:
						set {cm448.system.spam} to true
						send "{@prefix} &aThe Anti Spam system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.antispam" or "{@permission}":
								send "{@prefix} &aThe Anti Spam system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.system.spam} to false
						send "{@prefix} &cThe Anti Spam system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.antispam" or "{@permission}":
								send "{@prefix} &cThe Anti Spam system has been disabled by &e%player%" to loop-player
				if arg 1 is "chatmute":
					if {cm448.chat.mute} is false:
						set {cm448.chat.mute} to true
						broadcast "{@prefix} &cThe GlobalChat has been disabled! Only staff can chat now!"
					else:
						set {cm448.chat.mute} to false
						broadcast "{@prefix} &aThe GlobalChat has been enabled! You can chat now!"
				if arg 1 is "blockcmd" or "blockcommand":
					if {cm448.system.block} is false:
						set {cm448.system.block} to true
						send "{@prefix} &aThe Block Commands system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin.*", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.blockcmd" or "{@permission}":
								send "{@prefix} &aThe Block Commands system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.system.block} to false
						send "{@prefix} &cThe Block Commands system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin.*", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.blockcmd" or "{@permission}":
								send "{@prefix} &cThe Block Commands system has been disabled by &e%player%" to loop-player
				if arg 1 is "commandspy" or "cmdspy":
					if {cm448.commandspy.system} is false:
						set {cm448.commandspy.system} to true
						send "{@prefix} &aThe CommandSpy system has been enabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin.*", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.cmdspy" or "{@permission}":
								send "{@prefix} &aThe CommandSpy system has been enabled by &e%player%" to loop-player
					else:
						set {cm448.commandspy.system} to false
						send "{@prefix} &cThe CommandSpy system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin.*", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.cmdspy" or "{@permission}":
								send "{@prefix} &cThe CommandSpy system has been disabled by &e%player%" to loop-player
				if arg 1 is "clearchat":
					open chest with 3 rows named "&aClearchat" to player
					wait 2 tick
					format slot 0 of player with redstone block named "&cClose" with lore "&7Click to close the GUI" to close
					format slot 1 of player with arrow named "&cBack" with lore "&7Back to List Commands" to run [make player execute command "/chatmanager utilities"] 
					format slot 11 of player with stone named "&aClear &e50 &alines" with lore "&7Click to clear 50 lines on chat" to close then run [make player execute command "/chatmanager clearchat50"]
					format slot 12 of player with coal ore named "&aClear &e100 &alines" with lore "&7Click to clear 100 lines on chat" to close then run [make player execute command "/chatmanager clearchat100"]
					format slot 13 of player with iron ore named "&aClear &e150 &alines" with lore "&7Click to clear 150 lines on chat" to close then run [make player execute command "/chatmanager clearchat150"]
					format slot 14 of player with gold ore named "&aClear &e200 &alines" with lore "&7Click to clear 200 lines on chat" to close then run [make player execute command "/chatmanager clearchat200"]
					format slot 15 of player with diamond ore named "&aClear &e500 &alines" with lore "&7Click to clear 500 lines on chat" to close then run [make player execute command "/chatmanager clearchat500"]
					stop trigger
				if arg 1 is "clearchat50":
					loop all players:
						loop 50 times:
							message " " to loop-player
						#wait 0.4 seconds #//Remove "#" and this message if you want to enable broadcast message
						#send "{@prefix} &aThe chat has been cleared by &b%player%&7!" to loop-player #//Remove "#" and this message if you want to enable broadcast message
				if arg 1 is "clearchat100":
					loop all players:
						loop 100 times:
							message " " to loop-player
						#wait 0.4 seconds #//Remove "#" and this message if you want to enable broadcast message
						#send "{@prefix} &aThe chat has been cleared by &b%player%&7!" to loop-player #//Remove "#" and this message if you want to enable broadcast message
				if arg 1 is "clearchat150":
					loop all players:
						loop 150 times:
							message " " to loop-player
						#wait 0.4 seconds #//Remove "#" and this message if you want to enable broadcast message
						#send "{@prefix} &aThe chat has been cleared by &b%player%&7!" to loop-player #//Remove "#" and this message if you want to enable broadcast message
				if arg 1 is "clearchat200":
					loop all players:
						loop 200 times:
							message " " to loop-player
						#wait 0.4 seconds #//Remove "#" and this message if you want to enable broadcast message
						#send "{@prefix} &aThe chat has been cleared by &b%player%&7!" to loop-player #//Remove "#" and this message if you want to enable broadcast message
				if arg 1 is "clearchat500":
					loop all players:
						loop 500 times:
							message " " to loop-player
						#wait 0.4 seconds #//Remove "#" and this message if you want to enable broadcast message
						#send "{@prefix} &aThe chat has been cleared by &b%player%&7!" to loop-player #//Remove "#" if you want to enable broadcast message
			else:
				send "{@prefix} {@nopermission}"
		if executor is console:
			if arg 1 is not set:
				make console execute command "/cm help"
				stop trigger
			if arg 1 is "help":
				send "{@line}"
				send "{@prefix} &aCommands &7[&c{@version}&7] %{chatmanager448.newupdates.notif}%"
				send ""
				send "&a/cm help &7- &bShow the list commands"
				send "&a/cm about &7- &bShow the information about the skript"
				send "&a/cm config <system> &7- &bSet the system"
				send "&a/cm reload &7- &bReload the skript"
				send "&a/cm update &7- &bCheck the new updates"
				send "{@line}"
				stop trigger
			if arg 1 is "info" or "about":
				send "{@lineprefix}"
				send "&7> &aCreator: &eTheindo448"
				send "&7> &aVersion: &c{@version}"
				send "&7> &aType: &eRegular Version"
				send "&7>"
				send "&7> &aLicence: &6&nhttp://creativecommons.org/licenses/by-sa/4.0/"
				send "&7> &aLink: &6&n{@linkredirect}"
				send "{@line}"
				stop trigger
			if arg 1 is "reload":
				reload skript "{@filename}"
				wait 2 ticks
				send "{@prefix} &aSuccessfully reloaded!"
				stop trigger
			if arg 1 is "update":
				send "{@prefix} &aChecking a new updates..."
				wait 1 seconds
				if text from "{@updatelink}" is not "{@version}":
					set {update.version} to text from "{@updatelink}"
					wait 0.4 seconds
					send "{@line}"
					send "{@prefix} &e&nAn Updates are Available!"
					send "&7> &eNew Version: &a&l%{update.version}%"
					send "&7> &eYour skript version: &7(&c{@version}&7)"
					send "&7> &eDownload New Version Now: &6&n{@linkredirect}"
					send "{@line}"
					set {chatmanager448.newupdates.notif} to "&6Updates Available!"
					stop trigger
				else if text from "{@updatelink}" is "{@version}":
					send "{@prefix} &aThe skript is running with the latest version &6&l(&e{@version}&6&l)"
					set {chatmanager448.newupdates.notif} to ""
					stop trigger
				else:
					send "{@prefix} &cError: Failed to check the updates, contact &6Theindo448."
					stop trigger
			if arg 1 is "config":
				if arg 2 is not set:
					make console execute command "/cm config help"
					stop trigger
				if arg 2 is "help":
					arg 3 is not set:
						send "{@line}"
						send "{@prefix} &eSystem Configuration"
						send ""
						send "&ePage: 1/3"
						send ""
						send "&a/cm config help [1/2/3] &7- &bShow the list system commands"
						send "&a/cm config badword &7- &bTurn On/Turn Off the AntiBadword system"
						send "&a/cm config adv &7- &bTurn On/Turn Off the AntiBadword system"
						send "&a/cm config chatmute &7- &bTurn On/Turn Off the ChatMute"
						send "&a/cm config blockcmd &7- &bTurn On/Turn Off the BlockCommands system"
						send "{@line}"
						stop trigger
					arg 3 is "1":
						send "{@line}"
						send "{@prefix} &eSystem Configuration"
						send ""
						send "&ePage: 1/3"
						send ""
						send "&a/cm config help [1/2/3] &7- &bShow the list system commands"
						send "&a/cm config badword &7- &bTurn On/Turn Off the AntiBadword system"
						send "&a/cm config adv &7- &bTurn On/Turn Off the AntiBadword system"
						send "&a/cm config chatmute &7- &bTurn On/Turn Off the ChatMute"
						send "&a/cm config blockcmd &7- &bTurn On/Turn Off the BlockCommands system"
						send "{@line}"
						stop trigger
					arg 3 is "2":
						send "{@line}"
						send "{@prefix} &eSystem Configuration"
						send ""
						send "&ePage: 2/3"
						send ""
						send "&a/cm config spam &7- &bTurn On/Turn Off the AntiSpam system"
						send "&a/cm config list &7- &bCheck the status of all systems"
						send "&a/cm config resetData &7- &bReset all data (except Debug Mode)"
						send "&a/cm config resetall &7- &bReset all variables (except Debug Mode)"
						send "&a/cm config resetsettings &7- &bReset all settings (except Debug Mode)"
						send "{@line}"
						stop trigger
					arg 3 is "3":
						send "{@line}"
						send "{@prefix} &eSystem Configuration"
						send ""
						send "&ePage: 3/3"
						send ""
						send "&a/cm config commandcooldown &7- &bTurn On/Turn Off the CommandCooldown system"
						send "&a/cm config debug &7- &bTurn On/Turn Off the Debug Mode"
						send "&a/cm config mention &7- &bTurn On/Turn Off the Mention system"
						send "&a/cm config logsystem &7- &bTurn On/Turn Off the Log system"
						send "{@line}"
						stop trigger
				if arg 2 is "logsystem":
					if {cm448.logsystem} is false:
						set {cm448.logsystem} to true
						send "{@prefix} &aSuccessfully enabled &3Log System"
						stop trigger
					else:
						set {cm448.logsystem} to false
						send "{@prefix} &cSuccessfully disabled &3Log System"
						stop trigger
				if arg 2 is "debug":
					if {cm448.debug} = false:
						set {cm448.debug} to true
						send "{@prefix} &aYou &ajust enabled the &3Debug Mode" to console
						stop trigger
					if {cm448.debug} = true:
						set {cm448.debug} to false
						send "{@prefix} &cYou &cjust disabled the &3Debug Mode" to console
						stop trigger
				if arg 2 is "mention":
					if {cm448.mentionToggle} = false:
						set {cm448.mentionToggle} to true
						send "{@prefix} &aSuccessfully enabled &eMention &asystem&a!" to player
						send "{@prefix} &a%player% &ajust enabled the &eMention &asystem" to console
						stop trigger
					if {cm448.mentionToggle} = true:
						set {cm448.mentionToggle} to false
						send "{@prefix} &c%player% &cjust disabled the &eMention &csystem" to console
						send "{@prefix} &cSuccessfully disabled &eMention &csystem&c!" to player
						stop trigger
				if arg 2 is "commandcooldown":
					if {cm448.system.commandcooldown} is false:
						set {cm448.system.commandcooldown} to true
						send "{@prefix} &aYou have been enabled The " to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.commandcooldown" or "{@permission}":
								send "{@prefix} &aThe Command Cooldown system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.system.CommandCooldown} to false
						send "{@prefix} &cThe Command Cooldown system has been disabled by &e%player%" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.commandcooldown" or "{@permission}":
								send "{@prefix} &cThe Command Cooldown system has been disabled by &eConsole" to loop-player
				if arg 2 is "advertise" or "adv":
					if {cm448.system.adv} is false:
						set {cm448.system.adv} to true
						send "{@prefix} &aYou have been enabled The AntiAdvertise" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
								send "{@prefix} &aThe AntiAdvertise system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.system.adv} to false
						send "{@prefix} &cYou have been disabled The AntiAdvertise" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.adv" or "{@permission}":
								send "{@prefix} &cThe AntiAdvertise system has been disabled by &eConsole" to loop-player
				if arg 2 is "badword" or "badwords" or "toxic":
					if {cm448.system.badword} is false:
						set {cm448.system.badword} to true
						send "{@prefix} &aYou have been enabled The AntiBadword" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
								send "{@prefix} &aThe AntiBadword system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.system.badword} to false
						send "{@prefix} &cYou have been disabled The AntiBadword" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.badword" or "{@permission}":
								send "{@prefix} &cThe AntiBadword system has been disabled by &eConsole" to loop-player
				if arg 2 is "spam" or "spamming":
					if {cm448.system.spam} is false:
						set {cm448.system.spam} to true
						send "{@prefix} &aYou have been enabled The AntiSpam" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.antispam" or "{@permission}":
								send "{@prefix} &aThe AntiSpam system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.system.spam} to false
						send "{@prefix} &cYou have been disabled The AntiSpam" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.antispam" or "{@permission}":
								send "{@prefix} &cThe AntiSpam system has been disabled by &eConsole" to loop-player
				if arg 2 is "chatmute":
					if {cm448.chat.mute} is false:
						set {cm448.chat.mute} to true
						send "{@prefix} &cYou have been disabled The GlobalChat" to console
						loop all players:
							send "{@prefix} &cThe GlobalChat has been disabled! Only staff can chat now!" to loop-player
					else:
						set {cm448.chat.mute} to false
						send "{@prefix} &aYou have been enabled The GlobalChat" to console
						loop all players:
							send "{@prefix} &aThe GlobalChat has been enabled! You can chat now!" to loop-player
				if arg 2 is "blockcmd" or "blockcommand":
					if {cm448.system.block} is false:
						set {cm448.system.block} to true
						send "{@prefix} &aYou have been enabled The Block Commands" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.blockcmd" or "{@permission}":
								send "{@prefix} &aThe Block Commands system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.system.block} to false
						send "{@prefix} &cYou have been disabled The Block Commands" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.blockcmd" or "{@permission}":
								send "{@prefix} &cThe Block Commands system has been disabled by &eConsole" to loop-player
				if arg 2 is "commandspy" or "cmdspy":
					if {cm448.commandspy.system} is false:
						set {cm448.commandspy.system} to true
						send "{@prefix} &aYou have been enabled The CommandSpy" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.cmdspy" or "{@permission}":
								send "{@prefix} &aThe CommandSpy system has been enabled by &eConsole" to loop-player
					else:
						set {cm448.commandspy.system} to false
						send "{@prefix} &cYou have been disabled The CommandSpy" to console
						loop all players:
							if loop-player has permission "chatmanager.admin", "chatmanager.admin.core", "chatmanager.loop.*" or "chatmanager.loop.cmdspy" or "{@permission}":
								send "{@prefix} &cThe CommandSpy system has been disabled by &eConsole" to loop-player
				if arg 2 is "reset" or "resetall":
					set {cm448.chat.mute} to false
					set {cm448.system.adv} to false
					set {cm448.system.badword} to false
					set {cm448.system.spam} to false
					set {cm448.system.block} to false
					set {cm448.system.commandcooldown} to false
					set {cm448.commandspy.system} to false
					set {cm448.updatealert.%{_user}%} to false
					set {cm448.CommandCooldown} to "5 seconds"
					set {cm448.antispam} to "3 seconds"
					set {cm448.AntiAdvertise.ProtectLevel} to "Normal"
					set {cm448.AntiBadword.ProtectLevel} to "Normal"
					set {cm448.AntiAdvertise.BlockType} to "Block"
					set {cm448.AntiBadwords.BlockType} to "Block"
					delete {cm448-AntiBadwords-Words::*}
					delete {cm448-CommandSpy-Words::*}
					delete {cm448-CommandSpy-TempData::*}
					delete {cm448-BlockCommands-Words::*}
					delete {cm448-BlockCommands-TempData::*}
					delete {cm448-AntiAdvertise-Words::*}
					delete {cm448-CommandCooldown-Words::*}
					delete {cm448-CommandCooldown-TempData::*}
					wait 1 tick
					send "{@prefix} &aSuccessfully reset all &nvariables!"
					stop trigger
				if arg 2 is "resetsettings":
					set {cm448.chat.mute} to false
					set {cm448.system.adv} to false
					set {cm448.system.badword} to false
					set {cm448.system.spam} to false
					set {cm448.system.block} to false
					set {cm448.system.commandcooldown} to false
					set {cm448.commandspy.system} to false
					set {cm448.CommandCooldown} to "5 seconds"
					set {cm448.antispam} to "3 seconds"
					set {cm448.AntiAdvertise.ProtectLevel} to "Normal"
					set {cm448.AntiBadword.ProtectLevel} to "Normal"
					set {cm448.AntiAdvertise.BlockType} to "Block"
					set {cm448.AntiBadwords.BlockType} to "Block"
					wait 0.4 seconds
					send "{@prefix} &aSuccessfully reset all &nsettings!"
					stop trigger
				if arg 2 is "resetdata":
					delete {cm448-AntiBadwords-Words::*}
					delete {cm448-CommandSpy-Words::*}
					delete {cm448-CommandSpy-TempData::*}
					delete {cm448-BlockCommands-Words::*}
					delete {cm448-BlockCommands-TempData::*}
					delete {cm448-AntiAdvertise-Words::*}
					delete {cm448-CommandCooldown-Words::*}
					delete {cm448-CommandCooldown-TempData::*}
					wait 0.4 seconds
					send "{@prefix} &aSuccessfully reset all &ndata!"
					stop trigger
				if arg 2 is "list":
					wait 1 tick
					send "{@line}"
					send "{@prefix} &bList all systems (+ Status)"
					send ""
					send "&7> &aSystems:"
					send "&7>= &eAntiBadword: &6%{cm448.system.badword}%"
					send "&7>=--| &eMode: &6%{cm448.AntiBadword.ProtectLevel}%"
					send "&7>=--| &eType: &6%{cm448.AntiBadwords.BlockType}%"
					send "&7>= &eAntiSpam: &6%{cm448.system.spam}%"
					send "&7>=--| &eCooldown Time: &6%{cm448.antispam}%"
					send "&7>= &eCommandSpy: &6%{cm448.commandspy.system}%"
					send "&7>= &eBlockCommands: &6%{cm448.system.block}%"
					send "&7>= &eAntiAdvertise: &6%{cm448.system.adv}%"
					send "&7>=--| &eMode: &6%{cm448.AntiAdvertise.ProtectLevel}%"
					send "&7>=--| &eType: &6%{cm448.AntiAdvertise.BlockType}%"
					send "&7>= &eCommandCooldown: &6%{cm448.system.commandcooldown}%"
					send "&7>=--| &eCooldown Time: &6%{cm448.CommandCooldown}%"
					send ""
					send "&7> &aUtilities:"
					send "&7>= &eChatMute: &6%{cm448.chat.mute}%"
					send "&7>= &eMention: &6%{cm448.mentionToggle}%"
					send "&7>= &eDebug: &6%{cm448.debug}%"
					send "&7>= &eLog System: &6%{cm448.logsystem}%"
					send "{@line}"
					stop trigger



#---------- Messages output to console ----------#

on skript load:
	if {chatmanager448.newupdates.notif} is not set:
		set {chatmanager448.newupdates.notif} to ""
	message "{@line}" to console
	message "{@prefix} &7Version: &c{@version}" to console
	message " " to console
	message "&aCreated by &bTheindo448" to console
	message " " to console
	message "{@line}" to console
	wait 0.5 seconds
	if {cm448.debug} = true:
		send "{@debugprefix} &3Debug Mode &ais enabled!" to console
	if {cm448.debug} = false:
		send "{@debugprefix} &3Debug Mode &cis disabled!" to console
	if {cm448.logsystem} is true:
		send "{@prefix} &bLog system &ais enabled!" to console
	if {cm448.logsystem} is false:
		send "{@prefix} &bLog System &cis disabled!" to console
	wait 1.2 seconds
	message "{@prefix} &aChecking a new updates ...." to console
	wait 1 seconds
	if text from "{@updatelink}" is not "{@version}":
		set {_update.version} to text from "{@updatelink}"
		wait 0.4 seconds
		message "{@line}" to console
		message "{@prefix} &e&nAn Updates are Available!" to console
		message "&7> &eNew Version: &a&l%{_update.version}%" to console
		message "&7> &eYour skript version: &7(&c{@version}&7)" to console
		message "&7> &eDownload New Version Now: &6&n{@linkredirect}" to console
		message "{@line}" to console
		set {chatmanager448.newupdates.notif} to "&6Updates Available!"
	else if text from "{@updatelink}" is "{@version}":
		message "{@prefix} &aYou are using the latest version &6&l(&e{@version}&6&l)" to console
		set {chatmanager448.newupdates.notif} to ""
	else:
		message "{@prefix} &cError: Failed to check the updates, contact &6Theindo448." to console
		

#-##=====================================[License]====================================================##-#
#
#  		This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
# 		To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
#
#-##=====================================[License]====================================================##-#