- Compatible API Versions
- 1.0.8
- Sourcecode
- https://github.com/SupremeMortal/AdvancedBan
- Contributors
- 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.
[NEEDED]
<OPTIONAL>
| = 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
/systemprefs
Displays some System-Information which are useful for the configuration
<OPTIONAL>
| = 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
/systemprefs
Displays some System-Information which are useful for the configuration
Most of the permission nodes follow a simple layout:
ab.PUNISHMENT.TYPE or ab.COMMAND
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:
Code:
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
ab.help - /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.
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.
Code:
# 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: https://www.spigotmc.org/resources/advancedban.8695/
# Do you want your own Plugin or Website? Check out our Dev-Page: http://dev.skamps.eu
# 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.
Messages.yml
Here you can change every message. All Message-Variables that are available are used in the default settings.
Layout.yml
Messages:
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.
Time:
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.
Code:
# The default layouts are in the Message.yml file!
# Message-Layouts can not only be used for bans but also for mutes and warns
# Varibales: %OPERATOR%, %REASON%, %PREFIX%, %DURATION%
# 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
Message:
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"
Time:
ExampleLayout:
- '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
- Check-Command [UUID, IP, COUNTRY, BAN/MUTE/WARNS]
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.
GitHub: https://github.com/mathhulk/ab-web-addon
Example: https://whatisin.space/ab-web-addon