
CrazyVouchers
Want to make a paper that can give you an axolotl with a pretty firework display, Look no further!
Bugs Fixed 🐛
- Fixed an issue where rgb/color were not working when building a voucher.
As always, Report 🐛 to https://github.com/Crazy-Crew/CrazyVouchers/issues
Bugs Fixed 🐛
- Fixed a potential memory leak caused by using double brace initializers.
As always, Report 🐛 to https://github.com/Crazy-Crew/CrazyVouchers/issues
Bugs Fixed 🐛
- Fixed multiple issues with
random-commands - Fixed multiple issues with the migration types like
VouchersDeprecated - Fixed an issue where the old
random-commandslist would be copied as is during migration into one command pool which caused all commands to be run, instead of spread out.- This will perform the previous behavior as it was intended now.
- If you have a backup, load it... and re-run /crazyvouchers migrate -mt VouchersDeprecated
As always, Report 🐛 to https://github.com/Crazy-Crew/CrazyVouchers/issues
- Fixed multiple issues with
Bugs Fixed 🐛
- Fixed issue with {random}:50000-2000000 not working.
Bugs Fixed 🐛
- Fixed issue random-commands, and weight calculations. The filter predicate was inverted for weighted and weightless options.
Bugs Fixed 🐛
- Fixed an issue with the
out of boundsexception involvingrandom-commands - Fixed an issue where PlaceholderAPI placeholders weren't being parsed.
- Fixed an issue with the
Changes
- Added a new configuration option
has-argumentto vouchers/codes which was a result of fixing{arg}not being replaced in commands. - Added a new configuration option to the
config.ymlthat allows you to choose whether to allow off-hand usage or not. - Added a new permission
crazyvouchers.bypass.2fawhich lets you bypass 2fa when right-clicking. - Added a new configuration option
override-anti-dupeto vouchers which lets you override the anti dupe option in the config.yml- It defaults to false, which is the default behavior out of the box.
- Added a new configuration option
allow-vouchers-in-item-framesto vouchers, which lets your players place vouchers in item frames if set to true. chance-commandsandrandom-commandshave been combined, They were not working properly anyway. We opted for a weight based system when picking random commands, The lower the number. The less likely the command(s) will be run.- You can specify one command in the list, or multiple. It's up to you!
- If there is no weight option present, It will be considered how
random-commandsfunctioned before, which is run separately and has no relation to the weight based options. - You will need to run
/crazyvouchers migrate -mt VouchersDeprecatedfor the changes to take effect, You will see console nagging regarding outdated configurations until you do.
random-commands: "1": # The chance for these to run weight: 45.0 # The commands to run commands: - "eco give {player} 100" "2": # The chance for these to run weight: 25.0 # The commands to run commands: - "eco give {player} 1000" # No chance is provided, thus we will pick random commands. "6": # The commands to run commands: - "give {player} diamond 5"Technical Changes
- Cleaned up internals when creating a voucher, or a code.
- This allows us to add newer features easier as it's more readable, and less prone to human error.
{random}:1-10000has been improved, and has better logging when a problem happens i.e. due to invalid numbers being used.- Updated the interaction internals to account for off-hand usage by using PlayerInventory & EquipmentSlots
Bugs Fixed
- Voucher Codes when broken were being put in the wrong list which could lead to confusion when viewing what broke.
{arg}was not being replaced when a command was being run.- We no longer check the name/lore if
{arg}is present which in hindsight was a bad idea. - Please read the Changes for further information on how this works now.
- You can manually add this to your existing configurations that do use the
{arg}variable.
- We no longer check the name/lore if
- Added a new configuration option
- Fixed another issue with the LegacyColorMigrator.
- Added new config option to vouchers.yml / vouchers folder
voucher: # The material. item: 'diamond_helmet' # An example of how to use custom model data custom-model-data: -1vouchers: # Where you make your vouchers. # The name of the voucher. money: # The material. item: 'diamond_helmet' # An example of how to use custom model data custom-model-data: -1- Added a new migrator type called
VouchersDeprecatedwhich at the moment only migrates old custom model data usage to the format above.- The condition to migrate is that
itemmust follow the formatdiamond_helmet#1347
- The condition to migrate is that
- Fixed startup issue with old custom model data format i.e.
diamond_helmet#1347 - Added more verbose logging to all existing migrators.
- Fixed issues with whitelist/blacklist checks.
- Fixed issue with the migration messages not sending.
Please report any bugs to our GitHub issues tab!
https://github.com/Crazy-Crew/CrazyVouchers/issues
New Items section
I've made a new
Itemssection which is currently in use in CrazyCrates, I am simply bringing it to CrazyVouchers.You can experiment with this option by enabling it in your
config.yml- The command /crazyvouchers migrate -mt NewItemFormat will update all
Itemssection to the best it can.- The migration is one way, Please be wary of this and take backups.
Legacy Color Codes
Legacy color codes are no longer supported, They have been replaced by MiniMessage, https://docs.advntr.dev/minimessage/format
Migrate
- https://toolbox.helpch.at/converters/legacy/minimessage
- https://www.birdflop.com/resources/rgb/
- Use the "Decode" option labeled experimental, I complained about legacy color code garbage about 2 years ago, they remembered and pinged me.
- /crazyvouchers migrate -mt VouchersColor which will try it's best to convert them.
Other migration types
We offer migration types for the following
- VouchersDeprecated
- Any deprecated option will be replaced/removed with this
- VouchersNbtApi
- Migrates old vouchers to new vouchers
- VouchersSwitch
- Switches between single and multiple files
- VouchersRename
- Renames voucher-codes.yml to codes.yml, This takes a backup of the previous file.
Permissions
Permissions are no longer the same, Permissions were renamed and the old nodes were always meant to be a temporary usage, This allows more control over what you can give a player.
/vouchersand/voucherare considered aliases for/crazyvouchersCommands
New Old Command Aliases crazyvouchers.giveallvouchers.admin/crazyvouchers giveallN/Acrazyvouchers.migratevouchers.admin/crazyvouchers migrateN/Acrazyvouchers.reloadvouchers.admin/crazyvouchers reloadN/Acrazyvouchers.redeemvouchers.redeem/crazyvouchers redeemN/Acrazyvouchers.typesvouchers.admin/crazyvouchers types/crazyvouchers listcrazyvouchers.helpvouchers.admin/crazyvouchers helpN/Acrazyvouchers.openvouchers.admin/crazyvouchers open/crazyvouchers admincrazyvouchers.givevouchers.admin/crazyvouchers giveN/Acrazyvouchers.accessvouchers.admin/crazyvouchersN/AOther
New Old crazyvouchers.notify.dupedvouchers.notify.dupedcrazyvouchers.bypassvouchers.bypassOther Changes
Trim Material
Before
voucher: # The items to give when claiming the voucher. items: - 'Item:DIAMOND_HELMET, Trim-Pattern:SENTRY, Trim-Material:QUARTZ, Amount:1' - 'Item:DIAMOND_CHESTPLATE, Trim-Pattern:DUNE, Trim-Material:REDSTONE, Amount:1'After
voucher: # The items to give when claiming the voucher. items: - 'Item:DIAMOND_HELMET, Trim:SENTRY!QUARTZ, Amount:1' - 'Item:DIAMOND_CHESTPLATE, Trim:DUNE!REDSTONE, Amount:1'Enchantments
New Old protectionPROTECTION_ENVIRONMENTALfire_protectionPROTECTION_FIREfeather_fallingPROTECTION_FALLblast_protectionPROTECTION_EXPLOSIONSprojectile_protectionPROTECTION_PROJECTILErespirationOXYGENaqua_affinityWATER_WORKERsharpnessDAMAGE_ALLsmiteDAMAGE_UNDEADbane_of_arthropodsDAMAGE_ARTHROPODSlootingLOOT_BONUS_MOBSsweepingSWEEPING_EDGEefficiencyDIG_SPEEDunbreakingDURABILITYfortuneLOOT_BONUS_BLOCKSpowerARROW_DAMAGEpunchARROW_KNOCKBACKflameARROW_FIREinfinityARROW_INFINITEluck_of_the_seaLUCK- No longer rely on ItemMeta anymore which means a large performance increase due to the nature of how ItemMeta works.
- Commands have been overhauled which will make adding new commands easier!
- Replaced plugin.yml with paper-plugin.yml.
- Added support for item models which serves as a replacement for
Custom Model Data - Fixed an issue with anti-craft not working.
- Sounds are now mojang mapped, i.e. we use sounds from minecraft.wiki sounds.json, https://minecraft.wiki/w/Sounds.json
Updated to 1.21.8- Added new config option to fusion.yml,
recursion_depthwhich lets you define how many folders to loop through incodesorvouchers
voucher: # Any generic component for the Item. components: # Hides the entire tooltip hide-tooltip: false # Hides components defined in this list. It allows more control than above. # Leave the hide-tooltip false if you plan to use this. hide-tooltip-advanced: - "enchantments" # The item model, Mojang introduced this in 1.21.4... this replaces custom model data! # Set this to blank for it to do nothing. item-model: # The namespace i.e. nexo namespace: "" # The key i.e. emerald_helmet key: ""- The command /crazyvouchers migrate -mt NewItemFormat will update all
- Fixed an issue with dupe protection
- Added /crazyvouchers migrate which will migrate old vouchers to the new vouchers
- The permission for the command is
crazyvouchers.migrate
- The permission for the command is
- Deprecated use of
voucher.adminandvoucher.redeem- They have been replaced by
crazyvouchers.adminandcrazyvouchers.redeem - Old permissions starting with
voucherwill work for the time being.
- They have been replaced by
- Deprecated old /voucher command, please use /crazyvouchers as /voucher will be removed in future updates.
- Fixed an issue where dupe protection uuids were applied twice.
- Added /crazyvouchers migrate which will migrate old vouchers to the new vouchers
Update
- Removed NBT API as warned previously since 3.8.
- Previous vouchers created prior to 3.8 will be useless.
- Updated to 1.21.4.
- Removed NBT API as warned previously since 3.8.
Changes:
- Updated to 1.21.3
- Bumped nbt-api
- Please make an effort to migrate existing vouchers made prior to v3.8 as nbt-api will be removed.
- This is a notice, to give you more time until that happens.
Changes:
- Check if player is null on /voucher give, and return early.
Fixed:
- The argument was not being applied to the voucher, due to checking if it was empty. We have to check if it's not empty.
Changes
- Check if item is air everywhere, before going forward to please NBT-API
A fix, but not really a fix.
- I simply told nbt-api to shut up about the material being air.
Notice:
- Once 1.21.2 drops, NBT-API will be stripped from the plugin.
- This is your warning to migrate old vouchers players have and technically the second warning, I forgot to push this update.
- All old vouchers will stop working once NBT-API is removed!
- The migration for old configurations has been removed.
- If you need to migrate, use 3.7.4 as the migration works there.
Future Changes:
- MiniMessage Support
- There will be a migration from Legacy Color Codes -> MiniMessage
- Updates to configurations with materials, sounds, and how items work
- Internally, all materials, and trims will be handled internally, so need not worry about that.
- Sounds will have to be migrated manually, not much I can do about that.
- This change with sounds will allow custom sounds from resource packs.
- This is a step in removing a large chunk of deprecated, or otherwise outdated ways of doing things as Minecraft has changed a lot internally.
Additions:
- Added dupe protection for vouchers which is toggled false.
- A config option was also added to append a line to the lore.
Changes:
- Switched vouchers to use PersistantDataContainer which is much more performant, and achieves a similar goal.
- Previous vouchers will work until 1.21.2, so please migrate them.
- Allowed switching between file systems on
/crazyvouchers reload- There will not be a migration to switch between.
- Updated vital api
Fixes:
- Fixed an issue on Folia #73
- Once 1.21.2 drops, NBT-API will be stripped from the plugin.
Changes:
- Bumped to 1.21.1
- Bumped nbt api
Fixed:
- Issue with file manager not properly loading/reloading files.
