TPunish
This plugin is an advanced punishment management plugin for Hytale.
[!NOTE]
This plugin overrides the vanilla /ban, /kick and /unban commands
[!NOTE]
This plugin collects anonymized usage metrics when searching for updates by default.These metrics consist of installed plugin version and selected release channel.
They are immediately aggregated per version and per release channel.
The raw data is never saved.
Your ip address, any sort of identifier, etc. are never processed, stored or evaluated.
To disable this set
doMetricsto false in theconfig.json
Table of contents
Quick Start
- Download the latest release from Curseforge
- Put it in your servers
modsfolder - Start the server to generate an example config
- Edit the config in
mods/Tarobits_Punishments/config.json(See Configuration for more details)
Configuration
| Key | Value | Function | Default |
|---|---|---|---|
| doUpdateChecks | boolean (true/false) | Enable automatic update checks | true |
| updateCheckFrequency | integer | How often update checks are performed (in hours) Set to 0 to disable |
2 |
| doLogging | boolean (true/false) | Enable logging of actions | true |
| doMetrics | boolean (true/false) | Enable anonymized metric collection while fetching updates (pluginVersion, releaseChannel) | true |
| developmentRelease | boolean (true/false) | Change update notifications to development channel | false |
| presets | array of Presets | Presets for the punishments | predefined punishments |
Preset value
| Key | Value | Function | Required |
|---|---|---|---|
| name | string | Name that is displayed to the moderators | always |
| type | enum(ban,mute,kick,warn) | Type of the punishment | always |
| sub_type | enum(temp,perm) or omitted | SubType of the punishment | only when type is ban or mute |
| duration | Duration string | The duration of the punishment | only when sub_type is temp |
| reason | string | Reason displayed to the player when this punishment is given to them | always |
Duration string
Format: (int)(y,m,d,h,min)*?
Examples:
- 12y2m3d4h6min
- 5m
| Key | Function |
|---|---|
| y | years |
| m | months |
| d | days |
| h | hours |
| min | minutes |
[!WARNING]
m is for months not minutes
Features
- Punishment UI
- Player details
- Past punishments
- Punishment presets
- Many different punishment types
- Bans
- Mutes
- Kicks
- Warnings
Planned
- Localization
- Reduction and extension of punishments
- Customization of Duration string parameters
- Customization of display (Including but not limited to:)
- Custom message format (disconnection, chat message, etc.)
- Email format
- In-game appeal process (with optional email support)
- In-game configuration
- Logging of actions performed
- Broadcasted or silent punishments (Currently all punishments are silent)
- Player details
- Chat log
- Database support (primarily for big servers with multiple sub-servers)
Permissions
tpunish.guiOpen the punishment guitpunish.configOpen the in-game config gui and receive update notifications if enabledtpunish.banAccess the/bancommand (Enables access to custom punishments)tpunish.ban.tempCreate temporary banstpunish.ban.permCreate permanent banstpunish.unbanUnban userstpunish.muteAccess the/mutecommand (Enables access to custom punishments)tpunish.mute.tempCreate temporary mutestpunish.mute.permCreate permanent mutestpunish.unmuteUnmute userstpunish.kickKick userstpunish.kick.customAccess to the/kickcommand (Enables access to custom punishments)tpunish.warnWarn userstpunish.warn.customAccess to the/warncommand (Enables access to custom punishments)tpunish.customAccess custom punishments inside the punishment gui (Not implemented)
Command Syntax
[!NOTE]
All parameters shown are required
/punish => Opens the GUI
/tpconfig or /tpc => Opens the config GUI
/tpconfig reload => Reloads config.json
/tpconfig version => Displays current version
/tpconfig checkversion => Checks for updates manually
/ban [player] [duration] [reason] => Ban a player
/mute [player] [duration] [reason] => Mute a player
/kick [player] [reason] => Kick a player
/warn [player] [reason] => Warn a player
/unban [player] => Unban a player
/unmute [player] => Unmute a player
[player] => If the player is online the start of the username is enough. If the player is offline you must type the full username
[duration] => Duration string or perm (for a permanent action)
[reason] => The reason why the action is being performed
End notes
If you'd like to support this project or any of my other ones you may do so with this link.
