AdvancedBan 2.2.0

Compatible API Versions
Leoko, SupremeMortal



AdvancedBan is an All-In-One Punishment-System with warns, tempwarns, mutes, tempmutes, bans, tempbans, ipbans, tempipbans and kicks.
There is also a PlayerHistory so you can see the players past punishments and
the plugin has configurable Time & Message-Layouts which automatically calculate and increase the Punishment-Time for certain reasons.
AdvancedBan provides also a full Message-File so you can change and translate all messages & a detailed config file with a lot of useful settings.
This is a BungeeCord & Bukkit/Spigot-Plugin in one and it supports MySQL and a local embedded Database to provide high performance.


1. Download the Plugin.
2. Put it in your Plugin folder.
3. Reload/Restart your Server.
4. Check with /advancedban if the plugin is loaded.
5. Configure it like you want & have fun.


| = or
-s = Silent punishemnt (no notification to others)

/kick [PLAYER] <-s> <REASON | @LAYOUT>
Kick a player

/ban /mute /warn [PLAYER] <-s> <REASON | @LAYOUT>
Ban/Mute/Warn a player

/banip [PLAYER/IP] <-s> <REASON | @LAYOUT>
Ban a player's IP. If you enter a name it will use the cached IP

/tempban /tempmute /tempwarn [PLAYER] [Xmo|Xd|Xh|Xm|Xs|#TIMELAYOUT] <-s> <REASON | @LAYOUT>
Tempban/mute/warn a player for a given time or with a time-layout for automatic-time-calcualtion

/tempipban [PLAYER/IP] [Xmo|Xd|Xh|Xm|Xs|#TIMELAYOUT] <-s> <REASON | @LAYOUT>
Temippban a player for a given time or with a time-layout for automatic-time-calcualtion
Alias: /tipban

/change-reason [ID] [New reason]
Change the reason for a punishment by id

/change-reason [ban/mute] [PLAYER] [New reason]
Change the reason for a players punishment

/unban /unmute [PLAYER]
Unban/mute a player

/unwarn [ID]
Delete a warn

/unpunish [ID]
Delete a punishment

/warns <PLAYER>
See your own or a player's warnings.

/check [PLAYER]
Get player-status: UUID/IP/Country/Ban-Status/Mute-Status/Warn-Count

/banlist <PAGE>
See all currently active punishments

/history [PLAYER] <PAGE>
See all currently active punishments
To use the command - ab.history

/advancedban reload
Reloads the messages from file and "some" settings

/advancedban help
Shows a list of all commands and a brief explanation

Displays some System-Information which are useful for the configuration


Most of the permission nodes follow a simple layout:
So, for example, the /ban command has the permission node ab.ban.perma and the tempwarn command has ab.warn.temp
But please check the list of permissions anyway to ensure you are using the right permissions:

ab.kick.use - /kick
ab.kick.exempt - Immune to kicking
ab.kick.notify - Receives notification

ab.ban.perma - /ban
ab.ban.temp - /tempban
ab.ban.exempt - Immune to ban
ab.ban.notify - Receives notification
ab.ban.undo - /unban

ab.tempban.exempt - Immune to tempban
ab.tempban.notify - Receives notification[/SPOILER]

ab.ipban.perma - /ipban
ab.ipban.temp - /tempipban
ab.ipban.exempt - Immune to ipban
ab.ipban.notify - Receives notification

ab.tempipban.exempt - Immune to tempipban
ab.tempipban.notify - Receives notification

ab.mute.perma - /mute
ab.mute.temp - /tempmute
ab.mute.exempt - Immune to mute
ab.mute.notify - Receives notification
ab.mute.undo - /unmute

ab.tempmute.exempt - Immune to tempmute
ab.tempmute.notify - Receives notification

ab.warn.perma - /warn
ab.warn.temp - /tempwarn
ab.warn.exempt - Immune to warn
ab.warn.notify - Receives notification
ab.warn.undo - /unwarn

ab.tempwarn.exempt - Immune to tempwarn
ab.tempwarn.notify - Receives notification

ab.all.undo - /unpunish

ab.warns.own - /warns
ab.warns.other - /warns

ab.check - /check
ab.check.ip - Also shows IP

ab.changeReason - /change-reason
ab.banlist - /banlist
ab.history - /history
ab.reload - /advancedban reload - /advancedban help
ab.systemprefs - /systemprefs

By default, the user will be able to punish an infinite amount of time if he has the perms to use the command.
You can set the max-punishment-time with ab.tempban/tempmute/tempwarn.dur.X
In the config, there is a section called "TempPerms".
There you can configure how long which ID will be able to punish
for example, you set
1: 3600
the player with the perms ab.tempban.dur.1 will only be able to ban 3600s -> 1h
The amount is entered in SEC and if a player has more than one perms the higher numbers override.
There is a second explanation in the config.yml.


# AdvancedBan v2 - Coded by Leoko
# For each setting, there is a small description.
# Please read each description carefully before changing anything.
# For more information visit:
# Do you want your own Plugin or Website? Check out our Dev-Page:

# If set to false all bans will be saved locally in a HSQLDB-Database
UseMySQL: false

# Set to false if you want to have only short messages in the console
# On startup and on the shutdown.
DetailedEnableMessage: true
DetailedDisableMessage: true

# This will be the default reason to be displayed if none is given
DefaultReason: "none"

# Change this if your server has a different time that your users.

Here you can change every message. All Message-Variables that are available are used in the default settings.

Here you can define predefined reasons which can be used for (temp-)banning/muting/warning & kicking.
You can use them by just typing @Layout-NAME instead of the reason. So you can have different layouts with different information for different reasons.
And once you have defined them you do not have to type the whole reason.

Here you can define timelayouts which can be used for temporary-punishments.
You can use them by just typing #LAYOUT-NAME instead of the duration. The time increases every time a player gets punished with the same layout.

# The default layouts are in the Message.yml file!

# Message-Layouts can not only be used for bans but also for mutes and warns
# For warns you have also the variable %COUNT% which will be
# replaced with the current amount of warns the player already resived
# Example usage: /ban Leoko @ExampleLayout
    - '%PREFIX% &7Banned for Hacking'
    - '&c&oBannd by %OPERATOR%'
    - '&7'
    - "&cIt seems like you are using a"
    - "&chacked client please disabled it!"
    - "&cUnban in &8\xbb &7%DURATION%"
    - '&7'
    - '&8Unban application in TS or forum'
    - "&eTS-Ip &8\xbb &c&ncoming soon"
    - "&eForum &8\xbb &c&ncoming soon"

# You would use this time-layout for example like this: "/tempban Leoko #ExampleLayout Hacking in FFA"
# Or with "/tempwarn Leoko #ExampleLayout Advertising" or with "/tempwarn Leoko #ExampleLayout No capslock please"
# You can also combine this with MessageLayouts like "/tempban Leoko #ExampleLayout @Hacking"
    - '30m'
    - '2h'
    - '1d'
    - '1w'
    - '1mo'
    - '2mo'
    - '4mo'
    - 'perma'


  • Ban-, Kick-, Mute- and Warn-System
  • Excellent performance
  • BungeeCord & Bukkit/Spigot-Plugin in one
  • PlayerHistory
  • Easy to use API
  • Advanced-UUID-Support
    • Intern or Extern UUID-Fetcher
    • Backup-UUID-Fetcher if Mojang-Servers are offline
    • Change UUID-Fetcher REST-API
  • MySQL or local embedded HyperSQL
  • Full customizable
  • Multiple lines in Kick- and Ban-Messages
  • Pre-Defined Reasons
  • Automatic time calculation [1th-tempban -> 1h | 2th-tempban -> 6h ...]
  • Custome Time-Offset [Change the timezone if the server has a wrong time]
  • Automatic-Warn actions

Thanks to @mathhulk there is a web interface which you can download and place on your own WebServer this can be great if...
... your MySQL is only accessible for localhost
... you want to make major changes in the layout

This web interface does not include all features listed above, like the player-search or advanced mobile optimization.

Finally please note that all credits of this web interface got to @mathhulk and that we won't provide any support for it.

First release
Last update
5.00 star(s) 1 ratings

More resources from SupremeMortal

Latest reviews

Nice Port! Could do with an update though, everything still works luckily...