Update: - Punishment Bypasses now have priorities. The higher priority number takes precedence when it comes to punishing a player.
Examples:
The banned has a ban bypass and their priority is 5, and the banner has a priority of 10. Even if the banned has a bypass, since the banner has a higher priority, they will still get banned.
The banned has a ban bypass and their priority is 10, and the banner has a priority of 5. Since the banner's priority is lower than the banned, the latter will bypass the punishment.
Set a player or group's priority using permissions.
- custombansplus.bypass.priority.5
- custombansplus.bypass.priority.10
- custombansplus.bypass.priority.200
- custombansplus.bypass.priority.infinite
Op players have "infinite" priority as a default.
Players with no priority set will have 0 priority as a default.
- New bypass permission: custombansplus.bypass.all. Bypasses all punishments.
Patches: - Fixed mutes resetting durations after server restarts.
- Fixed class cast errors for OfflinePlayers.
- Temporarily disabled PlasmoVoice support.
Updates: - Dynamic Gradients introduced. Now you can create gradients in your messages using hexcodes on the spot. See the new messages.yml for more info.
- Message null notifications. The plugin will now tell you when a message key is missing from the messages.yml, allowing you to configure the plugin better.
- More bypasses. The recent bypass update has been improved and now also includes both warns and kicks.
- New Permissions: custombansplus.bypass.ban
custombansplus.bypass.mute
custombansplus.bypass.warn
custombansplus.bypass.kick
Patches:
- Patched Console getting spammed with pardon messages every time a player enters the server.
- Patched history GUI not working correctly when a player was muted by the console.
Patches:
- Patched active mutes not loading correctly on startup.
- Patched "gameProfile is null" errors by pardoning all players from spigot's built-in banlist (Won't be used by the plugin at the moment).
- Updated DiscordSRV integration to be usable in later builds of the said plugin.
Updates:
- New permission: custombansplus.ban/mute.bypass. Players with these permissions will ignore any ban or mute given to them. Defaults to operators. Requires **Vault** in order to work for offline players with this permission.
- New messages in messages.yml: player.bypasses-ban & player.bypasses-mute. Please add these keys to your messages.yml, or regenerate your messages.yml file in order for them to show up.
Patches:
- Patched mute listener not retaining some mutes upon server restart.
Notable Patches:
- Fixed ban GUI yaml config. You should be able to use the GUI now with "/ban <player>".
- Fixed unban command causing errors when attempting to unban a player without any IP set.
Patches: -
Patched some MySQL functions not working properly.
-
Patched player loader malfunctioning when the server has been fully resetted.
-
Fixed Ban Presets button in the CB Menu not working properly.
-
Fixed Ban Preset menu malfunctioning when deleting the last ban preset.
Notable Updates: -
"Severities" have now been changed to "Ban Presets" to have more clarity on its uses.
-
Added a Ban/IP Ban GUI. Banning has never been made easier than giving you the ability to ban with one click. Access this GUI by only typing "/ban <player>" without any other details.
-
Changes Ban Presets from a numbering system to a naming system. You can now call on ban presets by names instead of confusing numbers.
-
Config and Messages yamls cleaned up and added more options to configure. To give users more freedom to customize, both the config.yml and messages.yml have been cleaned up to make room for more configurations, all the while still staying user-friendly with commented out descriptions.
-
Severity announcement messages removed. To avoid redundancy, the severity announcers have been removed, leaving only the "reason" and "without reason" announcers in operation.
Other Updates: -
To accommodate the change from "Severity" to "Ban Preset", command names have changed as well. To view and configure your ban presets, simply do "/bp" in-game. Other aliases: banpresets, banpreset.
-
You may now see the elapsed time since a punishment has been made over at the player history GUI.
-
Updated Spigot API to 1.19.2. -
CBP API Update:Added PrePunishment Events. You may now use these events to check punishment details before they are executed allowing you to cancel them.
-
Offline-Mode Servers: Option to deny other capitalization variations of a username, other than the original, entry to the server.
-
New Ban System now fully utilizes the server ban json files.
Patches: -
Fixed player handling. You should not see the "CPL is null" error anymore.
-
Fixed warn command not working properly when the target is offline. -
Fixed IP Ban Page. New users logging in with a banned IP will now be prompted with the plugin's ban page instead of just "null".
-
Fixed mute system not functioning when an offline player is relieved of their mute.
-
Fixed database throwing an error when you update the plugin to a later version.
-
Fixed delayed warn title not appearing when a player, who was warned while offline, went
Updates: -
Updated Spigot API to 1.19.2. -
CBP API Update: Added PrePunishment Events. You may now use these events to check punishment details before they are executed allowing you to cancel them.
-
Offline-Mode Servers: Option to deny other capitalization variations of a username, other than the original, entry to the server. -
New Ban System now fully utilizes the server ban json files.
Tentative Patches: -
Fixed player handling. You should not see the "CPL is null" error anymore.
-
Fixed warn command not working properly when the target is offline.
-
Fixed IP Ban Page. New users logging in with a banned IP will now be prompted with the plugin's ban page instead of just "null".
Updates: - Added new permission: custombansplus.readsilentannouncements. Players with this permission will now see silent punishments.
- New config option: Forbid muted players to place signs.
- Console can now query for player punishment histories. Contrary to a GUI, it will show the history in text form instead.
- Appended the punished player to the announcements. Any Placeholder from the PlaceholderAPI that uses a player's data can now be used in the announcements using the punished player's data.
Patches: - Fixed report GUI not working properly. - Fixed announcer not showing the staff name in certain conditions. - Fixed MySQL archive table not saving records properly.
Reminder:If you already have data, please back it up before updating! This can easily be done by simple copying and pasting the db file (if you're using SQLite), or creating backup tables in your MySQL schema (if you're using MySQL).
Updates: - Added Custom Color Support. You may now use custom hex codes on all CBP messages (works only for 1.16+).
Patches: - Fixed some player data errors where player data is duplicated when a server is switched from online to offline mode and vice versa.
- Improved overall data saving performance.
Updates: -
Updated GUI Items Logic. This system is faster than previous.
Patches: -
Patched messages having unnecessary prefixes. -
Patched GUI prefixes. -
Patched one more permission that needed "CBP" instead of "custombansplus".
Updates: -
Updated the messages.yml and almost ALL messages to be editable.
-
Added a prefix option if you want a prefix for all CBP messages.
-
Added a string/list message support. This means if you want a line break in your message, you may add "/n" to your string OR create a list instead, similar to the page message config.
Patches: -
Fixed permissions that required to start with "CBP" instead of "custombansplus". -
Fixed messages not formatting properly.
Patches: -
Fixed kick command not working properly.
-
Fixed the soon-to-be-unsupported PaperMC issue. -
Relocated the GUI Prefix title to messages.yml as well as fixed some GUIs not showing it.
Updates: -
Added ability to delete history records. Press your drop button over the record in
/history player to delete that record.
-
New permission: custombansplus.history.delete
Patches: -
Patched ban command when banning a player not in the database yet.
Updates: -
Added player detection and automatic logging for when a player who have already played before is banned.
Patches: -
Fixed readannouncements permission not working half of the time.
-
Fixed plugin not starting up correctly when a player's data cannot be found.
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 to see all new additions.
Patches: -
Fixed bug where plugin could not open when a ban made by the CONSOLE is read. -
Staff involved's username now shows up in histories and DiscordSRV Alerts instead of their UUIDs.
An
API has been added into the plugin. It currently only has a few methods for now, but it will be improved upon as the plugin develops.
Patches: -
Temporarily removed Table Validation as this feature has been causing issues MySQL Databases.
-
Fixed the message error that appears when a player logs in with the same UUID that is currently logged into the database.
Updates: -
You can now teleport to the locations where the report has been submitted. -
You may now setup a Report Alert Message in the DiscordSRV. The templates in the wiki have also been updated as such.
Patches: -
Fixed a bug where the plugin crashes at certain instances when loading a ban made by the console. -
Major Player-handling Rework. Searching through player data will now be in constant time, no matter how big your player count will be.
Patches: -
Patched messages not working properly with the PlaceholderAPI. -
Added a fail-safe program for when an error occurs while trying to parse a CBP Placeholder. -
Fixed "Days" string. The "Days" in the worded out duration will now properly show the plural form of "Day".
Updates: -
Added PlaceholderAPI compatibility! Almost all messages can now read PlaceholderAPI placeholders.
-
CBP placeholders for PlaceholderAPI have also been added. See the CBP Wiki for more info.
Patches: -
Patched mute and ban data loading incorrectly. It now loads the proper staff names and UUIDs.
Further code cleanups and optimizations, as well as preparations for custom events in next updates.
Updates: -
Banlist now has a new look and is more generalized. -
Added new message config for the worded-out durations (second, seconds, minute, minutes, etc.).
Patches: -
Patched banlist not working properly. -
Patched permanent bans not working on some cases.
Code cleanups were also made, optimizing the plugin more.
Updates: - You can now word out durations. Turn your "1d2h" into "1 Day and 2 hours."
- Revamped GUI Menus. The plugin's GUIs will now run smoother than ever before.
- Automatic simplification of durations. Your "65m5m60s25h" will now turn to "1d2h11m."
- Archived Reports. Archiving of reports is now possible, no need to delete them forever.
- New configuration:
Code (YAML):
# 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
- New permissions:
custombansplus.reports.archive.view
custombansplus.reports.archive.edit
Reworks: - Replaced the "custombansplus.reports" permission requirement to be able to view reports to
"custombansplus.reports.view." - Replaced DB date format from seconds to milliseconds. All dates made prior to this update will now look wonky.
Updates: -
Added DiscordSRV support for both simple message announcements and alert messages. Check out the
CBP Wiki DiscordSRV Setup Guide for more details
here.
Updates: -
New Configuration: whisper-commands. Muting a player used to only stop them from chatting, not from commands. Now you may input your server's whisper commands so that your muted players aren't able to use them.
-
Added a notice message when a player attempts to ban or mute someone without a limit permission set.
Patches: -
Mute command now uses it's own limit permission. It used to use ban's limit permission.
Updates: -
New Permission: custombansplus.readmuted. Allows players with this permission to see messages that muted players attempted to send.
-
You can now warn offline players. They will receive the warn notification the next time they log in the server.
-
New configuration: console-name. You are now able to change the display name of your console, instead of the default "CONSOLE."
Patches: -
Relocated Reports data from yaml to SQL. It now has its very own table in the database.
-
Added fail-safe protocols for when your database's formats are tampered or corrupted. The plugin will now attempt to backup your old table and create a new one once it detects they've been tweaked.
-
Changed the MySQL key name in the config.yml from "sql" to "mysql" to avoid confusion.
Patches: -
Offline CI did not function properly in cracked servers in some cases, optimized.
-
Under-the-hood fixes. Now your console won't be nagging me anymore
Updates: -
Plugin updated to be compatible with Spigot 1.17. -
Added Kick All Command. "/kick
@all" will kick every player in the server except you. To add exempted players, simply add their usernames after the command, such as "/kick
@all player1 player2".
-
New Permission "custombansplus.kick.all", required for the kick all command.
-
Added new MySQL client option in the config.yml, "allowPublicKeyRetrieval".
Patches: -
Player Status Checking improved to fix Cross-Server Integration bugs.
Updates: - More MySQL Options. Added the following options to the MySQL Configuration:
- Ability to designate database and name.
- Ability to enable SSL Usage on and off.
- Inserted "cbp_" to every MySQL table name for better organization. - Replaced page formats from a one-liner layout to a list layout. See examples in the new messages.yml default file.
Patches: - Patched ban lifts disabling the plugin on startup in certain cases. - Patched message.yml config not being saved properly when using the GUI to edit them.
Updates: - /hist command now requires the permission "custombansplus.history.players" instead of "custombansplus.ban". - Added Staff History Command. You can now see all punishments given or updated by that player by doing /staffhist <player>. Requires the "custombansplus.history.staff" to use.
- Added automatic ban lifts. All bans now have sleeping threads that counts down to their unban date.
- Added new config options. Added console logging for newly lifted bans and mutes.
Patches: - Patched /hist command not functioning properly in certain cases. - Patched messages that did not parse color codes properly.
Updates: - Messages have been migrated to it's own "messages.yml" and is no longer in the config.yml. The plugin will create a new messages.yml in the data folder, and you may delete and copy paste the messages in your config.yml to the messages.yml.
- Expanded Permission Options. New Permissions:
Patches: - Added AuthMe compatibility for offline CI (Cracked Servers). - Patched announcers only showing up for op players. - Patched banlist next and previous pages not working properly. - Temporarily removed GUI Glass Panes. Some versions have different namespaced IDs for panes, thus giving an error everytime a GUI is called. This is temporarily removed for this version before we make it compatible to all versions in the next update.
A
Setup Guide has been created to better help you set up your staff members' permissions. You may access it by clicking
here.
Updates: - Severity Aliases. You may now add aliases to severities. After setting an alias, you may directly use it as a value. You may configure this in the severities GUI.
Ex. /ban username alias reason (/ban Coralise xray Xraying.)
- Banlist. Added /banlist command. You need the "custombansplus.ban" permission to access it.
- New permission: custombansplus.login.notify.banned. Players with this permission will be notified when a player joins the server with banned alts.
Patches: - Patched first time join bug. The plugin did not store player data properly upon their first login to the server. This is now fixed.
- Fixed Perm Bans not being stored properly at times.
IMPORTANT NOTE: If you have the previous version (v3.3.0) installed, you
must update the players and active_bans table of your MySql/SQLite database from
NOT NULL to
NULL or
NULLABLE.
Local Version now uses SQLite for better performance, usability, convenience, and support for future updates and changes.
Updates: - Added Forced Severity Reason Option. You may now toggle if you wish to always use the specified preset severity reason, regardless what the sender inputs as their reason for the punishment. This option can be found in the config.yml as force-severity-reason.
-
Added Staff Updater in histories for the Local Version. Just like the MySql Version, you can now check who tampered with punishment statuses by going to the history GUI.
Patches: -
Patched ban command incompatibility with dynamic player data. The plugin is now flexible when it comes to UUID changes. This is rarely the case for 90% of servers, but the added support and protection is still better than none at all.
- Patched non-admin severity list being able to access admin actions. Staff members without the custombansplus.admin permission could still access the admin GUI by doing /sev and "Back to Main Menu". This issue is now fixed.
- Minor Report Patches. Slightly tweaked the report function for better performance.
Updates: - Added reports notify on player join. Players with the reports.notify permission will now receive a message that there are unresolved reports upon joining.
Patches: - Fixed Kick Command not executing in the Local Version. - Fixed Mute Command not executing in the SQL Version.
Fixed /hist Command for local version not displaying properly.
Added Warn Count Option. You can now add what would happen if a player has reached x number of warns. This can be configured in the config.yml.
Code (YAML):
# Add as many warn checkers as you want. # Format: %player% warn:
1:
warn-count: 3
console-commands: - eco take
%player% 500 - kick
%player% Reached 3 warns. 2:
warn-count: 5
console-commands: - ban
%player% s1 Reached 5 warns.
Code (YAML):
#SQL CONFIGURATION - You may setup your Sql Database here. sql:
enable: false
host:
port:
user:
pass: cache: # Data saves when N number of new players join. save-at: 100
# Sends a notif message to admins when cache is being stored. notify-save: false
# ENCLOSE MESSAGES IN QUOTATIONS # Formats: %staff% %duration% %reason% %unban-date% %player% %timeleft% /n pages:
tempban: "&c&lYou have been banned!/n/n&f You have been banned by &e&l%staff%&f for &e&l%duration% /n&f for the reason: /n &c%reason% /n/n&f Time remaining: %timeleft%" permban: "&c&lYou have been banned!/n/n&f You have been permanently banned by &e&l%staff% /n&f for the reason: /n &c%reason%" kick: "&c&lYou have been kicked!/n/n&f You have been kicked by &e&l%staff% /n&f for the reason: /n &c%reason%"
# 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
# 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" defaults:
reason: Struck by the Hammer!
mute-reason: The Mute Mallet has spoken!
warn-reason: You have been warned!
messages: # 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%"
# Add as many warn checkers as you want. # Format: %player% warn:
1:
warn-count: 3
console-commands: - eco take
%player% 500 - kick
%player% Reached 3 warns. 2:
warn-count: 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." 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
Further Optimizations in the Severity System Algorithm. Fixed Non-Admin Severity List not working correctly.
Added Features:
Added a Fixed Reason Option for severities. When a reason is created, the plugin will use that reason. You may configure it by navigating through the severity list.
Added a Fixed Balance Deduction Option for severities. You may now choose if you wish to make the automated deduction by percentage, or by fixed amount (i.e. 50%, 25.5%, $1000, or $250.5).
NOTE: If you have previous CBP versions installed, you will need to reconfigure your balance deduction values for the plugin to read it correctly.
Patched Permanent Ban Duration not working on both SQL and Local versions.
Added Severity Announcers that includes the severity number.
New configurations for the Severity announcers added.
Code (YAML):
#SQL CONFIGURATION - You may setup your Sql Database here. sql:
enable: false
host:
port:
user:
pass: cache: # Data saves when N number of new players join. save-at: 100
# Sends a notif message to admins when cache is being stored. notify-save: false
# ENCLOSE MESSAGES IN QUOTATIONS # Formats: %staff% %duration% %reason% %unban-date% %player% %timeleft% /n pages:
tempban: "&c&lYou have been banned!/n/n&f You have been banned by &e&l%staff%&f for &e&l%duration% /n&f for the reason: /n &c%reason% /n/n&f Time remaining: %timeleft%" permban: "&c&lYou have been banned!/n/n&f You have been permanently banned by &e&l%staff% /n&f for the reason: /n &c%reason%" kick: "&c&lYou have been kicked!/n/n&f You have been kicked by &e&l%staff% /n&f for the reason: /n &c%reason%"
# 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
# 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" defaults:
reason: Struck by the Hammer!
mute-reason: The Mute Mallet has spoken!
warn-reason: You have been warned!
messages:
muted-player: "&cYou are muted!" 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%"
# 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." 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
Code Optimizations that improves the report command performance.
Config File Cleanup The config.yml file is now easier to read and understand.
Code (YAML):
#SQL CONFIGURATION - You may setup your Sql Database here. sql:
enable: false
host:
port:
user:
pass: cache: # Data saves when N number of new players join. save-at: 100
# Sends a notif message to admins when cache is being stored. notify-save: false
# ENCLOSE MESSAGES IN QUOTATIONS # Formats: %staff% %duration% %reason% %unban-date% %player% %timeleft% /n pages:
tempban: "&c&lYou have been banned!/n/n&f You have been banned by &e&l%staff%&f for &e&l%duration% /n&f for the reason: /n &c%reason% /n/n&f Time remaining: %timeleft%" permban: "&c&lYou have been banned!/n/n&f You have been permanently banned by &e&l%staff% /n&f for the reason: /n &c%reason%" kick: "&c&lYou have been kicked!/n/n&f You have been kicked by &e&l%staff% /n&f for the reason: /n &c%reason%"
# 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
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%" defaults:
reason: Struck by the Hammer!
mute-reason: The Mute Mallet has spoken!
warn-reason: You have been warned!
messages:
muted-player: "&cYou are muted!" 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%"
# 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." 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
All updates in this version are available for the local version only. The SQL version will be updated in the future.
Added a Report Feature where players can report other players, which notifies the staff team. Staff members can do /report list to see all reports made by players.
Added Commands (Local Version only):
- /cb reload - reloads the config file.
- /report <player> <report> - Reports the player and notifies the staff team.
- /reports show <player> - Opens a GUI containing all reports made towards the player.
- /reports list - Opens a GUI listing all reports that are made.
- /reports blacklist <add/remove> <player> - Adds or removes player from the reports blacklist, disabling them from using the command.
Code (YAML):
# Formats: %reporter% %reported% %report% report-messages:
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." staff-notify: "&a%reporter% has submitted a report against %reported%! Do /reports show %reported% to look into it. Report: %report%"
Code (YAML):
# Permission to use the /report command custombansplus.report:
default: true
# Permission to use the /reports command custombansplus.reports:
default: op
# Notifies the user/group of any reports made in game. custombansplus.reports.notify:
default: op
Complete Under-the-Hood Reworks that doubles the previous versions' performance, optimizations, and speed, which doubles as a foundation for future updates, improvements, and features.
Optimized the plugin's threading, making it almost completely async that gives little to no impact on your server's performance.
Updates:
IP Ban announcer has been split into two: Temp Ban and Perm Ban Announcers.
If you have a previous version of the plugin, please relocate the config.yml to generate a new one, or simply add this to your existing config.yml file:
Code (YAML): -- Please add "temp" to the current "ipban-announcer" config. tempipban-announcer: "&c&l%player%&f has been ip banned by &e&l%staff%&f for &c&l%duration%&f for: &c%reason%"
permipban-announcer: "&c&l%player%&f has been permanently ip banned by &e&l%staff%&f for: &c%reason%"
tempipbanNoRsn-announcer: "&c&l%player%&f has been ip banned by &e&l%staff%&f for &c&l%duration%"
permipbanNoRsn-announcer: "&c&l%player%&f has been permanently ip banned by &e&l%staff%"
Added "Toggle Update Notifications" option in the config.yml, as well as the update interval. See below for further detail.
Fixed multi-line compatibility issues, everything should be functional now.
Adjusted the existing GUI ban announcer to a Temp Ban Announcer.
You may relocate the config.yml to somewhere else for the newly updated config.yml to be created, or you may paste the configurations below to the end of your config.yml file:
Code (YAML):
# Set to true if you want op players to receive plugin update notifications. toggle-update-notifs: true
# Set intervals of when to check for updates. Follows the same duration patterns (Xs, Xm, Xh, Xd). update-interval: 3h
Ban announcer has been split into two: Temp Ban and Perm Ban Announcers.
Added no reason option and all announcers' no reason counterparts. When enabled, if you don't put any reason, the default reasons won't be used and the reason will remain blank. The no reason announcers will then be used.
Configurations for the updates stated above can be seen in the config.yml.
Denied /ban if the player is already IP banned on both versions (only applied to the MySql version before).
Added compatibility for multiple time durations (i.e. 2d3h30m).
Performance Improvements and Code Optimizations.
Bug Fixes:
Fixed unban and unmute announcers not showing properly in the local version.
Fixed default reasons not properly used on both versions.
NOTE: If you have the previous version installed, you may need to delete or save the config.yml somewhere so that the new config.yml file will be created.
BIGGEST UPDATE YET! - Implemented MySQL Database Compatibility! - More announcers (unban, unmute) customizations added. - Added Title and Subtitle Notifications when you use /warn (Can be toggled on or off in config) - /unmute now has its own permission (custombansplus.unmute)
NOTE: As of this version, all newly added configurations are present only in the config.yml as of now. Will be implemented to the GUI in future updates.
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. 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.
Implemented
caching, which significantly decreases reading time for huge data.
Patched severity values not working on IP Bans; now applies to every player.
Bans and mutes now implement the player's UUID instead of their names.
More Performance Improvements
Patches:
GUIs now allow multiple users to access.
Patched editing showing errors when multiple users are editing.
Updates:
New /hist <player> GUI. Access by doing /hist <player>.
New Miscellaneous GUI. Access by doing /cb menu -> Miscellaneous.
Moved Console Commands to separate lores to avoid long descriptions.
Multiple Performance Improvements
Patches:
Fixed cancel option - now actually cancels the action.
Updates:
Added ability to edit announcers in the CBP Main Menu; access by doing /cb menu -> Edit Announcers.