Prison Documents - Table of Contents
This document provides some important information on how to find help in setting up your prison server, and ultimately, how and where to ask for help.
Documented updated: 2021-12-03
If you are having problem, please take a quick look at the following documents as found in the Table of Contents:
Before you actually ask for help, take a look at some of the documents presented here. You may find your answer, or at least become a little more familiar with Prison. There is a good chance that if your question is a common one, then you will just be referred to this documentation anyway.
When you do ask for help, please realize if you can provide a clear description of the problems you are experiencing, plus the versions of Prison, Spigot, etc, then we can help you faster and more accurately. To help provide you with answers to these questions, see the next section of this document for information on what you can copy and paste to provide all those much needed details.
Prison has a very advanced command handler that provides a lot of advance features. But one simple feature to know about and to use is the use of the ‘help’ keyword.
If you add ‘help’ to any command within prison, prison’s command handler will show you information on what the command is, how to use it, parameters, how to get more help and details, and also what permissions are needed to use the command.
Prison automatically inserts the help keyword if you enter the base commands. So the command /mines is really the command handler recognizing there are many commands tied to the path ‘/mines’ that it automatically injects the help keyword for you so it will generate the list. It’s exactly the same as if you’ve entered /mines help.
All of the commands for Prison can be ran in-game, and most can be ran from the console. When running commands from the console, you do not have to prefix the commands with a /. But within these documents, all commands will be referenced with a prefixed / so it is clear that it’s a command. Just don’t include it when running within the console.
My (Blue) personal preference is to run the commands from the console since there are less restrictions on width or number of lines shown, and they are easier to see without the busy background of the game.
Within most of these documents, the console will be used for screen prints for those reasons.
The only commands that cannot be ran from the console are the commands that expect you to be an in-game player. Examples are /mines whereami and **/mines tp
If you need to do some maintenance, or configurating of your Prison, the console could be an easier environment to use.
But in-game, some commands have clickable actions such as page next or page prior. Or even command completion, such as with /mines block search and clicking on a search result provides you with a filled in copy of /mines block add where all you need to do is just fill in the percentage since it uses the last mine name that has been used.
It may be helpful to know what commands are available, and what options exist for those commands.
Prison’s command handler not only understands what commands have been registered within Prison, but it has awareness of what parameters are needed, and what permissions some commands are required. The command handler is able to provide a lot of information if you know a few basic things.
Prison’s commands are based upon a hierarchy of commands, which groups them by context. If you enter a lower command in the hierarchy that includes sub commands, then Prison will list them. This is a great way to explore what commands are available within Prison.
The best starting point is with the root command
/prison. Not only is that the root command for everything that starts with
/prison, but it has special behavior in that it also includes all other command roots. So if a command exists in prison, you can find it through starting with
/prison and exploring their children.
Some of the root commands that are important to know:
Many commands within prison are compound commands, such that they start with a base command, followed by one or more other commands. When Prison lists the available commands, if there are sub commands, that information is included in the command listing, including the sub command count. For example:
If for a given set of commands, such as /mines set, has sub commands, then Prison will present a listing of all sub commands and their parameters.
In this screen print, you can see the hierarchy of /mines and /mines set. The parameter listing is helpful, but it does not provide all the information that is available.
Let’s take a closer look at /mines set notification and how the help keyword can provide a lot more meaningful details. If you just enter that command, without any parameters, Prison reports an error message, depending upon which parameter failed. See the next screen print and the related Error message. It’s not helpful in the least, especially if you are not certain what each parameter is supposed to be.
But notice within the above screen print, the same command has been entered, but this time with the keyword help added as if it were the first parameter. For example, /mines set notification help. Prison recognizes that you are requesting help for that command, and then it displays all of the information it has for each parameter.
The best place to ask for help, and to get answers quickly (within a few hours) would be without a doubt the Prison Discord Server.
You can also submit a help ticket on the Prison github Issues tab, but the response may be slower and less detailed
Prison has been evolving to provide many new features, but as a result, it’s also becoming very complex in some areas. To help address these greater complexities, Prison has some debugging details that can be dynamically enabled. These can help identify what’s happening and provide hints as to what may be the trouble.
New targets will be added to Prison overtime. So check with the command for the latest updates for the version that you are using.
To enable the debugger, you can toggle them all on with
/prison debug once to turn it on, and again to turn them all off.
To review the options available, use the command
/prison debug help. There are also debug targets that only enable specific debug statements and the list of the available targets can be displayed with
/prison debug targets.
>prison debug help [12:16:39 INFO]: ---------- < Cmd: /prison debug > ------------- (3.2.11-alpha.9) [12:16:39 INFO]: Enables debugging and trouble shooting information. For internal use only. Do not use unless instructed. [12:16:39 INFO]: /prison debug [targets] [12:16:39 INFO]: [targets] Optional. Enable or disable a debugging target. [on, off, targets, jarScan, testPlayerUtil, testLocale, rankup] Use 'targets' to list all available targets. Use 'on' or 'off' to toggle on and off individual targets, or all targets if no target is specified. jarScan will identify what Java version compiled the class files within the listed jars [12:16:39 INFO]: Permissions: [12:16:39 INFO]: prison.debug >prison debug targets [12:17:19 INFO]: Global Debug Logging is enabled [12:17:19 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, rankup, support >prison debug [12:18:18 INFO]: Global Debug Logging is enabled [12:18:18 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, rankup, support >prison debug [12:18:20 INFO]: Global Debug Logging is disabled [12:18:20 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, rankup, support
It should be noted that every time you use the command, other than with the help keyword, it will always show the current status of the debugging information. It will show if the global logging is enabled or not, and if any targets are enabled, it will list all of the active ones. Plus it will show all of the available targets too.
The following shows toggling the global settings:
>prison debug [21:12:10 INFO]: Global Debug Logging is enabled [21:12:10 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability >prison debug [21:12:15 INFO]: Global Debug Logging is disabled [21:12:15 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability
The following will show how you can toggle on a few features. Without using the actions ‘on’ or ‘off’ it will toggle the specified targets. The use of ‘on’ and ‘off’ can occur anywhere in the list of targets, and if both ‘on’ and ‘off’ are specified, then ‘on’ will take precedence over ‘off’.
First notice two targets are activated with two different uses of the
/prison debug command.
>prison debug blockBreak [21:17:23 INFO]: Global Debug Logging is disabled [21:17:23 INFO]: . Active Debug Targets: [21:17:23 INFO]: . . Target: blockBreak [21:17:23 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability >prison debug blockBreakFortune [21:17:30 INFO]: Global Debug Logging is disabled [21:17:30 INFO]: . Active Debug Targets: [21:17:30 INFO]: . . Target: blockBreak [21:17:30 INFO]: . . Target: blockBreakFortune [21:17:30 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability
Then using both of the same targets, they are toggled off.
>prison debug blockBreakFortune blockBreak [21:17:42 INFO]: Global Debug Logging is disabled [21:17:42 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability
Next, this is showing multiple targets being used, with the ‘on’ keyword mixed in. Notice it lists all of these active targets. Then
/prison debug is used to globally turn on all features, which removes any individual targets. Then the global is used again to turn them all off.
>prison debug blockBreakFortune blockBreak on durability [21:18:31 INFO]: Global Debug Logging is disabled [21:18:31 INFO]: . Active Debug Targets: [21:18:31 INFO]: . . Target: durability [21:18:31 INFO]: . . Target: blockBreak [21:18:31 INFO]: . . Target: blockBreakFortune [21:18:31 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability >prison debug [21:18:38 INFO]: Global Debug Logging is enabled [21:18:38 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability >prison debug [21:18:43 INFO]: Global Debug Logging is disabled [21:18:43 INFO]: . Valid Targets: all, on, off, blockBreak, blockBreakFortune, durability
The Prison startup screen contains a lot of information that can be used help identify issues that are detected by Prison on start up, and can provide useful information about the general environment. See the screen prints below.
As prison evolves, the information provided within these commands will better reflect the current state of the plugin, and provide the information that is most helpful when contacting support. For example, prison now includes information on the version of prison and spigot, but also memory information for your server since a lot of performance issues have been tied to the lack of having enough memory; now it’s easy to access that information.
When the server starts, Prison’s startup information will contain a lot of information, including any errors that may prevent prison from running correctly. Also you can get information on demand with
/prison version, or even more in greater detail with
/prison version all.
If you are having problems and need to ask for help, please provide all of this information when requested. Screen prints are preferred. When asked what versions of prison and platform that you are running, copying the following three lines is what is needed to answer that question:
>prison version all [21:29:55 INFO]: ------------- < /prison version > --------------- [21:29:55 INFO]: Prison Version: 3.3.0-alpha.4h [21:29:55 INFO]: Running on Platform: tech.mcprison.prison.spigot.SpigotPlatform [21:29:55 INFO]: Minecraft Version: git-Spigot-21fe707-e1ebe52 (MC: 1.8.8) [21:29:55 INFO]: [21:29:55 INFO]: Server runtime: 4h 26m 21s [21:29:55 INFO]: Java Version: 1.8.0_291 Processor cores: 8 [21:29:55 INFO]: Memory Max: 3.556 GB Total: 1.922 GB Free: 1.459 GB Used: 473.920 MB [21:29:55 INFO]: Total Server Disk Space: 943.719 GB Usable: 750.948 GB Free: 750.948 GB Used: 192.770 GB [21:29:55 INFO]: Prison's File Count: 116 Folder Count: 24 Disk Space: 158.258 KB Other Objects: 0 [21:29:55 INFO]: [21:29:55 INFO]: Prison's root Command: /prison [21:29:55 INFO]: Module: Mines : Enabled [21:29:55 INFO]: Module: Ranks : Enabled [21:29:55 INFO]: Module: Utils : Enabled [21:29:55 INFO]: [21:29:55 INFO]: AutoManager Enabled: true [21:29:55 INFO]: . Block Break Event Priority: LOW [21:29:55 INFO]: . Token Enchant BlockExplodeEvent Priority: LOW [21:29:55 INFO]: . Crazy Enchant BlastUseEvent Priority: LOW [21:29:55 INFO]: . Zenchantments BlockShredEvent Priority: LOW [21:29:55 INFO]: [21:29:55 INFO]: . Auto Pickup: true [21:29:55 INFO]: . Auto Smelt: true [21:29:55 INFO]: . Auto Block: true [21:29:55 INFO]: . Handle Normal Drops: disabled by AutoPickup [21:29:55 INFO]: . Normal Drop Smelt: disabled [21:29:55 INFO]: . Normal Drop Block: disabled [21:29:55 INFO]: [21:29:55 INFO]: . Calculate Durability: true [21:29:55 INFO]: . Calculate Fortune: true [21:29:55 INFO]: . . Max Fortune Multiplier: 0 [21:29:55 INFO]: . . Extended Bukkit Fortune Enabled: true [21:29:55 INFO]: . . Extended Bukkit Fortune Factor Percent Range Low: 40 [21:29:55 INFO]: . . Extended Bukkit Fortune Factor Percent Range High: 110 [21:29:55 INFO]: . . Calculate Alt Fortune Enabled: disabled [21:29:55 INFO]: . . Calculate Alt Fortune on all Blocks: false [21:29:55 INFO]: [21:29:55 INFO]: . Calculate XP: true [21:29:55 INFO]: . Drop XP as Orbs: true [21:29:55 INFO]: . Process TokensEnchant Explosive Events: true [21:29:55 INFO]: . Process Crazy Enchants Block Explode Events: true [21:29:55 INFO]: . Process McMMO BlockBreakEvents: true [21:29:55 INFO]: Prestiges Enabled: true [21:29:55 INFO]: . Reset Money: true [21:29:55 INFO]: . Reset Default Ladder: true [21:29:55 INFO]: GUI Enabled: true [21:29:55 INFO]: Sellall Enabled: true [21:29:55 INFO]: Backpacks Enabled: true [21:29:55 INFO]: [21:29:55 INFO]: Integrations: [21:29:55 INFO]: . . Permissions: LuckPerms (Vault) [21:29:55 INFO]: . . Economy: Essentials Economy (Vault) [21:29:55 INFO]: Integration Type: ECONOMY [21:29:55 INFO]: . . Essentials Economy (Vault) <Active> [URL] [21:29:55 INFO]: . . Essentials (EssentialsX) (disabled) <Inactive> [URL] [21:29:55 INFO]: . . SaneEconomy (API v0.15.0) <Inactive> [URL] [21:29:55 INFO]: . . GemsEconomy <Inactive> [URL] [21:29:55 INFO]: Integration Type: PERMISSION [21:29:55 INFO]: . . LuckPerms (Vault) <Active> [21:29:55 INFO]: . . LuckPerms (LuckPermsV5) <Active> [URL] [21:29:55 INFO]: . . LuckPerms (LuckPerms-Legacy) <Inactive> [URL] [21:29:55 INFO]: Integration Type: PLACEHOLDER [21:29:55 INFO]: . . To list all or search for placeholders see: /prison placeholders [21:29:55 INFO]: . . MVdWPlaceholderAPI <Inactive> [URL] [21:29:55 INFO]: . . PlaceholderAPI <Active> [URL] [21:29:55 INFO]: [21:29:55 INFO]: Registered Plugins: [21:29:55 INFO]: . LuckPerms (5.1.26), WorldEdit (6.1;no_git_id) [21:29:55 INFO]: . Vault (1.5.6-b49), PlaceholderAPI (2.10.9) [21:29:55 INFO]: . ProtocolLib (4.5.0), WorldGuard (6.1) [21:29:55 INFO]: . Essentials (126.96.36.199), Scoreboard-revision (R3 1.4.2 RELEASE) [21:29:55 INFO]: . EssentialsChat (188.8.131.52), Prison (3.3.0-alpha.4h)
The following are screen prints of an older version of what is shown at the server startup.
These screen prints may not contain the most recent enhancements to prison, since they are based upon an alpha release. Please see your server’s console for details pertaining to your environment.
There is zero support available for these earlier versions of Prison. It is therefore highly recommended that you upgrade to the latest release of Prison. Once a version of prison is released, we cannot go back and apply any fixes; fixes will be applied to the next release.
My suggestions are based upon what I have seen within the code for Prison, and best guesses on how the older versions may have worked. These are guesses. Proceed carefully and make backups at each upgrade to ensure you can retry a step if something should go wrong. - Blue
To upgrade prison, the process should be rather simple. But there are general steps that you must follow to help ensure a smoother transition to the latest release.
It is highly suggested that you should first backup your whole server, especially the data within your plugins folder. Please be aware that upgrading Prison may require you to upgrade other pugins that you have, and those plugins may require other plugins to be upgraded.
DO NOT just install the latest plugin(s) you find on the internet! Most plugins have specific versions of Spigot/Bukkit/Minecraft that they will work with! Get them only from trusted servers such as spigotmc.org, polymart.org, bukkit.org, or etc… Those sites should have multiple versions and should identify what server engines they are compatible with.
If you want to also upgrade to a newer version of the server software that you are running, such as spigot, bukkit, paper, etc…, first upgrade the plugins for your current version of the server. So if you are running Spigot 1.8.8 and a plugin has a newer version available that works with 1.8.8, install that first and then start the server and make sure everything is working well. Usually if there is a major change in a plugin from one version to the next, the “last” version may have code to “convert” your data to prepare for the next higher version. If there is an important intermediate step that will convert your data, or require you to make major changes, there should be some notes in documents somewhere. Spending a few minutes reading the release notes on these websites could save you hours of work trying to recover from a messed up upgrade. Remember to make backups!
If you are running Prison v3.2.0, then upgrading to v3.2.1, or it’s pre-release editions, you don’t have to take any special precautions other than backing up your server and the plugin’s data folders.
The internal files remain the same between these two versions. Version 3.2.1 has a lot of new additions to the internal file formats, but nothing will break if using v3.2.0 data with v3.2.1. Matter of fact, if for some reason, you want to down grade from v3.2.1 to v3.2.0 you can. Any new data elements from v3.2.1 will be lost if any of the data items are rewriting to the file system. If a mine is not modified, as an example, then it will not write the mine data back to the file system.
Upgrading from Prison v3.1.1 to either Prison v3.2.0 or Prison v3.2.1 requires no special procedures or processes. The internal file formats are pretty close to being the same that it should work with no problems. Just make sure you perform a backup of the server and the plugins data folders to provide that extra level of insurance and protection.
It is inadvisable to try to down grade to Prison v3.1.1 if running Prison v3.2.0 or later. It may work, but there could possibly be potential internal failures due to the addition of the new fields. If you try to do this, you assume all risks and no help will be provided.
Honestly I cannot advise you on actual steps to take, since I do not know what file formats were used with v3.0.0. I suspect they are compatible 100% with v3.1.1. If this is true, you can just jump to Prison v3.2.1 with no problems.
If there is an incompatibility, then its strongly suggested that you upgrade to v3.1.1 first and let it perform its own conversions, then shut down the server carefully. If it is not shutdown cleanly, then the data files will not be saved to the file system. Once you update to v3.1.1 then you can update to v3.2.1 without any issues.