Prison Documents - Table of Contents

Prison Build Logs for v3.2.1 - 2020-09-27

Build logs

Greetings! I’m delighted that you are interested in the build logs for the Prison plugin. I’m wanting to provide a more formal documentation as to what is going on in each build so you have a better idea if it may be something that you need.

V3.2.1 - 2020-09-27

tag v3.2.1-alpha.20 - 2020-09-27

AltPermissions are alternative permissions that are not checked internally, or automatically. It is up to the programmer to put hooks in to the code to check on these altPermissions. This field of altPermissions is strictly for displaying helpful information to the end users and it is only helpful if it is included.

For example the command /rankup has an optional parameter ladderName. If a ladderName is provided, then it checks to see if the player has the permission: ranks.rankup.[ladderName].

Because these permissions are not ever used to check for actual permissions, it is very important to provide parameters such as [ladderName] to signify where the server owner, or admin, must place the real ladder name within the permission.

This is such a critically helpful feature because otherwise the only way you would know that you need this permission is to look at the source code, of which many cannot do, and those who can, may not know where to look. So this provides very important information that was not available before.

These changes makes sure that the rankPrior and rankNext are set to null to remove dead or changed connections. It also sorts each ladder before hooking up the those links.

This change allows mines to be loaded, but will delay their hook up to the world until the worlds are formally done loading.

This is a work in progress and is not complete yet.

Significant improvements to the OnBlockBreakEventListener to try to minimize overhead and to improve individual performance for all players. The biggest hit, performance wise, will be when mining outside of the prison mines since it would have to check to ensure it’s not within a mine, and will go through the whole list. It’s just simple math, but performed for each mine that exists so it will add up. Overall, the overhead is not much, but efforts were made to reduce it as best as possible, of which, I think is the best that can be done with the current environment. Also renamed addBlockBreakCount function to incrementBlockBreakCount since that’s what it is doing.

I went though the placeholder integrations and fixed their APIs to use the newer set of place holders. Fixed some bugs and expanded features. The list of integrations now also includes the primary URL where they can find more information on the plugins, and where to download them from. Also provides some additional information, such as available place holders that can be used.

I also found that use of compileOnly may not be used correctly, but at this point I’m just leaving this as a mention and then revisit in the future if time permits, or issues appear to be related. Its a very old addition that provided gradle with “some” maven like behaviors. It was only intended to be strictly used for compile time dependencies, such as for annotations that are only needed for compile-time checks, of which the plugins and resources we have marked as compileOnly do not fit that use case. compileOnly