Releases: PrisonTeam/Prison
Prison v3.3.0-alpha.18
Prison-3.3.0-alpha.18.jar
This version of prison works with Spigot v1.20.6 and Paper v1.20.6.
The whole prison build environment was rewrote and updated to provide for a cleaner and more modern way to use dependencies within Gradle.
In combination with updating most of the libraries and other dependencies, this resolved many issues that were initially preventing prison from working with Spigot v1.20.5 and v1.20.6.
-
Gradle updates: Upgraded from v7.3.3 to v8.7. Had to upgrade 22 times to reach v8.7. With gradle, if there is a future breaking change in the configs, it warns you in the before the next release. So incremental upgrading helps ensure the configs are fixed and functional before moving on to the next release.
-
Upgraded Spiget from v1.4.2 to 1.4.6. This checks prison's version for updates.
Had to also rewrite the code using Spiget because the older build tools were having issues handling anonymous classes when building the final jar file with shadow. -
Upgraded shadow from v6.10 to v8.1.1 2
Shadow v8.x could only be used with gradle v8.x -
Placeholders: There was an odd issue with placeholders when a discord plugin was using papi. For some reason, that plugin was sending the placeholders with null players. Now checks for nulls. Since it was a non-standard way of using papi, there may be other issues?
-
PlayerCache: Slight modification in getting the keySet so it will not be tied to the original PlayerCache's TreeMap. This will eliminate the possibilities of a concurrent modification exception if new players are brought online or unloaded.
-
Economies: Added a feature for external functions to be able to check if the player has an account. It's not being used yet, but it can be used to bypass code (and messages) if a player does not have an account.
3.3.0-alpha.18 2024-05-20
Prison v3.3.0-alpha.18 2024-05-20
This version has been tested and confirmed to be working with Spigot v1.20.6 and Paper v1.20.6.
-
Player Ranks GUI: Fixed an issue with the code not using the correct defaults for NoRankAccess when no value is provided in the configs.
-
Obsolete blocks: Marked an enum as @deprecated to suppress a compile warning. This has not real impact on anything.
-
Gradle updates:
Upgraded XSeries from v9.10.0 to v10.0.0
Upgraded nbtApi from v2.12.2 to v2.12.4
Upgraded luckperms-v5 from v5.0 to v5.4 -
Economy: Added a feature to check if a player has an economy account.
Currently this is not being used outside of the economy integrations, but it can be used to help suppress initial startup messages where players do not have an account, which will help prevent flooding a lot of messages to the console for some servers. -
Player Cache: There was a report of a concurrent modification exception.
This is very rare and generally should not happen.
The keySet is part of the original TreeMap collection, so the fix here is to take all keys and put them in a new collection so they are then disconnected from the original TreeSet.
This will prevent a concurrent modification exception if there is an action to add or remove users from the user cache, since the user cache remains active and cannot be locked with a synchronization for any amount of time, other than then smallest possible.
The standard solution with dealing with this TreeSet collection would be to synchronize the whole activity of saving the dirty elements of the player cache. Unfortunately, that will cause blocking transactions when player events try to access the player cache. Therefore it's a balance game of trying to protect the player cache with the minimal amount of synchronizations, but allow the least amount of I/O blocking for all other processes that are trying to use it.
Hopefully this is sufficient to allow it all to work without conflict, and to be able to provide enough protection. -
Gradle: Removed a lot of the older commented out settings.
See prior commits to better understand how things were setup before, or for references. -
Gradle: A few more adjustments to add a few more items to the libs.versions.toml.
-
Placeholders: The placeholder api call from PlaceholderAPI is passing a null OfflinePlayer object.
Not sure why this has never been an issue before, but added support for null OfflnePlayers. -
Spiget: Updated the way prison handles spiget by now submitting a task with a 5 second delay.
The messages are more helpful now.
This also moves it out of the SpigotPrison class. -
Upgraded John Rengelman's shadow, a gradle plugin, from v6.1.0 to v8.1.1
-
Upgrade gradle from v7.6.4 to v8.7
Upgraded from: v7.6.4 -> v8.0 -> v8.0.2 -> v8.1 -> v8.1.1
-> v8.2 -> v8.3 -> v8.4 -> v8.5 -> v8.6 -> v8.7
v8.3 required a configuration change due toorg.gradle.api.plugins.BasePluginConvention
type has been deprecated and will be removed in gradle v9.x. This is impacting the use of thebuild.gradle
'sarchivesBaseNamme
. This is being replaced by the newbase{}
configuration block.
v8.3 also required other config changes. -
Upgrade spiget from v1.4.2 to v1.4.6
Was using a jar with v1.4.2 due to their repo going down frequently.
Switched back to pulling through maven and got rid of jar. -
Upgrade gradle from v7.3.3 to v7.6.4
Upgraded from: v7.3.3 -> v7.4 -> v7.4.1 -> v7.4.2
-> v7.5 -> v7.5.1 -> v7.6 -> v7.6.1 -> v7.6.2 -> v7.6.3 -> v7.6.4
Preparing for Gradle v8.x
Around v7.5.1 required a change to auto provisioning
Prison v3.3.0-alpha.17a
Prison-3.3.0-alpha.17a.jar
This is an important update for alpha.17, which fixes a few outstanding bugs that were mostly introduced since alpha.16.
NOTE: This update will be pushed out to spigotmc, polymart, builtbybit, etc. You can help support our efforts by downloading a copy or two of Prison from those sites to help boost the popularity figures since the discord downloads are invisible. Thank you.
-
Spigot 1.20.5 - Prison support spigot 1.20.5 partially. There have been a couple of fixes applied to Prison to get it to run. Our libraries have been updated to better support 1.20.5 too. More releases will be occurring for our dependent libraries in the near future, and we'll include them as we can. But overall, we're unable to test prison with 1.20.5 because our test servers are dependent upon other plugins that cannot currently run on 1.20.5. We'll keep an eye on updates and test as we can, but this is currently a lower priority.
That said, if you're trying to use 1.20.5 and you run into issues with Prison, please let me know ASAP so I can get them resolved for you. -
GUI config changes - Made it easier to control items shown in the player's GUIs for ranks and mines. Removed obsolete settings.
-
GUI tool bar - The text for the GUI tool bar (paging and close) have been added to the common module's language configuration support. They can now be customized. Most of these text settings for the page tools supports a custom set of placeholders to allow for more control over placement of page numbers in your button's layout. See the language text files for comments that list all options.
-
Economy Integrations: Bug fix: There was a bug occurring with the addition of a new check that was added to essentials and vault to see if a player has been setup with the economy. On servers with inactive players that do not have that currency it was throwing trivial warnings, but they were flooding the logs.
-
Prison Support Submit - There was an update to privatebin that forced the use of TLSv1.3, of which is not supported in older versions of java 1.8. Prison uses a library to interact with the privatebin servers and that library was having issues. I rewrote some code for that library to better deal with the errors and to have it generate more meaningful messages that explains how to fix the problem. This eliminated many stack traces that we could not control.
Prison now will fallback to using paste.helpch.at instead of privatebin if there are protocol errors with TLSv1.3 support. This may not be optimal because paste.helpch.at does not purge old messages.
Prison uses privatebin to help support our product by providing a comprehensive listing of settings and configuration so we can better address prison related concerns and issues.
Privatebin allows us to encrypt all data before sending and storing on the privatebin server, and we can set an expiration date for when it gets purged, which is 1 week by default. You also need to use a password to decrypt the text to view it. This, we feel, helps better protect your assets. Paste.helpch.at does not provide any of these features and the posts remain out there for a long time.
The only solution to fix the protocol error is to upgrade your Java 1.8 installation to the latest release of 1.8. The latest releases of 1.8 includes TLSv1.3.
-
Player GUI: Fixed a bug that when clicking on a rank button that it did not have a command to run, so it was generating an error message in the console and the player's chat. This has been fixed, and the behavior was doing nothing wrong (did not cause any harm).
-
Placeholder bug fix when using the search function with an offline player.
-
Auto features: Fixed some issues with the inventor full message not appearing. A new feature was added to normal drops to now include full inventory checks too.
-
Updated XSeries from v9.9.0 to v9.10.0 - better support for spigot 1.20.5
Prison v3.3.0-alpha.17
The following is a highlight of changes for the alpha.17 release since the alpha.16 release.
-
Mines: Added more support for the use of 'all' for mine names so more of the mine commands will be able to apply to all mines.
-
Upgrade XSeries to v9.7.0 from v9.4.0.
-
Upgrade XSeries from v9.7.0 to v9.8.0.
-
XSeries: Upgrade from v9.8.0 to v9.9.0
-
Upgrade nbt-api from v2.12.0 to v2.12.2.
-
PlaceholderAPI: Upgrade from v2.11.2 to v2.11.5
-
Breaking change in XSeries: GRASS has been changed to SHORT_GRASS for v20.0.4! It's disappointing to say the least that after all of these years, XSeries screwed up and pushed a breaking change to their repo. They should have kept GRASS so they would have remained compatible will all past code and configs that had to refer to GRASS directly, but nope... they opted for causing problems. Very disappointing.
Setup a converter to automatically convert all GRASS to SHORT_GRASS as the mines are loaded. -
Bug Fix: Mine resets and block constraints.
This fixes a few issues with block constrains using min and max, along with exclude from top and bottom too. -
Bug Fix: GUI ranks, mines, and prestiges were not using the default item name correctly. It was using the template correctly, but was not translating the use of placeholders. Only name and tag are supported.
Mines:{mineName}
and{mineTag}
Ranks and prestiges:{rankName}
and{rankTag}
-
config.yml - changed the default values for remapping aliases and restricting players from using commands.
The default, which used/mines tp
was actually causing conflict with normal usage. -
AutoFeatures auto permissions: enable the ability to 'disable' the perms. Any op'd player, if perms are enabled, will have these auto features enabled. There is no other way around this, since this is the correct behavior of OP'd players.
-
Mine resets: If a mine reset takes longer than 4 minutes, then that is probably a failure and the mine reset did not complete. Therefore, reset the mine reset mutex and try again. This allows a "crashed" mine reset to auto fix itself if it can. The 4 minute wait time is LONG, but it will prevent a normal reset from being canceled and restarted in the middle of a restart.
-
Performance: Changed the defaults for the mine reset settings to help improve the performance on larger servers.
The older settings would allow other commands to backup and it would appear as if there was lag happening, TPS would rarely drop below 20. This helps to keep performance a little more responsive.
The side effect is that there will need to be more "chunks" submitted which could possibly result in longer wall-time for mine resets. -
Mine resets: If a suggested block is null, then set it to air. This was causing an NPE under some conditions.
-
BlockEvents: Added the ability to update block events
instead of deleting them and re-adding them. Follow directions when using '/mines blockevent update help', or whenever a block event listing is shown in game, you can now click on the commands to auto populate the block event update command... then just edit the needed changes and submit. -
Mines: Fixes an issue for when mines are disabled and they are being checked in other processes to see if they are active.
If the instance of PrisonMines is null, then it will create a temp instance just to prevent an NPE. -
Prison Block change: Add support for display name, which is optional.
Setup sellall so it can use the display name now, so renamed items will not be mistaken for vanilla minecraft items.
More work needs to be done to hook up displayName to other features, such as sellall and add prison block to mines. -
Bug fix: Fixed the command
/mines set accessPermission
where it was apply the given perm to all mines.
Likewise, all mines parameter was failing to do anything. -
NOTE: This alpha version "should" support spigot 20.0.4.
After a few days, if no other issues surface pertaining to 20.0.4, or other related plugins, this will be released as a public release. -
Fix issue with BlockEvent's SellAll when isAutoSellIfInventoryIsFullForBLOCKEVENTSPriority feature is enabled.
This was not using the correct new functions that checks to see if a player can use autsell, or if they have it temporarily toggled off. This also checks to see if the player has the correct perms, if perms are enabled for the sellall event. -
alpha.16a - 2023-12-28
NOTE: I just noticed that alpha.16a was never committed. So this is not the correct location of when it was set with the local builds. -
updated the help on the
/mines block constraint
to indicate that the layer count is originating from the top, not the bottom. -
Bug fix: Player manager startup: fixed a problem where all players were being updated even though they did not have a name change. Only when name changes are detected are the files updated or when a new player is found.
-
*Mines set resetTime: fix typo in the description where it shows 'all' instead of 'all'.
-
ranks ladder: applyRanksCostMultiplier command was changed to allow the value of 'true' to be used along with the value of 'apply'. This helps to eliminate some confusion on how the command works.
-
Bug fix: Prison command handler. When players are de-op'd, and they do the commands such as
/ranks help
or/mines help
it was incorrectly showing other sub commands they did not have access to.
This now shows the correct sub commands that they have access to. -
Placeholders: topn players - bug fix. If a player did not have a prestige rank, then it would cause a NPE when using the
prison_top_player_rank_prestiges_nnn_tp
placeholder.
Just check to ensure its not null... if it is, then return an empty string. -
Bug fix: prison support submit: if the bukkit system cannot extract a file from the jar, such as plugin.yml, this will prevent the failure of the command. This will allow the command to continue being processed, but may just skip the extraction.
-
Placeholders: Top player rank was using the wrong ladder, which was incorrectly the prestiges rank and not the default rank.
Correcting the rank fixed the problem. This only was an issue if the player did not have a prestige rank. -
Bug fix: GUI configuration: Found a problem that when configuring the gui initial settings, that there were problems when trying to access mines and ranks when they don't yet exist.
-
File saving: alternative technique for saving files. Do not use!
This is a more dangerous technique that could possibly result in lost configurations. This is being provided as a degraded service if the fail-safe technique is not working ideally on a degraded server.
This should never be used, unless directed by a prison support admin. -
Prison startup bug: There was an issue with the prison startup when there was an error and prison tried to log the error, only to find that resources that were needed for logging were not yet loaded nor were their dependencies. This fixes some of the entanglements to allow the error messages to be properly logged.
-
Import Mines: Added the ability to import mines from JetPrisonMines config files.
/mines import jetprisonmines help
-
Prison Command Handler: using config.yml you can now change all of prison's root commands with 'prisonCommandHandler.command-roots'.
Can now map 'prison', 'mines', 'ranks', 'gui', 'sellall' to all new command that you want.
3.3.0-alpha.16b 2024-02-24
-
Mine imports: Fix some minor issues to get this to work even better.
-
Mines import: prevent the processing of an importing of a mine if there are problems with the mine's name, or locations.
-
Mine skip reset: If a mine is reset, send a message to players, but only if the message is defined and not empty: 'skip_reset_message='
-
Player sellall Multipliers: Fixed the ranks multiplier to include all ranks that are defined within the sellall multipliers.
Added a new function that will gather and list all multipliers that go in to the calculation of the player's total multipliers, which includes the rank multipliers (the sellall multipliers) and also permission based multipliers.
This detailed list of the individual multipliers, is viewable for each player that is online with the command/ranks player <player>
and reveals the actual details of how it's calculated. -
AutoSell: Bug fix: When autosell and sell on inventory is full was all turned off, it would still sell.
This fixes some of the logic to simplify the code, and to fix those issues. -
Mine skip reset messaging: Did not have it hooked up in the correct location, so the skip messages were not happening.
-
Mine reset: Under heavy load when performing a mine import, there were seen occasionally errors with concurrent modification errors.
Code was changed to minimize that possibility. -
Sellall and GUI message failures: a number of messages that would indicate the player does not have access to that command were changed to remove the permission from the message.
This was requested by a couple of admins because they did not want the players to see the internal workings that would otherwise control how the software would behave. -
Block lists: Added the total chance percentage to be displayed with the blocks.
-
File output technique: Changes to how the "replace" existing files works.
If the file does not exist, then it opens it to create it, otherwise it truncates it. -
Mine bombs: Ability to prevent a bomb's blocks from count towards the player's block totals.
-
**Sellall and autosell: Refinements were made to the handling of th...
Prison v3.3.0-alpha.16
The following is a highlight of changes for the alpha.16 release since the alpha.15 release.
-
Bug fix: A library that prison uses broke with the release of Spigot 1.20.2 due to new parameter overloading that spigot introduce, that resulted in ambiguous parameter failures.
-
Auto Features: Many updates and enhancements.
-
Sellall: Many updates and enhancements from API to GUI and auto features integration.
- Streamlined to work with prison's custom blocks instead of just XMaterial items.
- New functionality to improve managing what's been sold, or just getting their value. Extended a lot of this new functionality to the prison APIs.
- Added many new default items
- Changed all of the commands under sellall to better organize like commands in to sub-commands
- Rank multipliers now works for all ranks, not just prestiges. New commands to reset all multipliers for ladders (which is great if you have a few thousand prestige ranks).
- If blocks could not be sold through auto features autosell, it will generate debug messages so it's easier to track why blocks are not being sold.
- Able to disable the "nothing to sell" message so it stops spamming the player.
- For different server configs, where there are issues that prevent autosell from being used, such as other plugins placing blocks in the player's inventory, you can now force a sellall after the block break event is finished being processed.
- Sellall Multipliers - Many new features and commands. Explore with
/sellall multiplier
and use the keywordhelp
on each command for more details. The multiplier list can use different column widths to better support thousands of prestige ranks.
-
Prison's command handler: Updates and a few enhancements.
- Worlds that are disabled in config.yml prevents prison's command handler from working in those worlds, thus shutting down any and all aspects of prison in those worlds. Use carefully since no warnings will be shown in those worlds that prison is ignoring all commands issued from within those worlds.
-
Fixed an issue with the player's inventory not matching prison's internal code vs bukkit's.
-
Expanded Prison's APIs so its easier to use prison's internals within other plugins for the most flexibility in customizing your servers.
-
Multi-language support files now supports:
*none*
keyword to suppress any text. Returns an empty String.- Now supports line breaks within messages. Use
{br}
which is similar to the html break:<br>
but cannot use the<
or>
. The{}
is typical of placeholders.
- Improvements to Prison's debug mode and block inspector to make is easier to address issues.
- Debug mode can now be tied to a single person to prevent the console from being spammed
-
Prison Mine Bombs - Can now identify which mines specific bombs can be use in, or excluded from. Includes a global setting in config.yml so individual bombs do not need to be configured to be excluded from certain mines.
-
Prison support - New features
- Adding a new HTML bases support file. More work needs to be done with it before making it the primary tool.
- Changed servers for submitting support help files... they are not encrypted and password protected. And they are purged in 7 days.
-
Mines -
- Mine tracer now has an option to 'clear' the whole mine, mark just the 'corners', or the standard full tracer.
- Found and fixed a sync task that was a possible cause of jitters. This helps when the server is under a heavy load.
- Added a
/mtop
command./mines top
which teleports a player to the top of the mine they are in.
-
Auto Configure - Major changes to add more default prestige ranks, and the ability to go back and add more ranks after your server is up and running without harming anything.
- Added support to reset all rank cost multiplier and rank costs to apply to all ranks on a ladder.
-
XPrison Enchantments - Added some basic support for using the XPrison enchantments. There are some limitations, and not all enchantments will work perfectly.
-
Placeholders -
- Disabled all placeholders in disabled worlds.
- New placeholder attribute to pass a player name to force a non-player placeholder request to use the specified player. This is useful for some scripting languages and other plugins.
-
Auto Manager -
- New fortune type: percentGradient. An alternative fortune calculation that is designed to be more linear distribution, based upon the tool's fortune.
- Able to use TokenEnchant's fortune level.
-
BlockConverters - Starting to use some minor features. The first being Event Triggers where a given block can force prison to trigger another plugin and allow that plugin to handle all processing for that block. Example is using a lucky block.
-
Prison compatibility: Added support for block metadata customModelData.
- This is only compatible with spigot 1.14.x and higher.
- Supported in prison mine bombs so you can customize the bomb's texture
-
Prison performance improvements:
- More options to fine tune control of the player cache, mine reset control, economy cache, etc...
- Need to produce a document that covers performance optimization for prison
- Some default settings have been changed to encourage better performance out-of-the-box
Prison v3.3.0-alpha.15
The following is a highlight of changes for the alpha.15 release since the alpha.14 release.
-Full support for 1.20.x including the heights and blocks.
-
MineBombs - Added a new field specifically for use with item names which supports color codes.
-
AutoFeatures - Fine tune block break priorities for custom events. New feature to process MONITOR and BLOCKEVENTS only if the current block is AIR.
-
New feature: If invalid player access, then TP player to their current mine. Optional Setting.
-
Expand Prison's debug block inspector: added more information.
-
Updates to many internal libraries.
-
Added support for silk touch
-
Added a fortune multiplier - this is used to fine tune highly OP tools so the drops can be better controlled.
-
Fix: Rev Enchants JackHammerEvent: found out that this event returns the corner blocks of a cuboid of blocks. Now calculates all included blocks to process this event correctly.
-
Sellall now partially works when ranks are disabled.
-
Fixed problems introduced when config files were manually edited incorrectly and they were injecting null values in to some properties.
-
Fixed how NBT-api is being shadowed and used to get it to work properly with Spigot 1.20.x.
-
Minor fixes and enchancements: blockEvents, autoFeatures and monitor priorities, GUI Player Mine config options, prevent GUI configs from loading twice, when mining now can control non-prison placed blocks to pass through to be handled by bukkit, fix autosell when disabled, hooked up support for minecraft stats to track block mining, prevent zero drops if calcs are less than 1, fix sellall trying to sell an invalid stack, fix prison utils potion effects when no player is provided, support for ExaltedEconomy, able to bypass adding new players on startup, updated Prison's jar reporter to identify Java versions 19, 20, and 21, clearified help on
/rankup
and/presetige
, update of how topN is being processed, added topN stats which reports some of the core info.
Prison v3.3.0-alpha.14
Prison v3.3.0-alpha.14 2023-01-23
The following are significant changes that are included in the alpha.14 release since the alpha.13 release was posted.
If you have any questions, or need help, please visit our Discord server.
-
Support for RevEnchants
-
Added more flexibility in supporting Prison Event Listener priorities for block break events so prison is better suited to support more enchantment plugins under more conditions. Added ACCESS, ACCESSBLOCKBREAKS, and ACCESSMONITOR to provide far more flexibility when prison is NOT managing the block breakage.
-
General improvements in how Auto Features manages the event listeners for all of the block break events. Includes some bug fixes and performance improvements too.
-
Preparing to support ItemsAdder... will be available in next alpha release.*
-
Prison Placeholders: Added a few more, fixed a few bugs, and improved documentation so its easier to understand how to use them. Added more features to the command
/prison placeholders stats
. The stats command can actually be used to troubleshoot issues with third-party plugins trying to use prison placeholders. -
Top-n reports and placeholders: bug fixes and added a few more features.
-
Mine commands: refactor and improvements to some of the general mine commands.
-
Prison Placeholders: general bug fixes and performance improvements with the placeholder cache.
-
Prison's bstats: Expanded the reports that are being included.
-
Prison Command Handler: ability to lockout players from commands and tab-completes based upon perms.
-
Mines GUI Bug fixes: fixed a few issues.
-
Issue with vault not working with essentials: Not able to access player's balances through vault and provided alternative paths to resolve this issue.
-
Prison support new feature: tracking command usage along with average run times:
/prison support cmdStats
. -
Improved some of the
/prison support submit
features to include more of the newer data that prison is using. -
Updates to a number of libraries that prison uses:
placeholderApi: v2.10.9 to v2.11.2
XSeries: v9.0.0 to v9.2.0
item-nbt-api: v2.10.0 to v2.11.1 -
Removal of support for MVDW placeholders since it's not able to support some of prison's advanced features, plus it's 100% redundant since PlaceholderAPI works in conjunction with it. No loss of service since PAPI is a better solution and works with MVDW.
-
Added a Prison Backup feature that can make a backup of all the settings within prison's plugin directory (small zip file backups). It is setup to make a backup whenever it detects a change in the prison versions. In the future, it could be automated to make snapshots of all settings and player status so there can be abilities to "rollback" to a prior instance.
-
Added new translations: Finnish, Chinese,
-
Enhanced the player GUIs for mines and ranks to use NBT to control the options to simplify how the options work. Eliminated a lot of old code and added more flexibility.
-
Enable the sellall command to be ran from the console or from a prison command.
-
Enhanced the debug logging detail related to the auto features. Provides better logging for troubleshooting.
-
Using a static global setting for decimal formatting to better control how numeric formatting works with various language settings.
-
Able to now control suffocation in the mines, so you can now allow players to die if they logged out within a mine and they log back buried in rock.
-
Able to control mine reset teleportation controls.
-
Added direct support for translating placeholders through the Prison API so its easier to use externally through another plugin.
-
Now able to set a prestige rank tag to use for players that do not have a prestige rank. This allows for better customization for chat prefixes.
-
Fixed a bug when trying to move a mine from one world to another world. There was a conflict with an internal value not being cleared/reset.
-
Fixed a Prison Mine Bomb bug that was making them incompatible with bukkit 1.8.8.
-
Fixed a bug with how a vector's length was being calculated. Not sure how frequently this would have been used.
-
Refactoring Prison Backpacks. Getting ready to hook them up to a new internal backpack cache to improve performance. Not yet completed.
-
Fixed bug with /rankupmax and rewrote prestiges to better align it with the ranks module instead of relying upon the GUI code to manage it.
-
Enhanced many mine and rank commands to apply changes to all ranks or all mines with one command to make it easier to customize prison.
-
New feature setting (optional): Forced rankup as soon as the player earns enough money through sellall.
-
New feature setting (optional): Forced sellall before performing a prestige.
-
New feature setting (optional): Prevent access to prior mines when ranking up. This foces the player to only have access to mines that are linked to the current rank. This feature allows the use of Mine and TP access by rank instead of having to setup complex settings with perms through a permission plugin.
Prison v3.3.0-alpha.13
This is an alpha release to the upcoming v3.3.0. Many new features have been added, and there are more planned for the v3.3.0 release.
Highlights of some of the changes included in this alpha.13 release. Please see the change logs for all details.
- Added a new tool:
mines tp list
which will show a player all of the mines they have access to. They can also click on a listed mine to generate the TP command. This command can also be ran from the console to inspect what players have access to. - Fixed a recently introduced bug where if the server starts up, but someone has no ranks, it was not able to properly assign them their first default rank. It was leading to circular references.
- Fixed an issue with color codes not being translated correctly with placeholderAPI.
- Prison has a rank cost multiplier where ranks on different ladders can increase, or decrease, the cost of all ranks the player buys. So when they prestige, it makes ranks A-Z cost more each time. What's new is that now you can control which ladders these rank cost multipliers are applied to, such as not on prestiges, but only on default.
- Fixed calculations of the placeholder
prison_rank__player_cost_rankname
. It was not fully working with every possible rank on every possible ladder. Now it works correctly if trying to get the player's cost for even many prestige ranks out (it includes cals for all A-Z mines at multiple passes). - Mine bombs: Changed to only allow mine bombs to be setoff withn mines the player has access to. Fixed an issue with color codes within the mine bomb's tags.
- Fixes issues with NBT, color codes with prison broadcast commands.
- Rewrote topN for better performance:
/topn
. Older players are archived within topN and can be queried:/topn archive
. - Update ladder details on a few commands.
- Update XSeries from v8.8.0 to v9.0.0 so prison now supports 1.19.x blocks.
- Bug fixes with first join events. Bug fix with a few guis.
- CMI update: If CMI is detected at startup, and delayed startup is not enabled, prison will go in a simple delayed startup mode to allow CMI a chance to enable it's economy through vault. This reduces the learning curve with CMI users.
- New feature: Prison will now make an auto backup of all files in it's directory when it detects a change in version. Can manually backup too. The backup stores temp files then removes them from the server, this helps keep the server clean.
- Update bstats: Gained control of the account and started to add useful custom reports to help zero in on what we need to help support.
- More work on block converts. Will be added in the next alpha releases.
- Bug fixes: mines gui fixes for virtual mines. Sellall bug fixes. Placeholders fixes.
Prison v3.3.0-alpha.12
This is an alpha release to the upcoming v3.3.0. Many new features have been added, and there are more planned for the v3.3.0 release.
This represents about six months of work with many bug fixes, performance improvements, and new features that have been introduced. The last two alphas that were published to spigotmc.org were not pulled back to main, but they were released, This PR will preserve the released alpha as it has been published.
Also, this helps to ensure that this work will not be lost in the event the bleeding branch is lost/removed. Hopefully it won't be, but a lot of work has gone in to it and it will be impossible to recreate the current state of the alpha release.
This version, v3.3.0-alpha.12, has 300 commits and 323 changed files since v3.2.11. The list of actual changes since v3.2.11 is substantial and the change log should be referenced for detailed accounts.
Highlights of some of the changes include (a sparse list):
- Support Spigot 1.19 and all versions of Java from 1.8 and up.
- new block model - full support for CustomItems custom blocks - updated XSeries which mean prison supports Spigot 1.19.
- major improvements to auto features - streamlined and new code - higher performance - many bugs eliminated - now supports drop canceling to make prison more compatible with other plugins
- better multi-language support - supports UTF-8
- Improved rankup - rankup commands are now ran in batch and will not lag the server if players spam it
- rewrite of the async mine resets - next to impossible for mine resets to cause lag - Uses a new intelligence design that will throttle placing blocks as the server load increases, which makes it next to impossible for it to cause lag.
- Enhanced debugging tools - if a server owner is having issues, prison has more useful tools and logging to better identify where the issues are - new areas are not able to log details when in debug mode - debug mode now has a "count down timer" where if debug mode is enabled like
/prison debug 10
then it will only allow 10 debug messages to print, then it will turn off debug mode automatically. This is very useful on very heavy servers when a lot of players are active... it prevents massive flooding of the console. - Major rewrite of the placeholder code that identifies which placeholder raw text is tied to, so it can then retrieve and process the data. - Pre-cache that provides mapping to raw text, so once it is mapped, it can prevent the expensive costs of finding the correct placeholder - Added the beginning of tracking stats (through the pre-cache) and will be adding an actual placeholder cache in the near future.
- Mine Bombs - fixes and enhancements
- Starting to create a new sellall module that will support multiple shops and custom blocks (not just XMaterial names)
- Block Converters - Will allow full customization on all block specific things within auto features - will eliminate all hard coded block
- Started to add NBT support. - Used in mine bombs - Starting to use in GUI's to simplify the complexity of hooking actions up with the menu items.
- Added rank scores and top-n players - Rank score is a fair way to score players within a rank. It's currently the percentage of money they have to rank up (0 to 100 percent), but once they cross the 100% threshold, then 10% of the excess subtracts from their rank score. This prevents camping at levels.
- There is more stuff, some major, a bunch of minor, and many bug fixes along the way.
Although this may be an alpha release, it is fairly stable. If issues are encountered, please report the issues on our discord server and we can provide a fix in a reasonable amount of time.
Prison v3.2.11
v3.2.11 - The final release of the v3.2.11 series.
Prison supports:
- Java 1.8 through Java 17.
- Spigot 1.8 through 1.18, and other platforms based upon Spigot.
-
Many updates and bug fixes. Please see the change log for all of them. Below is just a limited summary of some of the more important updates.
Prison v3.2.11 Change Log -
Asynchronous mine reset enablement. All mine resets are now async'd and the way it's implemented, is that the workload on the server self-governs the aggressiveness of the reset. As a result of this governance, it is difficult to have a mine reset cause lag, no matter how large a mine will be. Prison will even be lag-free if more than one mine resets at the same time. Fine tuning of the sync resets can be adjusted through config.yml.
-
Prison can now be disabled completely on a per world basis. Also, it is now possible to define aliases for any prison command through the same config settings. See settings in config.yml.
-
If the server is missing an economy plugin, prison now does a better job at communicating what the problem is so it can be fixed quickly. An economy plugin is required for the ranks module to function.
-
Added a debug mode for inspecting a block. To enable, enable prison debug with
/prison debug
then while holding a prison wand/mines wand
click a block and it will show a couple of lines tied to the information that prison has recorded for that block. If you shift-right click a block, then prison will check each event listener to see what it does with the block. It will report when a block event is canceled and other details, on a per listener basis.
Prison takes support seriously, and to that end, there are a number of advanced tools to help identify issues and to better understand what's going on since many things that prison does can be very complex and it operates like a black box. -
Start to add tokens to prison. Players can now earn tokens while mining. Its a work in progress, but they cannot spend them yet.
-
Updated block constraints so blocks can be spawned in specific layers within a mine, and with a minimum or maximum amounts.
-
Placeholders - Prison now has 258 placeholders, including aliases. Added many placeholders and improve a few that were having some issues. There are still more that are planned to be added.
-
Added new Prison Mine Bombs - Work in progress - Basics exist and have a lot of functionality, but more work will be done to add new features and address issues when found and reported. If you have ideas, or need something specific, please visit our discord server and talk to Blue.
-
Coming Soon: Mine Region. Mine effects that are applied to Mine Regions. Mine Effects will include potion effects like night vision, and other effects such as no hunger, no fall damage, and fly. Also may be adding enchantments soon too.
-
Significant improvements for handling multi-block explosions with a major rewrite to improve the overall performance within the handling of block break events within the auto features. Many changes to improve performance on a per-block basis, and to prevent a block from being counted more than once when many different players are trying to break, or explode the same blocks.
-
Significant updates to most Prison GUIs and sellall
NOTE: It is currently recommended that the old Prison Backpacks should not be used at this time. They will be rewritten shortly to address the current issues.
Looking forward to the v3.3.x releases:
There will be some significant changes to the internal structure of Prison, the degree of which is not fully known as of yet. These changes will fill in the gaps on what Prison is able to provide currently, and what a lot of users have been asking for.
Some of the changes are touched upon up above, and those directions are more so the natural movement of where prison is moving to on it's own. What is actually added, will depend a lot on what our users request and what we can focus on. A great deal of what shapes prison's future is you, our users.
A long time, and valuable supporter, Pulsi_, has made a wonderful donation to the Prison project. He donated one of his premium plugins for enchantments, which will be used in-part to help provide enchantments ultimately to prison. The time frame of when this will happen is up in the air, with "never" still being an option. His source code, and his plugin on a whole, is not the property of Prison, nor does it fall under Prison's licensing so his source code is not available, nor it ever will be, so please don't ask for it. Only the parts, and source that is pulled from his project and is made part of the Prison project will be subject to Prison's licensing. I, myself (Blue), will decide what gets pulled in to Prison, and how it is integrated in Prison's unique architecture, and then implemented. Only what gets committed to Prison's github repo will be considered Prison's open source.
Prison v3.2.10
v3.2.10 - Prison Update - Enhancements to many internal features, improved /ranks autoConfigure
, focus on providing better support tools, many new placeholders, and starting to add PlayerCache tracking (opens the door to many new features dealing with player stats).
-
Many new placeholders added. Prison now has 240 base placeholders including their aliases.
-
Numerous improvements and bug fixes in many areas
-
Improvements in multi-language support. Able to support UTF-8 encoding.
-
Player Cache: Improvements and enabling tracking of blocks broken, time spent in the mines, earnings, and online time. This will be used to enable many new placeholders and more features in the near future.
-
Auto add all players on the server that are not in prison.
-
Enable
/prison support submit
features where players can get better support by making it easier to share their configuration settings. Using paste.helpch.at. -
Provide a more robust support system in prison, in addition to the support submit features. Can now enable more debug mode targets to better trackdown potential issues.
-
Prison now supports reloadable locales and auto features. For the auto features, it now unregisters all previously registered block event listeners, and the re-registers them based upon the updates to the settings in the reloaded auto features. The server no longer needs to be restarted if the configuration settings for event listeners have changed in any way.
-
Auto features has undergone more refactoring to prepare for future enhancements, and to streamline the existing processes. A few undiscovered bugs were found and fixed during these enhancements. As a result, auto features works better with other enchantment plugins.
-
Rewrote some of the auto features to resolve some obscure issues, and to provide performance improvements and greater flexibility.
-
Redesigned the commands
/ranks list
,/ranks info
,/mines list
, and/mines info
-
Modified the way Prison edits commands (ranks, mines, blockEvents) so the row numbers can be used instead of copying and pasting the whole command(s).
-
Update many of the internal libraries.
-
Performance improvements with GUIs, backpack, and Sellall features. Includes fixs and some layout functional improvements too.
-
Expand Prison's utils features. Added a few more utilities.
-
Added support for Ladder Base Rank Cost Multipliers which enables the ability to make rank costs more expensive when prestiging.