Punishments++ is an easy to use punishment plugin to help keep your playerbase in line. With help of the GUIs you can navigate the plugin easily. The plugin supports minecraft versions 1.8-1.19 (although only 1.8 and 1.19 have been tested explicitly as of right now)
Features
Ban, ip-ban, mute or warn players
Set duration and reason for punishment
Lift punishments of players with a reason
View the punishment history of a player
Edit previously assigned punishments by changing the duration, lifting, or deleting the punishment
View the staff history of a staff member
Rollback changes a staff member made
Localizations to easily setup your own custom messages
Intuitive GUI support for staff members
Support for online MySQL databases and local H2 databases
Support for minecraft versions between 1.8 and 1.19
(Note that player bans do NOT automatically update across multiple servers linked to the same MySQL database as of version 1.0)
Screenshots and GIFs
Commands
/ban <Player> <Duration> <Reason>: Bans a player for a given duration and with a certain reason. (Duration syntax is located at the bottom of this resource) Whenever this command is executed with the first argument only, the plugin opens up a GUI to ban said player.
/mute, /ipban, /warn: Same syntax as /ban.
/unban <Player> <Reason>: Lifts all bans on the given player with the given reason.
/unmute, /unipban, /unwarn: Same syntax as /unban.
/punishmenthistory (/ph or /history) <Player>: Opens up the punishment history GUI for a player. If no player argument is specified, it opens up the executors own punishment history instead.
/profile (/playerprofile or /pp) <Player>: Opens up the profile GUI for a player.
/rollbackstaffchanges (/rbsc) <Player> <Duration>: Rolls back all the actions this staff member performed during the last given duration. If not duration is specified, it rolls back the entire staff history of this staff member. Warning: this action cannot be undone!
/staffhistory (/sh) <Player>: Opens up the staff history GUI for a given staff member.
Permissions
punishmentsplusplus.*: Grants permission to everything in the plugin.
punishmentsplusplus.punish.*: Grants permission to all punishment types.
punishmentsplusplus.punish.ban, punishmentsplusplus.punish.mute, punishmentsplusplus.punish.ipban, punishmentsplusplus.punish.warn: Grants permission only to their respective punishment type.
punishmentsplusplus.punishmenthistory.*: Grants permission to view and edit the punishment history for any given player.
punishmentsplusplus.punishmenthistory.self: Grants permission to view one's own punishment history.
punishmentsplusplus.punishmenthistory.others: Grants permission to view the punishment history of other players.
punishmentsplusplus.punishmenthistory.edit: Grants permission to edit anyone's punishment history.
punishmentsplusplus.staffhistory.*: Grants permission to view and edit the staff history for any given player.
punishmentsplusplus.staffhistory.self: Grants permission to view one's own staff history.
punishmentsplusplus.staffhistory.others: Grants permission to view the staff history of other players.
punishmentsplusplus.staffhistory.edit: Grants permission to edit anyone's staff history.
Config and MySQL
The config file in this plugin requires you to specify your database type. This can be any of these two: MySQL and H2. The plugin automatically defaults to H2, and therefore no prior setup is required to setup the plugins database. However, if you want to connect your database to an online MySQL database (for e.g. cross-server compatibility reasons) you can specify your database details in the config to enable the plugin to connect to it. Lastly you can enable debug stacktraces, this is only recommended whenever you want to report an error.
Code (YAML):
#H2 or MySQL database_type: H2
#Prints the error stacktrace whenever an error is thrown enable_debug_stacktrace: false
In the localizations.yml file you can easily change plugin messages to suit your server better. Minecraft color codes are supported (e.g. &6 or &c) however custom hex codes are not.
Duration syntax
In some parts of this plugin you will need to specify a duration. (e.g. when specifying an expiration date for a punishment) The syntax for it is as follows: Every time unit is characterized by a single character: y for years, M for months, w for weeks, d for days, h for hours, m for minutes and s for seconds. You can write the amount of the specified time unit before you write the character. A few examples of valid durations: 8d19h20m7s: 8 days, 19 hours, 20 minutes and 7 seconds 1y8M3d: 1 year, 8 months and 3 days 2y6m: 2 years and 6 minutes (watch the capitalization on the m!)