AdvancedBan
This bukkit page is discontinued!
Visit our SpigotMC page to get the latest version: https://www.spigotmc.org/resources/advancedban.8695/
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.
Developed by Leoko
1. Download the Plugin
2. Put it in your Plugin folder. [either in the one of your BungeeCord-Server or in the one of the Bukkit/Spigot]
3. Reload/Restart your Server [if BungeeCord you have to restart it with /end]
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
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:
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
ab.ipban.perma - /ipban
ab.ipban.temp - /tempipban
ab.ipban.exempt - Immune to ipban
ab.ipban.notify - Receives notification
ab.ipban.exempt - Immune to ipban
ab.ipban.notify - Receives notification
ab.tempipban.exempt - Immune to tempipban
ab.tempipban.notify - Receives notification
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.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.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.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.tempwarn.notify - Receives notification
ab.all.undo - /unpunish
ab.warns.own - /warns
ab.warns.other - /warns
ab.warns.other - /warns
ab.check - /check
ab.check.ip - Also shows IP
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
ab.banlist - /banlist
ab.history - /history
ab.reload - /advancedban reload
ab.help - /advancedban help
ab.systemprefs - /systemprefs
How to limit the punish duration:
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.
Note when using Bungeecord:
If you use this plugin on bungeecord you need to define the permissions in the config.yml of the Bungeecord Server or through a spcial bBungeecord Permission Plugin.
The problem with bungeecord permissions is that there are not *-Perms so a user with ab.* won't have access to all commands. But to simplify the setup there is a setting in the advacnedban config called "EnableAllPermissionNodes" which allows you to use a .all instead of a .* so if enabled a user with ab.all will have access to all AdvancedBan commands. (There is another explanation in the config)
Some images:
Warn:
Tempmute:
Tempban with Message-Layout:
Ban:
Kick:
Check: [No country because it's a localhost-ip]
Config.yml:
The config.yml should be self-explaining and there are also explanations 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: 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. # e.g.: ServerTime: 16:43 | Your Time: 13:43 | TimeDiff has to be set to -3 # You can check the server time with /systemPrefs TimeDiff: 0 # This commands will be disabled for muted players # A player wouldn't be able to bypass with eg "/minecraft:me" MuteCommands: - 'me' - 'say' - 'action' - 'eaction' - 'describe' - 'edescribe' - 'eme' - 'w' - 'm' - 'pm' - 'whisper' - 'ewhisper' - 'emsg' - 'msg' - 'etell' - 'tell' - 'er' - 'r' - 'reply' - 'ereply' - 'ac' - 'eac' - 'amsg' - 'eamsg' - 'ehelpop' # These players will not be able to get punished in any way # this also works if the player is offline ExemptPlayers: - 'Leoko' - 'md5' - 'dutchy1001' - 'ItzSomebody' # The date-format which will be used for the %DATE% variable DateFormat: "dd.MM.yyyy-HH:mm" # This is useful for bungeecord servers or server with permission systems which do not support *-Perms # So if you enable this you can use ab.all instead of ab.* or ab.ban.all instead of ab.ban.* # This does not work with negative permissions! e.g. -ab.all would not block all commands for that user. EnableAllPermissionNodes: false # If you use external REST-APIs they will have to respond in JSON # The given APIs will only be used for NAME -> UUID # For UUID -> NAME will either use the official MojangAPI or the InternFetcher # To check if you can use the intern fetcher do /systemPerfs and compare your uuid # to the one you can see online on http://NamesMC.com # if they are similar we recommend using the InternFetcher UUID-Fetcher: # If dynamic it set to true it will override the 'enabled' and 'intern' settings # and automatically detect the best possible uuid fetcher settings for your server. # Our recommendation: don't set dynamic to false if you don't have any problems. Dynamic: true Enabled: true Intern: false REST-API: URL: "https://api.mojang.com/users/profiles/minecraft/%NAME%?at=%TIMESTAMP%" Key: "id" BackUp-API: URL: "https://us.mc-api.net/v3/uuid/%NAME%" Key: "uuid" # These are the commands that will be performed on warns # If you skip a number the command from before will be performed # You can also use non-AdvancedBan-Commands like 'broadcast' or 'clear %PLAYER% # Variables: %PLAYER%, %REASON%, %COUNT% WarnActions: 3: "kick %PLAYER% &c&oYou have received your 3rd warning!" 4: "tempban %PLAYER% 30m &c&oYou have received your 4th warning!" 5: "tempban %PLAYER% 5h &c&oYou have received your 5th warning!" 6: "tempban %PLAYER% 7d &c&oYou have received your 6th warning!" 7: "tempban %PLAYER% 1mo &c&oYou have received your %COUNT%th warning!" 10: "ban %PLAYER% &c&oYou have received your 10th warning!" # Here you can create permission-nodes for max-punishment-duration. # The permission "ab.tempban.dur.1" would allow the player to ban max. for 600sec = 10min # The permission "ab.tempwarn.dur.2" would allow the player to warn max. for 3600sec = 1h # You can only create up to 10 perms. The perms can be overridden with "ab.COMMAND.dur.max" TempPerms: 1: 600 2: 3600 3: 43200
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.
# 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]
>> Plugins supporting AdvancedBan <<
Addon for Party and Friends System ( [USER=67188]@simonsator[/USER] ):
GUI Addon ( [USER=57888]@Boobah[/USER] ):
English:
(detailed)
(brief)
Dutch/Nederlands:
Russian:
Spanish:
If you have made one just send me the link per PM.
Requirements:
- AdvancedBan version 2.0.0 or higher
- MySQL-Server that is reachable from outside (not just localhost)
- Enabled MySQL not file
A webserver is not required
Note:
The webpanel is not something to download like the first one.
It's a website where you can register your server and the website will generate your own banpanel.
Also the panel does only display things it is not for administration just for monitoring.
Free MySQL-Databases:
BPlaced is not working
Here is a live DEMO:
Features:
- Secure login-system (sha1 & no-SQLInjections)
- Mobile optimized
- Flat design
- Own subdomain [NAME.banpanel.eu]
- Own messages & design [coming soon]
- Able to integrate into your webside
Register here:
Standalone WebInterface Alternative
Thanks to [USER=138878]@mathhulk[/USER] 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 [USER=138878]@mathhulk[/USER] and that we won't provide any support for it.
I don NOT vouch for the security of this web panel!
Example: https://whatisin.space/ab-web-addon
If you have any problems with the Plugin make sure the first check the console for any error messages with instructions how to solve the issue and to read the Known-Issues-Section below
If you still have the issue just post your it into the discussion area, on GitHub or on our Discord-Server
The new Version of AdvancedBan was a lot of work for and I spend a lot of time and effort on it.
So if you appreciate my work I'd be very thankful about every donation ^^
>> Servers using AdvancedBan <<
BlizzardCraft Network
> mc.blizzardcraft.net
We use a Metrics-System called bStats which tracks information about your server
eg. Player, Bit-System, MC-Version, Server-System ect.
More information about bStats can be found here:
None yet
All information about the API can be found on GitHub
Why is there no /ipmute or /tempipmute
Is there any way to change command like /tempmute with /example ?
Quick question on the banlist command, is there an easy way to run the vanilla one and not the one from this plugin? It appears bans previous to installation do not get added to this plugin's command.
Add a function so that you can not ban a player offline. And add that all the players would see the other player working, unclean a specific player)
you could introduce a banlog in the most recent update of the plugin so that you can see all the bans, kicks, mutes and warns a player had received
I have an issue using /unwarn:
When I warn a player on my server, I can't unwarn them..
I get the following error in the console:
"[23:38:54] [Craft Scheduler Thread - 0/WARN]: [AdvancedBan] Plugin AdvancedBan v2.1.5-RELEASE generated an exception while executing task 24
java.lang.NullPointerException: null
at me.leoko.advancedban.manager.PunishmentManager.getWarn(PunishmentManager.java:158) ~[?:?]
at me.leoko.advancedban.manager.CommandManager.lambda$onCommand$0(CommandManager.java:175) ~[?:?]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:77) ~[craftbukkit-1.14.4-R0.1.jar:git-Bukkit-03b145b]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [craftbukkit-1.14.4-R0.1.jar:git-Bukkit-03b145b]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]"
I am running 1.14.4
EDIT: After doing some tests it seems to be that players does not get notified about unmute, unpunished etc etc. I am not sure where it goes wrong, but it keeps sending errors to the console, here is an other error:
[12:53:57] [Craft Scheduler Thread - 6/WARN]: [AdvancedBan] Plugin AdvancedBan v2.1.5-RELEASE generated an exception while executing task 26
java.lang.NoClassDefFoundError: net/md_5/bungee/api/ChatColor
at me.leoko.advancedban.Universal.debugToFile(Universal.java:281) ~[?:?]
at me.leoko.advancedban.Universal.debug(Universal.java:256) ~[?:?]
at me.leoko.advancedban.utils.Punishment.delete(Punishment.java:207) ~[?:?]
at me.leoko.advancedban.utils.Punishment.delete(Punishment.java:183) ~[?:?]
at me.leoko.advancedban.manager.CommandManager.lambda$onCommand$0(CommandManager.java:153) ~[?:?]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:77) ~[craftbukkit-1.14.4-R0.1.jar:git-Bukkit-03b145b]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [craftbukkit-1.14.4-R0.1.jar:git-Bukkit-03b145b]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
Please fix thanks
IP Ban is broken:
- I banned my friend as a joke using IP ban, and i had to reinstall the entire plugin to unban him.
- One day i joined and i was banned (i checked console+logs, no player did it) and i had to reinstall to unban.
pls fix thx
server stalls on startup https://hastebin.com/raw/bopibisavi
Iam not able to use tempban,kick,mute,ban,tipban and more. Why?
Good plugin! i use this in my server
Thanks for option to mute reason
Essentials don't have that
This plugin has worked great for me, thanks for the time and effort put in!
I was wondering if there was a way to see old punishments, though. It would be a nice thing to be able to look up.
Such as I do /tempban Diamond_Cat 1d
After it expires, there is no record of the ban in the data.yml or /check, so other staff members will not have a list of previous punishments when they are no longer active.
In reply to Petrichor_Craft:
Great plugin really love it! Really would be useful to for you to add ./alt! Keep up the good work, thanks.
Hello, I wont to insert a permission for this plugin at my staff. Is there a permission which includes all comands for the staff? (es. ab.staff) Thanks.
Hello, I have downloaded the plugin and have already set it. Then I entered the permission from the page in PermissionsEx but then I could not run Befeh. I use Bukkit 1.8.8 (plugin version 10.2 for 1.8) Please help! :) Thx
Is there a way that when I ban someone it says who that person was banned by?
In reply to TheMoltenHusky:
I have decided to leave the Bukkit/Spigot community and therefore I will no longer give support for any plugin.
It was fun for the last 6 years.
Greetz
dutchy1001
I'm just wondering what is the admin permission command I would need to type to give a certain pex group access to only this plugin.
You could give the permission ab.* but then they have everything including some admin permissions that only the owner or head server admin needs.
You can give each permission separate (bit more work but saver) to a group from a list I made here.