Custom Bans Plus | Fully Customizable Ban Manager

Custom Bans Plus is an all-in-one Ban Management plugin with all the features you need in a ban manager and more. It has a completely customizable system that gives users the freedom of how they want their appearance to look as part of their server's overall aesthetics. The plugin also has a unique* feature, which makes organizing your server's protocols and procedures way easier.
 
Has 2 versions:
MySQL Database
Local (YAML)
 
 
 
v3.3.17 QoL Updates and Patches
Updates:
- Added PlasmoVoice Support. Muting a player will now also mute them from the PlasmoVoice voice chat.
- Added bans to the Bukkit Banlist. This may allow other plugins to recognize a ban through the Bukkit Banlist system.
- Added Unwarn Command. /unwarn <player> will revoke their latest warn. Required permission: custombansplus.unwarn
- New config: default-punishments-to-permanent. Setting this config to true will default punishments with durations to permanent if no value or an invalid value is specified.
- Added "and" config for the word out duration feature.

Patches:
- Fixed bans not lifting on server startup.
- Fixed Tab Complete showing up for all players even if they did not have the required permission.
- Patched Severity Aliases and Fixed Reasons not saving correctly.
- Patched players not loading correctly on server startup.

Check out the latest config.yml below to see all new additions.
 
Setup Guide has been created to better help you set up your staff members' permissions. You may access it by clicking here.

 New config.yml:

#MYSQL CONFIGURATION - You may setup your MySql Database here.
# You may delete the .db file if you use this version.
mysql:
  enable: false
  host:
  port:
  user:
  pass:
  database-name: "custombansplus"
  useSSL: false
  allowPublicKeyRetrieval: false



Database:
  Validate-Tables: true



# Changes the display name of your console. For example, when you ban a player using the console, it'll substitute, save, and display the name below instead of just "CONSOLE."
console-name: "The Great Console"



# Note: If both are set to false, the plugin will default to interval saving at a 15 minute duration.
cache:
  # Sends a notif message to admins when cache is being stored.
  notify-save: false
  # Data saves when N number of new players join.
  fixed-amount:
    enable: true
    save-at: 100
  # Data saves every N duration.
  intervals:
    enable: true
    save-at: 15m



# Set to true if you want to use punishments without reason, and false if you want to use the default reasons if reason is blank.
toggle-no-reason: false
# Set to true if you want to force use the preset severity reason regardless if the sender inputted their own reason or not.
force-severity-reason: false
# Set to true if you want punishments with durations to default to permanent if no value or an invalid value is specified.
# "/ban [-s] <player> <reason>" would default to permanent.
default-punishments-to-permanent: false



# Add as many warn checkers as you want.
# Order of commands executed is top to bottom.
# Format: %player%
warn:
  3:
    console-commands:
    - eco take %player% 500
    - kick %player% Reached 3 warns.
  5:
    console-commands:
    - ban %player% s1 Reached 5 warns.



# Set enable-warn-titles to true if you want titles to appear on your warns.
warn-title:
  enable: true
  warn-title: "&c&lYou have been warned!"
  # Set to true if you want the warn reason as the subtitle.
  custom-subtitle: false
  warn-subtitle: "§fYou've been warned! Check your chat."



# Input your server's whisper or communication commands. A muted player will not be able to use these commands.
whisper-commands:
  - "tell"
  - "whisper"
  - "w"
  - "msg"
  - "localchat"
  - "lc"
  - "factionchat"
  - "fc"



# Set to true if you want your durations to be worded out (e.g. 2d -> 2 Days or 3d2h30m -> 3 Days, 2 Hours, and 30 Minutes).
word-out-durations:
  announcers: true
  pages: true
  time-remaining: false

  

updates:
  # Set to true if you want op players to receive plugin update notifications.
  notify: true
  # Set intervals of when to check for updates. Follows the same duration patterns (Xs, Xm, Xh, Xd).
  interval: 3h



# Logs to the console when a ban or mute has been lifted (i.e. served their sentences).
log:
  ban-lifts: false
  mute-lifts: false



GUI:
  title-prefix: "&4CBP &r"



PlasmoVoice:
  Mute-Voice-On-Mute: true
messages.yml:
# ALWAYS ENCLOSE MESSAGES IN QUOTATIONS

silent-prefix: "&a&lSilent: &r"
severity-alias-error: "&cAlias &f%alias% &calready exists for Severity No. %sevnum%. Ignoring this alias."
player-instance-warning: "&eWarning: &cPlayer %username% has never entered the server prior to the plugin's first installment. The player will be saved, but will currently not have an IP. Action will continue as usual."
duration-accepted-values: "&eAccepted values: &dperm or Xd Xh Xm Xs (You may combine them, i.e. 1d6h30m)\n&eEnter new duration:"
balance-reduction-accepted-values: "&eAccepted values: &dRational Numbers and Percentages\n&eEnter new Balance Deduction Value:"
console-cmds-desc: "&eCommand without /. Separate each with comma (commandx,commandy). Enter player as \"&d%player%&e\" (reset %player%). Enter \"clear\" to clear commands. Type \"cancel\" to cancel action.\n&eEnter new Console Commands:"
alias-desc: "&eEnter new severity aliases. Separate each with comma (alias1,alias2). Enter \"clear\" to clear aliases. Type \"cancel\" to cancel action."
severity-fixed-reason-desc: "&eEnter new Fixed Reason. Enter &dcancel&e to cancel action."

# MessageFormats: %staff% %duration% %reason% %unban-date% %player% %timeleft% /n
pages:
  tempban:
  - "&c&lYou have been banned!"
  - ""
  - "&f You have been banned by &e&l%staff%&f for &e&l%duration%"
  - "&f for the reason:"
  - "&c%reason%"
  - ""
  - "&fTime remaining: %timeleft%"

  permban:
  - "&c&lYou have been banned!"
  - ""
  - "&f You have been permanently banned by &e&l%staff%"
  - "&f for the reason:"
  - "&c%reason%"

  kick:
  - "&c&lYou have been kicked!"
  - ""
  - "&f You have been kicked by &e&l%staff%"
  - "&f for the reason:"
  - "&c%reason%"

# Formats: %staff% %duration% %reason% %unban-date% %player% %timeleft% /n
announcers:
  tempban: "&c&l%player%&f has been banned by &e&l%staff%&f for &c&l%duration%&f for: &c%reason%"
  permban: "&c&l%player%&f has been &c&lPermanently Banned&f by &e&l%staff%&f for: &c%reason%"
  tempipban: "&c&l%player%&f has been ip banned by &e&l%staff%&f for &c&l%duration%&f for: &c%reason%"
  permipban: "&c&l%player%&f has been permanently ip banned by &e&l%staff%&f for: &c%reason%"
  kick: "&c&l%player%&f has been kicked by &e&l%staff%&f for: &c%reason%"
  warn: "&c&l%player%&f has been warned by &e&l%staff%&f for: &c%reason%"
  mute: "&c&l%player%&f has been muted by &e&l%staff%&f for &c&l%duration%&f for: &c%reason%"
  unban: "&e&l%staff%&f unbanned &c&l%player%."
  unmute: "&e&l%staff%&f unmuted &c&l%player%."
  tempbanNoRsn: "&c&l%player%&f has been banned by &e&l%staff%&f for &c&l%duration%"
  permbanNoRsn: "&c&l%player%&f has been &c&lPermanently Banned&f by &e&l%staff%&f"
  tempipbanNoRsn: "&c&l%player%&f has been ip banned by &e&l%staff%&f for &c&l%duration%"
  permipbanNoRsn: "&c&l%player%&f has been permanently ip banned by &e&l%staff%"
  kickNoRsn: "&c&l%player%&f has been kicked by &e&l%staff%"
  warnNoRsn: "&c&l%player%&f has been warned by &e&l%staff%"
  muteNoRsn: "&c&l%player%&f has been muted by &e&l%staff%&f for &c&l%duration%"
  # Severity Number Format: %sevnum%
  severity:
    tempban: "&c&l%player%&f has been banned by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f for: &c%reason%"
    permban: "&c&l%player%&f has been &c&lPermanently Banned&f by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f for: &c%reason%"
    tempipban: "&c&l%player%&f has been ip banned by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f for: &c%reason%"
    permipban: "&c&l%player%&f has been permanently ip banned by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f for: &c%reason%"
    tempbanNoRsn: "&c&l%player%&f has been banned by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f"
    permbanNoRsn: "&c&l%player%&f has been &c&lPermanently Banned&f by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f"
    tempipbanNoRsn: "&c&l%player%&f has been ip banned by &e&l%staff%&f with &eSeverity &f#&c&l%sevnum%&f"
    permipbanNoRsn: "&c&l%player%&f has been permanently ip banned by &e&l%staff% with &eSeverity &f#&c&l%sevnum%&f"

# Format: %timeleft%
muted-player: "&cYou are muted! Time remaining: &f%timeleft%"
unmuted-message: "&aYou are now unmuted."

report:
  report-successful: "&aReport successful! The staff team has been notified of your report, please expect a response soon."
  blacklisted-message: "&cYou are blacklisted from using the report command."
  # Formats: %reporter% %reported% %report%
  staff-notify: "&a%reporter% has submitted a report against %reported%! Do /reports show %reported% to look into it. Report: %report%"

defaults:
  reason: Struck by the Ban Hammer!
  mute-reason: The Mute Mallet has spoken!
  warn-reason: You have been warned!
CROSS-SERVER INTEGRATION (EXPERIMENTAL)
If you use the MySQL Database version of the plugin, you may connect two or more servers to the same database and be able to transfer over existing bans, mutes, and histories to each other.
 
Note that if you ban or kick a player from another server, they won't be kicked from the server. You have to execute the punish in the server they're in. I suggest you use this feature in your lobby servers, or generally in any server that the player can enter to directly.
 
Still prone to bug errors, as it is still in its experimental phase. If you catch any, feel free to report them on our discord channel.
Video Showcase
GENERALS:
  • Ban a player.
  • IP Ban a player.
  • Kick a player.
  • Mute a player.
  • Warn a player.
  • [-s] option to punish a player silently (all punishments above + unban and unmute).
  • Check a player's Alternate Account History based on their IPs.
HIGHLIGHTS:
  • Fully Customizable Temp Ban, Perm Ban, and Kick pages.
  • Fully Customizable announcers.
  • You may customize the above either through the config.yml file or in-game.
  • All Commands come with an easy Tab Completion method.
  • User-friendly GUI for most important commands.
  • Severity system for punishment organization.
  • Super easy setup.
  • Report Function. A Report Feature where players can report other players, which notifies the staff team. Staff members can do /report list to see all submitted reports.
  • Premium or Cracked Server Compatibility.
This unique feature that the plugin has gives the server's staff team the ease of penalizing cheaters with only one command.
Say you got a punishment stating that the player will be banned and have their balance deducted; You would have to execute two or more commands to finish punishing a single player. If you got helpers who don't have the permissions for such commands, they would need to wait for a higher staff member to finish the job, making staff activities redundant. Well, this system solves that problem.
severity is a type of ban that can have other commands integrated into it, like, for instance, an automatic balance reduction of a player's economy or an automatic clear of their inventory. Each severity has a fixed ban duration (temporary or permanent) depending on how you want them set up.
Severity List GUI:

With the pre-set commands within a severity, staff members can now effortlessly punish cheaters all in one command, allowing you to easily organize your punishments.
 
 
~Fully customizable ban page and announcers, easy, simple, and readable GUI.
Softdependencies:
The plugin needs Vault plugin for the balance deduction (entirely optional).
Installation:
  1. Download the jar file from the links below.
  2. Place the jar file in your plugins folder.
  3. You're all set!

v3.2.10 and below:
At the first launch, the plugin will only create a config.yml and disables itself. In there, you can toggle and input your SQL Database (optional), as well as configure any in-game messages you want.
Restart the server to continue its installation. Remember to save config.yml if you did any changes.

 

Click here to download plugin versions that are compatible with older MC versions.

For more information, you may check the CBP Wiki here.
Care to treat me to a cup of coffee? Here are the donate buttons. :giggle:
USD - EUR - PHP
NEXT UPDATE:
Report Function!
Ask me for suggestions!
You may contact me regarding all of my plugin-related issues, concerns, and suggestions by joining our discord or direct messaging me, Kyuri#7901. See you there!
Thank you for using my plugin, please leave a rating if you can, it'll be enough to make my lil' heart happy :giggle:
Be sure to follow to keep up to date with more posts!
Terms of Service:
* You may not sell/resell the plugin to any individual without my (the developer's) permission.
* You may not redistribute this product.
* I claim the right to terminate your license, at any point and for any reason.
* You may decompile the jar purely, only for development purposes.
* This TOS can and may be changed at absolutely any point without prior notice.

Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

Categories

Members

Recent Files