Documentation - EN

Jul 16, 2017
Documentation - EN
  • < Return to the Bungee Admin Tools wiki

    Bungee Admin Tools - Documentation




    Setup(top)

    In order to use BAT, you need a database. BAT provides two databases system : MySQL and SQLite3.
    However due to a lot of problems with SQLite3, I highly recommend MySQL as a database.
    If you use SQLite3 instead of MySQL, you may not receive support if you encounter any problems.

    Note: If you want to keep the bungee restarts to a minimum then it is recommended to get your configuration setup on a test bungee!
    1. Put BungeeAdminTools.jar in your Bungee cord plugins folder.

    2. Stop and start your proxy. This will generate the config.yml file and the BungeeAdminTools folder inside your bungee plugins folder.

    3. Open the config.yml file inside the BungeeAdminTools folder and modify it for your server needs (try to use MySQL if possible otherwise use file storage, MySQL makes stuff faster and adds support for the BungeeWebInterface).

    4. Start your proxy. The plugin should now work normally. If it doesn't check your logs, it's probably an error of authentication with the database (if you are using MySQL), so check if your user and password is entered correctly.

    5. Once it works, you can give yourself the parent permission node bat.admin to get full control in game. This MUST be placed in the config.yml of bungee in the permissions section. Please read the bungee wiki for more help on bungee permissions. Once you have the permission, just use /bat modules to get the list of the loaded modules and their main commands. Then to show help of a module just use /<mainCommand> help, for example for ban, it will be /ban help
      • You might want to consider using THIS plugin to give permissions using your permission plugins from your spigot/bukkit servers. This is much easier to give or revoke permissions than directly editing config.yml.

    FAQ aka I have an issue, how to fix it ?(top)

    This section lists the most known issues and how to fix them.
    First if you have an error please turn debugMode to true in config.yml and then look at the debug.log file.
    • Error while connecting to the database
      • Most of the time, your database credentials aren't correct, so please check that first. Otherwise if you're sure your credentials are ok, you may check if there is not a firewall blocking the connection between your BungeeCord server and your database server. If it's still not working, your database is not compatible with BAT (there can be many reasons for that). So I can only advise you to change of database hosting provider, till you find one which is working correctly with BAT. You can ask help for that issue on BAT topic, but I'll not be able to help you more cause it's something I can't fix.
    • The temporary punishments aren't working correctly (for example, people aren't unbanned at the end of their temporary ban)
      • A timezone issue is often the cause of the problem. In order to fix it, you need to check if the timezone of your mysql server is the same as the one of your bungeecord server. For that the best is to ask your hoster which timezone is used on the MySQL server and on the bungeecord server. Or you can execute whatever punishment in bungee, look at the hour in the bungee log then go in your database with PHPMyAdmin and look at the begin_date of the punishment. If they're not the same, you've got a timezone issue. In order to fix it, the only way is to set the mysql server timezone and the bungeecord timezone to the same one. Ask your hoster to do it, or if you have an dedicated server look for an tutorial on google.
    If your error is not listed here, you can post a message on BAT topic, but you need to link the debug.log file otherwise we won't be able to help you.

    BAT and offline-mode networks(top)

    Though BAT is based on UUIDs, it is also compatible with offline networks ; offline-mode: false(BAT generates UUIDs according to the player username).
    But you need to know that BAT is case-sensitive, so if two players have usernames like "PlAyeR1" and "player1", BAT will recognizes it as two different players. That is not considered as a bug, and therefore won't be fixed ! If you want to disable case-sensitivy, you'll need to use another plugin which disable case-sensitivity : no changes are planned for now about this topic.

    How to create command alias (e.g how to redirect /ban to /gban)(top)

    NB: This example shows how to do it for /ban to /gban, it's exactly the same for other commands, just not the same name.
    While BAT can handle per server ban, you might be wanting to only use global one. The normal way of issuing a global ban is with the /gban command. But maybe your staff is confused and you'd like that /ban to do global ban. In order to do this, you must create an alias from /ban to /gban using another plugin, here is an HOW-TO.

    First of all, you need to disable the /ban command from BAT so the alias plugin can use it. Go in your ban.yml file located in BAT folder and set commands.ban to false to disable it.
    Then you're going to install CommandControl on your proxy: put the jar in your bungee plugins folder and restart the proxy. Open the config.yml file of CommandControl and add the following line to the BungeeCommands section : ban {args}: "gban {args}". Once you've done that, execute /ccreload in the bungee console to reload the command control config.
    The /ban command should now work as /gban, take note that CommandControl only handles alias for commands executed by player (not by the console).

    Import data from others banning solutions(top)


    All the modules of BAT will be disabled during the data import.

    From BungeeSuiteBans or GeSuitBans :
    To import your bungeesuitebans / gesuitbans info into BAT you must firstly be using MySQL for BAT and it MUST be the same database not just the same MySQL instance. For example if you were using BungeeSuitBans and used a MySQL database called Admin on localhost you must use Admin on localhost for BAT in the config file. After these conditions are met do /bat import <type> with "type" being the plugin you were using before. BAT will proceed to the import.

    From banned-players.txt and/or banned-ips.txt :
    You need to put the banned-xx.txt file into BAT folder, then execute this command : /bat import MC-Previous1.7 , the import will start.

    Permissions(top)


    All permissions MUST be placed in the config.yml of bungee in the permisions section. Please read the bungee wiki for more help on bungee permisions.

    Note: For your test, if you have a message like this one : "You can't perform this command on this player!" when you're trying to ban, kick or mute , it means the target has the bat.<module>.exempt.

    Core permissions :

    • bat.admin : Full permission to use the plugin

    • bat.help : Use /bat help

    • bat.modules : Use /bat modules

    • Lookup commands:
      • /bat lookup <player> : bat.lookup
      • /bat lookup <ip> : bat.lookup.ip
      • Show ip in lookup : bat.lookup.displayip
    • bat.import : Use /bat import
    Modules permissions :

    For each module, the permission are almost the same. To begin with, you've the

    bat.grantall.<server> which gives you the full permission for bans, mutes and kicks.

    For more specific control, you will need this permission : bat.<command>.<server> and if you want to give the command in all server just replace <server> with global. e.g :bat.<command>.global

    Here are some examples :
    • bat.ban.lobby : Allow the use of /ban <player> lobby.
    • bat.ban.global : Allow the use of /gban and /ban on every server.

    Finally, there are some miscellaneous permissions :

    • bat.<module>.broadcast : Allows you to see the broadcasted message of a module

    • bat.<module>.exempt : Exempt of being kicked, mute or banned.

    Triggers (top)

    What's a trigger ?
    A trigger is basically a list of commands which are executed after a player was subjected to a specified number of comments or warnings with an specified reason (or not).
    It allows you to let mod focus on spotting of rules breaking and not cogitate on the sanction that must be given : you define the list of commands that must be executed.

    How does it work ?

    The triggers are located into comment.yml file. You need to enable comment module to use them.
    Here is a trigger structure :
    Trigger name:
    pattern: reason which must be provided to trigger this
    commands: list of commands that should be executed when it triggers, you can use {player} variable
    triggerNumber: the number at which this triggers

    To make everything clear, let's take an example.

    Here is the two triggers we're going to use :
    InsultTrigger:
    pattern: 'insult'
    commands: gtempmute {player} 1d You've been mute because you insulted too much time.
    triggerNumber: 2​
    InfractionTrigger:
    pattern: ''
    commands: gban {player} You committed too many infractions on the server. If you think there is an error, make a ban appeal.
    triggerNumber: 4​

    So let's say, we're on a server. A player insult someone. The mod sends him a first warning with a reason containing the word 'insult'. But the player keeps insulting another person. The mod sends another warning which contains the word 'insult'. The triggers 'InsultTrigger' is executed. The player is muted during 1 day for the reason "You've been mute because you insulted too much time".

    Some days later, the player starts again to insult other players. The mod sends another warning with a reason containing the word 'insult'. But no trigger is executed as the player warning's number is now 3 and not 2.
    The player is not taking the warning into account and keep making a mess : this time is fighting other players in a territory which should be peaceful. The mod sends another warning. No matter the reason (because the pattern is empty which means no reason needed) the infraction trigger is executed, this player is banned.

    Nota bene: Once a trigger is executed, the comments and the warnings don't reset. However if you would like to, just add the command "clearcomment {player}" in the commands list of the concerned trigger.

    Translation(top)


    They are currently five available languages :
    • English
    • French
    • Dutch : thanks to spellegrom
    • German : thanks to NilsUSA
    • Spanish : thanks to daglimioux
    You can set the language in the config.yml.

    If you want to make your own translation or custom some messages, you can read this :
    All the most important message of this plugin are translatable. The language files are located in the jar. You can let the language file inside the jar but you can also copy a .language file into BAT folder and it will take it into account.
    In certain message, you will see string like this one : "{0}" or "{1}" ...
    It refers to variable. For example in the banBroadcast message, {0} refers to the banned player or ip, {1} is the staff member who banned the player or the ip, {2} is the server the player is banned from and finally {3} refers to the reason.
    There isn't documentation of all variables, so you have to "guess" which is often pretty easy with the context and if you can't found just isolate the variable and see the result to understand to what it refers.

    Commands(top)

    <param> Required param

    [param] Optional param

    For ban and mute, if [server] is not specified, the server will be set to sender's server. For kick, it will be set to player's server.
    Ban commands :

    ban :
    Usage : ban <player> [server] [reason]

    Description : Ban the player on username basis on the specified server permanently or until unbanned.​

    banip :
    Usage : banip <ip> [server] [reason] or banip <player> [server] [reason

    Description : Ban player on an IP basis on the specified server permanently or until unbanned.

    Note: If you enter " banip <player> [reason]" it will grab that players IP and then ban that IP.​

    gban :
    Usage : gban <name> [reason]

    Description : Ban the player on username basis on all servers (the whole network) permanently or until unbanned.​

    gbanip :
    Usage : gbanip <ip> [reason] or gbanip <player> [reason]

    Description : Ban player on an IP basis on all servers (the whole network) permanently or until unbanned.

    Note: If you enter " gbanip <player> [reason]" it will grab that players IP and then ban that IP.​

    --------------------------------------------------------------------------------------

    tempban :
    Usage : tempban <player> <duration> [server] [reason]

    Description : Temporarily ban the player on username basis on from the specified server for duration. Please look at the section for setting durations.​

    tempbanip :
    Usage : tempbanip <ip> <duration> [server] [reason] or tempbanip <player> <duration> [server] [reason]

    Description : Temporarily ban the player on IP basis on the specified server for duration. Please look at the section for setting durations.

    Note: If you enter " tempbanip <player> [reason]" it will grab that players IP and then ban that IP.​

    gtempban :
    Usage : gtempban <player> <duration> [reason]

    Description : Temporarily ban the player on username basis on all servers (the whole network) for duration. Please look at the section for setting durations.​


    gtempbanip :
    Usage : gtempbanip <ip> <duration> [reason] or gtempbanip <player> <duration> [reason]

    Description : Temporarily ban the player on IP basis on all servers (the whole network) for duration. Please look at the section for setting durations.

    Note: If you enter " gtempbanip <player> [reason]" it will grab that players IP and then ban that IP.​

    --------------------------------------------------------------------------------------

    unban :
    Usage : unban <player> [server] [reason]

    Description : unban the player on a username basis from the specified server.

    Note: This will not unban the player on the specified server if they are band on the network via "gban" or "gbanip". It will remove their ban on that server so if they are band on both server and network it will make them only band on network.​

    gunban :
    Usage : gunban <player> [reason]

    Description : unban the player on a username basis from all servers (the whole network).

    Note: This will not unban the player on the specified server if they are band on the specified server via "ban" or "banip". It will remove their ban on the network so if they are band on both network and server it will make them only band on the server or servers they were band on before.​

    unbanip :
    Usage : unbanip <ip> [reason] or gunbanip <player> [reason]

    Description : unban the player on an IP basis from the specified server.

    Note: This will not unban the player on the specified server if they are band on the network via "gban" or "gbanip". It will remove their ban on that server so if they are band on both server and network it will make them only band on network.

    Note: If you enter " unbanip <player> [reason]" it will grab that players IP and then unban that IP.​

    gunbanip :
    Usage : gunbanip <ip> [reason] or gunbanip <player> [reason]

    Description : unban the player on an IP basis from all servers (the whole network).

    Note: This will not unban the player on the specified server if they are band on the specified server via "ban" or "banip". It will remove their ban on the network so if they are band on both network and server it will make them only band on the server or servers they were band on before.

    Note: If you enter " gunbanip <player> [reason]" it will grab that players IP and then unban that IP.​

    --------------------------------------------------------------------------------------

    Mute commands :

    mute :
    Usage : mute <player> [server] [reason]

    Description : Mute the player on username basis on the specified server permanently or until unbanned.​

    muteip :
    Usage : muteip <ip> [server] [reason] or nuteip <player> [server] [reason]

    Description : Mute player on an IP basis on the specified server permanently or until unbanned. No player logged in with that IP will be able to speak.

    Note: If you enter " muteip <player> [reason]" it will grab that players IP and then mute that IP.​

    gmute :
    Usage : gmute <name> [reason]

    Description : Mute the player on username basis on all servers (the whole network) permanently or until unbanned.​

    gmuteip :
    Usage : gmuteip <ip> [reason] or gmuteip <player> [reason]

    Description : Mute player on an IP basis on all servers (the whole network) permanently or until unbanned. No player logged in with that IP will be able to speak.

    Note: If you enter " gmuteip <player> [reason]" it will grab that players IP and then mute that IP.​

    --------------------------------------------------------------------------------------
    tempmute :
    Usage : tempmute <player> <duration> [server] [reason]

    Description : Temporarily mute the player on username basis on from the specified server for duration. Please look at the section for setting durations.​

    tempmuteip :
    Usage : tempmuteip <ip> <duration> [server] [reason] or tempmuteip <player> <duration> [server] [reason]

    Description : Temporarily mute the player on IP basis on the specified server for duration. Please look at the section for setting durations. No player logged in with that IP will be able to speak.

    Note: If you enter " tempmuteip <player> [reason]" it will grab that players IP and then mute that IP.​

    gtempmute :
    Usage : gtempmute <player> <duration> [reason]

    Description : Temporarily mute the player on username basis on all servers (the whole network) for duration. Please look at the section for setting durations.​

    gtempmuteip :
    Usage : gtempmuteip <ip> <duration> [reason] or gtempmuteip <player> <duration> [reason]

    Description : Temporarily mute the player on IP basis on all servers (the whole network) for duration. Please look at the section for setting durations. No player logged in with that IP will be able to speak.

    Note: If you enter " gtempmuteip <player> [reason]" it will grab that players IP and then mute that IP.​

    --------------------------------------------------------------------------------------
    unmute :
    Usage : unmute <player> [server] [reason]

    Description : Unmute the player on a username basis from the specified server.

    Note: This will not unmute the player on the specified server if they are muted on the network via "gmute" or "gmuteip". It will remove their mute on that server so if they are muted on both server and network it will make them only muted on network.​

    gunmute :
    Usage : gunmute <player> [reason]

    Description : Unmute the player on a username basis from all servers (the whole network).

    Note: This will not unmute the player on the specified server if they are muted on the specified server via "mute" or "muteip". It will remove their mute on the network so if they are muted on both network and server it will make them only muted on the server or servers they were muted on before.​

    unmuteip :
    Usage : unmuteip <ip> [reason] or gunmuteip <player> [reason]

    Description : Unmute the player on an IP basis from the specified server.

    Note: This will not unmute the player on the specified server if they are muted on the network via "gmute" or "gmuteip". It will remove their mute on that server so if they are muted on both server and network it will make them only muted on network.

    Note: If you enter " unmuteip <player> [reason]" it will grab that players IP and then unmute that IP.​

    gunmuteip :
    Usage : gunmuteip <ip> [reason] or gunmuteip <player> [reason]

    Description : Unmute the player on an IP basis from all servers (the whole network).

    Note: This will not unmute the player on the specified server if they are muted on the specified server via "mute" or "muteip". It will remove their mute on the network so if they are muted on both network and server it will make them only muted on the server or servers they were muted on before.

    Note: If you enter " gunmuteip <player> [reason]" it will grab that players IP and then unmute that IP.​

    --------------------------------------------------------------------------------------

    Kicks :

    kick :
    Usage : kick <player> [reason]

    Description : Kick the player from his current server to the lobby.​

    gkick :
    Usage : gkick <player> [reason]

    Description : Kick the player from the network.​

    Comments and warning :
    warn :
    Usage : warn <player> <reason>
    Permission : bat.warn
    Broadcast permission : bat.kick.broadcast
    Description : Warn a player and add warning note on player's info text. Use /bat lookup to show players info text.
    comment :
    Usage : bat comment <player> <reason>
    Permission : bat.comment.create
    Alias: note
    Description : Write a comment about the player. Use /bat lookup to show players info text.
    clearcomment :
    Usage : bat clearcomment <player> <reason>
    Permission : bat.comment.clear
    Description : Clear the comments and warnings of the player.​

    Core :
    reload:

    Usage : bat reload

    Description : Reload the whole plugin.
    lookup:
    Usage : bat lookup <player> [module] [page] or bat lookup <ip> [module] [page]

    Description : Displays a player or an ip related information (universal or per module)​

    stafflookup:

    Usage : bat stafflookup <staff> [module] [page]

    Description : Displays a staff member history (universal or per module)​

    help:
    Usage : bat help

    Description : Displays help for core BAT commands.​

    modules:
    Usage : bat modules

    Description : Displays what modules are loaded and commands for those modules.​

    import:
    Usage : bat import <bungeeSuitBans> or bat import <geSuitBans>

    Description : Imports ban data from the specified source.​
    backup:
    Usage : bat backup

    Description : Backup the BAT's data from the mysql database into a file​

    --------------------------------------------------------------------------------------
    Setting durations :

    When setting durations simply enter a number then time sufix. Sufixs are y for years, mo for months, w for week, d for day, h for hour, m for minute and s for second.
    For example 24h45m is 24hours 45 minutes. In a command this will look like this "/gtempmute JamieS1211 24h45m" this will mute JamieS1211 across all servers for 24hours 45 minutes.
    :D
  • Loading...
  • Loading...