## โโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโ โโโโโโ โโโโโโ โ โโ โโโโโโ โโโโโโโโโโโโโโโ โโโ# โโโโโโโ โโ โโ โโโ โโโ โโโ โโโโ โ โโโ โ โโโ โโโ โ โโ โ โโโโ โโ โโ โโโโโโโ โ โโโโโโโโ โโโ โโ โโโ โโโ# โโโโ โโโโโโโ โ โโโโ โโโ โโโโ โโโโโโ โโโ โโโ โ โ โโโโ โโโโ โโโ โ โโโ โโโโโโโ โโโ โโโโโโ โโโโ โโ โโโ โโโ# โโโโโโ โโโ โโ โโโโ โ โ โโโโ โ โโโ โ โโโโโโโ โ โโโโโโ โ โโโโ โโโโโโโ โโโโโโโโโโโ โโโโโ โโโโ โ โ โโโโโ# โโโ โโโโโโโโโโ โโโโ โ โโโโ โ โโโโโโโโโโโ โโโโ โโโโโโโโโโโโโโโโโ โโโโโ โโโโโโโโโ โโโโ โโโโโโโโ โโโโ โ โ โโโโโ# โโโโโโโโโโ โโ โ โ โโ โ โโ โโ โโ โโ โโ โโโโ โ โโโ โ โโโ โโ โโ โโ โ โโโโโ โ โ โ โโ โโโโโโ โ โโ โโโโโ# โโโ โ โ โ โ โ โ โ โ โ โโ โ โโ โ โโ โ โ โ โ โ โ โ โโโโ โ โ โโ โ โโ โ โ โ โโโ โโโ# โ โ โ โ โ โ โโ โ โ โ โ โ โ โโโ โ โ โโ โ โ โ โ โ โ โโ# โ โ โ โ โ โ โ โ โโ โ โ โ โ โ โ# โ โ โ โ## Version: 1.4 | Bukkit Version# Configuration## Wiki: https://zs0bye.gitbook.io/bettersecurity/plugins/bettersecurity## Function of the executors:## - [MESSAGE] text | (Func. Send a chat message) | (Example: [MESSAGE] &aHello World!)
## - [TITLE] title;subtitle;fade-in;stay;fade-out | (Func. Submit a title)# | (Tip. If you enter "none" in the title or subtitle, it will not be displayed)
# | (Example: [TITLE] &a&lHELLO WORLD;&a&lโ &aThis is a fantastic world!;20;40;20)
## - [ACTION] text | (Func. Send a message in the action bar) | (Example: [ACTION] &aHello World!)
## - [BOSSBAR] title;color;style;progress;times | (Func. Send a message in the boss bar. Compatible with versions 1.9+ only)
# | (Example: [BOSSBAR] &aHello World!;GREEN;SEGMENTED_20;1.0;5)
## - [SOUND] sound;acute;volume | (Func. Send a sound) | (Example: [SOUND] BLOCK_LAVA_POP;0;1)
## - [PLAYER] command without '/' | (Func. Send a command as a player) | (Example: [PLAYER] spawn)
## - [CONSOLE] command without '/' | (Func. Send a command from the console) | (Example: [CONSOLE] give %player% DIAMOND 1)
## If you put an "@" in front of the text, it will broadcast the execution.# Works for the following performers: [MESSAGE], [TITLE], [ACTION], [BOSSBAR], [SOUND]# Examples: [MESSAGE] @&aHello World! | [TITLE] @&a&lHELLO WORLD;&a&lโ &aThis is a fantastic world!;20;40;20# | [ACTION] @&aHello World! | [BOSSBAR] @&aHello World!;GREEN;SEGMENTED_20;1.0;5 | [SOUND] @BLOCK_LAVA_POP;0;1## If you don't want to do anything, just put "[]" after "executors:"# Example: executors: []## You can use the following placeholders in all executors:# - %player% | (Name of the player who attempted to execute the command)# - %command% | (The command that was blocked)# - %unknown_command% | (The spigot.yml unknown command message will be displayed)# _________ ______# __ ____/_____________________________ ___ /# _ / __ _ _ \_ __ \ _ \_ ___/ __ `/_ /# / /_/ / / __/ / / / __/ / / /_/ /_ /# \____/ \___//_/ /_/\___//_/ \__,_/ /_/#Settings:prefix:'&eBetterSecurity โ &7'# Available languages: en_US, it_ITlocale:en_UScheck_update:enabled:true# Types Available: NORMAL, DOWNLOADtype:NORMALhooks:PlaceholderAPI:falseProtocolLib:false# ______________ ______ ________ ______ _________ ______ _____# ___ __ )__ /______________ /__ ___ __/_____ ___ /_ __ ____/____________ ______________ /______ /_____
# __ __ |_ /_ __ \ ___/_ //_/ __ / _ __ `/_ __ \ _ / _ __ \_ __ `__ \__ __ \_ /_ _ \ __/ _ \
# _ /_/ /_ / / /_/ / /__ _ ,< _ / / /_/ /_ /_/ / / /___ / /_/ / / / / / /_ /_/ / / / __/ /_ / __/
# /_____/ /_/ \____/\___/ /_/|_| /_/ \__,_/ /_.___/ \____/ \____//_/ /_/ /_/_ .___//_/ \___/\__/ \___/
# /_/Block_Tab_Complete:# --------- < โ > ---------# If your server version is 1.8.x-1.12.x, you need to enable ProtocolLib to use this feature.# < ? > Does your server have version 1.13+? So if you reload the plugin,# you will have to join the server again to see the changes.enabled:true# Prevents tabbing of these commands, so as not to conflict with other plugins.commands: - 'pl' - 'plugins' - 'ver' - 'version' - 'about' - '?' - 'help' - 'bukkit:pl' - 'bukkit:plugins' - 'bukkit:ver' - 'bukkit:version' - 'bukkit:about' - 'bukkit:?' - 'bukkit:help' - 'minecraft:?' - 'minecraft:help'bypass:# Here you can enter what kind of bypass you prefer# to be able to perform the complete tab:# - PERMISSION | (Bypass via permission: bettersecurity.bypass.antitab)# - PLAYERS | (Bypass by player name and uuid. Permission excluded)method:'PERMISSION'# Tip. You can put both the player's name and his UUID.players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'whitelisted_commands:enabled:true# If it is on "true", you will be able to tab the command much more conveniently!# For greater safety, it is not recommended to use it because it could cause problems.# (If the player access is from 1.13+ you can ignore this section)partial_matches:false# This is the global list of tab commands that will be whitelisted.# To disable global commands, just put "global: []".global: - 'spawn' - 'tell' - 'msg' - 'w' - 'whisper' - 't' - 'r' - 'reply'# Here you can request requirements to be able to show whitelisted commands.# (Can be very useful for not showing staff commands to players)required:enabled:false# Here you can add all the various groups to be able to whitelist commands by permission.permissions:# This is the first example group.helper:# Here you will need to enter the required permission.permission:'bettersecurity.tab.helper'# While here you will have to put the list of commands that will have to be shown.commands: - 'tempban' - 'tempmute' - 'unban' - 'pardon' - 'kick' - 'unmute' - 'warn' - 'warnings' - 'history' - 'dupeip' - 'ss' - 'freeze' - 'unfreeze'admin:permission:'bettersecurity.tab.admin'commands: - 'fly' - 'gamemode' - 'gm' - 'god' - 'mute' - 'ban' - 'ipban' - 'ipmute' - 'clearchat'# ___ __ _____# __ | / /_____ _________________(_)_____________ ________# __ | /| / /_ __ `/_ ___/_ __ \_ /__ __ \_ __ `/_ ___/# __ |/ |/ / / /_/ /_ / _ / / / / _ / / / /_/ /_(__ )# ____/|__/ \__,_/ /_/ /_/ /_//_/ /_/ /_/_\__, / /____/# /____/Warnings:# If it is "true", the message will be sent via BungeeCord/Waterfall.proxy:false# In this field you can decide whether to activate the logs also via the console.log_console:true# This message will be sent to those with permission: bettersecurity.broadcast.warnings# < ? > You can find more information about the executors in the header. # ATTENTION! Do not use the "@" in front of the broadcast, there is already the automatic one via the above permission.
formats:commands:# You can use the following placeholders:# - %command% | (The command that was blocked)format: - '[MESSAGE] &e&lโ โ &b%player% &7attempted to execute the command: &c%command%'console:'%player% attempted to execute the command: %command%'port_bypass_prevention:# You can use the following placeholders:# - %port% | (Port where it is trying to login)# - %ip% | (IP where you are trying to login)format: - '[MESSAGE] &e&lโ โ &b%player% &7tried to enter via port &a%port%&7 with the IP: &c%ip%'console:'%player% tried to enter via port %port% with the IP: %ip%'# _________ _____ _____ __ ______ _________ _________
# __ ____/___ __________ /_____________ ___ __ / / /_________ /_________________ ________ __ ____/____________ __________ _________ _____________ /
# _ / _ / / /_ ___/ __/ __ \_ __ `__ \ _ / / /__ __ \_ //_/_ __ \ __ \_ | /| / /_ __ \ _ / _ __ \_ __ `__ \_ __ `__ \ __ `/_ __ \ __ /
# / /___ / /_/ /_(__ )/ /_ / /_/ / / / / / / / /_/ / _ / / / ,< _ / / / /_/ /_ |/ |/ /_ / / / / /___ / /_/ / / / / / / / / / / / /_/ /_ / / / /_/ /
# \____/ \__,_/ /____/ \__/ \____//_/ /_/ /_/ \____/ /_/ /_//_/|_| /_/ /_/\____/____/|__/ /_/ /_/ \____/ \____//_/ /_/ /_//_/ /_/ /_/\__,_/ /_/ /_/\__,_/
#Unknown_Command:# --------- < โ > ---------# This feature is only recommended for versions 1.19+!# This is because spigot does not currently edit the unknown command via spigot.yml,# but remains the default one. If you have a version lower than 1.19, you can leave it to false.# If you use PlugMan, it can cause problems if the plugin it loads registers commands for the first time.enabled:false# If set to "true", it will fetch the unknown message directly from spigot.yml.# If it's false, then it will use the executor below.use_spigot_message:true# If "use_spigot_message" is true, ignore this section.# < ? > You can find more information about the executors in the header.executors: - '[MESSAGE] %prefix%The "&b%command%&7" command was not found.'# ______________ ______ ________ _____# ___ __ )__ /______________ /__ __ ___/____ __________ /______ ____ __# __ __ |_ /_ __ \ ___/_ //_/ _____ \__ / / /_ __ \ __/ __ `/_ |/_/# _ /_/ /_ / / /_/ / /__ _ ,< ____/ /_ /_/ /_ / / / /_ / /_/ /__> <# /_____/ /_/ \____/\___/ /_/|_| /____/ _\__, / /_/ /_/\__/ \__,_/ /_/|_|# /____/Block_Syntax:enabled:true# If it is on "true" the execution attempt warning will be sent to chat.warning:true# Message that is sent if one tries to do: <plugin>:<command>.# Tip. It is useful to avoid being in situations where you can bypass blocked commands,# or commands known as minecraft:me, minecraft:tell, etc...# < ? > You can find more information about the executors in the header.executors: - '[MESSAGE] %prefix%&cYou can''t do /<plugin>:<command>' - '[TITLE] &e&lBETTER SECURITY;&c&lโ &cYou can''t do /<plugin>:<command>;20;40;20'# ______________ ______ _________ _________# ___ __ )__ /______________ /_________ __ ____/____________ __________ _________ _____________ /_______# __ __ |_ /_ __ \ ___/_ //_/_ ___/ _ / _ __ \_ __ `__ \_ __ `__ \ __ `/_ __ \ __ /__ ___/# _ /_/ /_ / / /_/ / /__ _ ,< _(__ ) / /___ / /_/ / / / / / / / / / / / /_/ /_ / / / /_/ / _(__ )# /_____/ /_/ \____/\___/ /_/|_| /____/ \____/ \____//_/ /_/ /_//_/ /_/ /_/\__,_/ /_/ /_/\__,_/ /____/#Blocks_Commands:enabled:true# If it is on "true" the execution attempt warning will be sent to chat.warning:true# Here you can enter the type of method you want to use to block commands:# - BLACKLIST | (The commands in the list will be blocked)# - WHITELIST | (The commands in the list will be able to execute)method:'BLACKLIST'# This message will be shown as soon as the command is blocked.# < ? > You can find more information about the executors in the header.executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# List of blocked or enabled commands according to the selected method.commands: - 'pl' - 'plugins' - 'ver' - 'version' - 'about' - '?' - 'help' - 'icanhasbukkit'# ______________ ______ _______ ______ _________ ______# ___ __ )__ /______________ /_________ __ __ \_________ /____ __ __ ____/____________________________ /____
# __ __ |_ /_ __ \ ___/_ //_/_ ___/ _ / / /_ __ \_ /__ / / / _ / _ __ \_ __ \_ ___/ __ \_ /_ _ \
# _ /_/ /_ / / /_/ / /__ _ ,< _(__ ) / /_/ /_ / / / / _ /_/ / / /___ / /_/ / / / /(__ )/ /_/ / / / __/
# /_____/ /_/ \____/\___/ /_/|_| /____/ \____/ /_/ /_//_/ _\__, / \____/ \____//_/ /_//____/ \____//_/ \___/
# /____/Commands_Only_Console:enabled:true# If it is on "true" the execution attempt warning will be sent to chat.warning:true# This message will be shown as soon as the command is blocked.# < ? > You can find more information about the executors in the header.executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# List of commands that can only be executed from the console.commands: - 'op' - 'minecraft:op' - 'deop' - 'minecraft:deop' - 'reload' - 'minecraft:reload' - 'rl' - 'minecraft:rl' - 'execute' - 'minecraft:execute'# ______________ ______ _______ ______ ______________# ___ __ )__ /______________ /_________ __ __ \_________ /____ __ ___ __ \__ /_____ _____ _____________________
# __ __ |_ /_ __ \ ___/_ //_/_ ___/ _ / / /_ __ \_ /__ / / / __ /_/ /_ /_ __ `/_ / / / _ \_ ___/_ ___/
# _ /_/ /_ / / /_/ / /__ _ ,< _(__ ) / /_/ /_ / / / / _ /_/ / _ ____/_ / / /_/ /_ /_/ // __/ / _(__ )
# /_____/ /_/ \____/\___/ /_/|_| /____/ \____/ /_/ /_//_/ _\__, / /_/ /_/ \__,_/ _\__, / \___//_/ /____/
# /____/ /____/Commands_Only_Players:enabled:true# If it is on "true" the execution attempt warning will be sent to chat.warning:true# This message will be shown as soon as the command is blocked.# < ? > You can find more information about the executors in the header.executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# List of players authorized to execute the commands below.# Tip. You can put both the player's name and his UUID.bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'# List of commands that players in the list above can perform.commands: - 'pl' - 'plugins' - 'bukkit:pl' - 'bukkit:plugins'# ______________ ______ _________ _____ _________ _________
# ___ __ )__ /______________ /_________ __ ____/___ __________ /_____________ ___ __ ____/____________ __________ _________ _____________ /_______
# __ __ |_ /_ __ \ ___/_ //_/_ ___/ _ / _ / / /_ ___/ __/ __ \_ __ `__ \ _ / _ __ \_ __ `__ \_ __ `__ \ __ `/_ __ \ __ /__ ___/
# _ /_/ /_ / / /_/ / /__ _ ,< _(__ ) / /___ / /_/ /_(__ )/ /_ / /_/ / / / / / / / /___ / /_/ / / / / / / / / / / / /_/ /_ / / / /_/ / _(__ )
# /_____/ /_/ \____/\___/ /_/|_| /____/ \____/ \__,_/ /____/ \__/ \____//_/ /_/ /_/ \____/ \____//_/ /_/ /_//_/ /_/ /_/\__,_/ /_/ /_/\__,_/ /____/
#Block_Custom_Commands:enabled:false# This allows you to run an executor for each command.# < ? > You can find more information about the executors in the header.commands:# In this example the command will be blocked for everyone.example_Command1:command:'exampleCommand1'warning:trueexecutors: - '[MESSAGE] %prefix%&cYou cannot execute this command!' - '[ACTION] &c&lโ &7You tried to run the command: &c%command%'# In this example, however, it requires permission to execute the command.example_Command2:command:'exampleCommand2'warning:truepermission_required:'bettersecurity.bypass.exampleCommand2'executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# In this other example, only the players on the list will be able to perform it.example_Command3:command:'exampleCommand3'# Tip. You can put both the player's name and his UUID.required_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# In this example, he shows you how you can block multiple commands with the same executor.example_Command4:commands: - 'exampleCommand4' - 'exampleCommand5'warning:truepermission_required:'bettersecurity.bypass.exampleCommands'executors: - '[MESSAGE] %prefix%&cYou cannot execute this command!'# ________ ______ _________ _____ ______ ___# ___ __ \_______________ /_____ ___________ __ ____/___ __________ /_____________ ___ ___ |/ /________________________ _______ _____________
# __ /_/ / _ \__ __ \_ /_ __ `/ ___/ _ \ _ / _ / / /_ ___/ __/ __ \_ __ `__ \ __ /|_/ /_ _ \_ ___/_ ___/ __ `/_ __ `/ _ \_ ___/
# _ _, _// __/_ /_/ / / / /_/ // /__ / __/ / /___ / /_/ /_(__ )/ /_ / /_/ / / / / / / _ / / / / __/(__ )_(__ )/ /_/ /_ /_/ // __/(__ )
# /_/ |_| \___/_ .___//_/ \__,_/ \___/ \___/ \____/ \__,_/ /____/ \__/ \____//_/ /_/ /_/ /_/ /_/ \___//____/ /____/ \__,_/ _\__, / \___//____/
# /_/ /____/
Replace_Custom_Messages:# --------- < โ > ---------# The use of ProtocolLib is required for this feature.enabled:false# If it is on "true" you can replace chat messages,# even from other plugins, with whatever you want.messages:# In this first example you are shown a classic message that occurs when you try to execute a command# without minecraft/bukkit permission. And it is replaced with the one set to "replace:"example_Message1:# In the target you just need to insert the string without the color code.# (If you enter colors in the control it may not correctly identify the target) target: 'I''m sorry, but you do not have permission to perform this command. Please contact the server administrators if you believe that this is in error.'
# Here you can put the text to be replaced with the color codes you want.replace:'&cYou cannot execute this command!'# In this example it replaces the default written of the unknown command with the one written below.example_Message2:target:'Unknown command. Type "/help" for help.'replace:'&7Unknown command.'# ________ _____ _____ ________ __________
# ___ __ \__________________ ______(_)________________(_)____________ ___ __ \______________ _______________ /___(_)____________
# __ /_/ / _ \_ ___/_ __ `__ \_ /__ ___/_ ___/_ /_ __ \_ __ \ __ /_/ /_ ___/ _ \_ | / / _ \_ __ \ __/_ /_ __ \_ __ \
# _ ____// __/ / _ / / / / / / _(__ )_(__ )_ / / /_/ / / / / _ ____/_ / / __/_ |/ // __/ / / / /_ _ / / /_/ / / / /
# /_/ \___//_/ /_/ /_/ /_//_/ /____/ /____/ /_/ \____//_/ /_/ /_/ /_/ \___/_____/ \___//_/ /_/\__/ /_/ \____//_/ /_/
#Permission_Prevention:enabled:false# The checks that are made to see if the player has unwanted permissions.checks:chat:true# When he writes in chat.commands:true# When writing a command.inventory:true# When he clicks the inventory.interact:true# When it interacts with a block.movement:true# When the player moves.join:true# When the player joins.left:true# When the player lefts.# Removes all permissions the player cannot own.# You can use the following placeholders:# - %player% | (Name of the player whose permission will be removed)# - %permission% | (Permission that it will remove)remove_permission:'lp user %player% permission unset %permission%'# Removes all groups that the player cannot own.# You can use the following placeholders:# - %player% | (Name of the player whose group will be removed)# - %group% | (Group that will remove)remove_group:'lp user %player% parent remove %group%'# The punishment that the player who will not be enabled in the list will receive.# < ? > You can find more information about the executors in the header.punishment: - '[CONSOLE] ban %player% You are not authorized to receive certain permissions. Contact the administrators for more information.'
# Players on this list will bypass the permissions, groups, and operator controls.global_bypass:enabled:true# Tip. You can put both the player's name and his UUID.bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'# Here you can make sure that only enabled players can be operators.operators:enabled:true# Tip. You can put both the player's name and his UUID.bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'# Here you can make sure that a group can only have the players enabled below.groups:enabled:truelist:# Example group with players.owner:# Tip. You can put both the player's name and his UUID.bypass_players: - 'playerName1' - 'playerName2'# Second example group with player's name and uuids.admin:bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'# Here you can make sure that only enabled players can have the permissions on the list.permissions:enabled:true# For permissions, instead of the dot, you must enter '_'. If not, it won't work!list:'*':# Tip. You can put both the player's name and his UUID.bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7''plugin_*':bypass_players: - 'playerName1' - '8667ba71-b85a-4004-af54-457a9734eed7'# ________ _____ ________ ________ __________
# ___ __ \______________ /_ ___ __ )____ _______________ _______________ ___ __ \______________ _______________ /___(_)____________
# __ /_/ / __ \_ ___/ __/ __ __ |_ / / /__ __ \ __ `/_ ___/_ ___/ __ /_/ /_ ___/ _ \_ | / / _ \_ __ \ __/_ /_ __ \_ __ \
# _ ____// /_/ / / / /_ _ /_/ /_ /_/ /__ /_/ / /_/ /_(__ )_(__ ) _ ____/_ / / __/_ |/ // __/ / / / /_ _ / / /_/ / / / /
# /_/ \____//_/ \__/ /_____/ _\__, / _ .___/\__,_/ /____/ /____/ /_/ /_/ \___/_____/ \___//_/ /_/\__/ /_/ \____//_/ /_/
# /____/ /_/Port_Bypass_Prevention:# --------- < ? > ---------# If your spigot is on the same machine as the proxy, this feature will not be needed!# This is because you can set the IP of the spigot to 127.0.0.1, # and change it also in the proxy (only the target of the spigot server, if you put this ip in the proxy it will not allow any user to enter).
# The ip 127.0.0.1 is a private ip, it means that it will be read only by the machine.# In this way it will be impossible for everyone to be able to enter through the port,# only the proxy will be able to connect, and let users in.# # If you use the proxy on a machine other than the spigot, the use of this features is recommended to increase your security!
# I also recommend that you block the port and make it accessible only through the proxy, see this guide:# --> https://www.spigotmc.org/wiki/firewall-guide/enabled:false# If it is "true", the login attempt through the port will be sent to the chat.warning:true# --------- < โ > ---------# You must enter the IP that you find in the config of your proxy.# If you have set "0.0.0.0" or "127.0.0.1" you have to change them by entering the exact IP of your machine.## If in the proxy you have set the IP of the machine, you will have to enter it in this list!# If you set 0.0.0.0 or 127.0.0.1 it could be bypassable. So this feature would be useless!# Here you have to enter the proxy IP.# This will prevent malicious users from being able to enter via your server port,# but only via the proxy IP.# The default ip in the "10.1.0.5" list is just an example, you have to put the IP of your proxy in it.whitelisted_ips: - '10.1.0.5'# If it is active you will not be able to put as IP: 0.0.0.0, or 127.0.0.1.# You will be hunted at the attempt! If you are aware of what you are doing you can turn it off.safety_kicks:true# This is the message that will be shown when a user tries to join via the server port. kick_message: '&6&lBETTER SECURITY\n\n&7You &ccannot &7connect directly via this port.\n&7You have to enter through the ip &bmc.example.net&7.'
# Additional security system that kicks the player trying to connect if they are already online.already_connected:enabled:true# Message that will be shown during the kick.message:'&6&lBETTER SECURITY\n\n&7You are already inside the server,\n&7you have been &ckicked&7 out!'# ____ _ _ _ __ _ ____# | _ \ _____ _____ _ __ ___ __| | | |__ _ _ | |/ / _ ___ | |_ ___ | _ \ ___ ___ ___ _ _ _ __ ___ ___ ___
# | |_) / _ \ \ /\ / / _ \ '__/ _ \/ _` | | '_ \| | | | | ' / | | |/ _ \| __/ _ \| |_) / _ \/ __|/ _ \| | | | '__/ __/ _ \/ __|
# | __/ (_) \ V V / __/ | | __/ (_| | | |_) | |_| | | . \ |_| | (_) | || (_) | _ < __/\__ \ (_) | |_| | | | (_| __/\__ \
# |_| \___/ \_/\_/ \___|_| \___|\__,_| |_.__/ \__, | |_|\_\__, |\___/ \__\___/|_| \_\___||___/\___/ \__,_|_| \___\___||___/
# |___/ |___/