CrazyCrates 4.0
on Oct 7, 2024Breaking Changes:
- The weight system has been merged in, which effectively replaces the Chance/Max Range system.
- You must run the command /crazycrates migrate WeightMigration, which will convert your configurations.
- https://docs.crazycrew.us/docs/plugins/crazycrates/guides/crates/weight-system
Additions:
- Added the ability to log the plugin actions to file i.e. crates.log and keys.log... A list of events currently tracked
- event_key_given
- event_key_sent
- event_key_received
- event_key_transferred
- event_key_removed
- event_key_taken
- event_key_taken_multiple
- event_crate_opened
- event_crate_force_opened
- event_crate_mass_opened
- If you notice anything not tracking right, or lacking tracking. Create an issue.
- The files will zip on /crazycrates reload, plugin shutdown, plugin startup.
- This avoids the files getting large, and leading to issues with crashing the server.
- It mimics how Paper handles their .log files...
- Added /crazycrates claim <prize> which claims prizes they didn't get from respins
Changes:
- Added config options, which allow you to configure slots 4 and 22 above the prize in
csgo
crate - Added the ability to run commands with the gui customizer.
- Added the ability to respin prizes to each crate file, if the option is enabled.
Crate:
# Global Settings
Settings:
# Settings related to rewards.
Rewards:
# Should a yes/no popup be made, to ask if they want to keep the prize?
Re-Roll-Spin: false
# Should there be a limit to how many times they can re-roll?
Permission:
# Should this be enabled?
Toggle: false
# Should this persist restarts? i.e. writes to disk the amount of respins, and reads the amount of respins.
Persist: false
# This will define how many permissions will be registered to the server per crate.
# i.e. crazycrates.respin.<crate_name>.1-20
# It will simply register multiple permissions, so it shows up in things like LuckPerms.
Max-Cap: 20
- You can view an example of this in
examples/crates/CrateExample.yml
- If
Permission.Persist
is set to true, we will write to disk, and the re-spins will be considered global- If the option is set to false, it will be cached... and allow re-spins for X amount every time they open a crate.
- You must have
Re-Roll-Spin
set to true to allow re-rolls. - You must have
Permission.Toggle
set to true, for it to be permission based.- The higher the permission, the more spins they have.
- Internally, we loop through a player's permissions.... and find the highest matching one with
crazycrates.respin.<crate_name>.<amount>
- The permissions will be registered on startup, and on /crates reload if not found.
- We also unregister on /crates reload, if you set
Permissions.Toggle
to false.
- We also unregister on /crates reload, if you set
<amount>
is theMax-Cap
, It will not go any higher... The higher that number is, the heavier the permission checks.
- Crate Types such as Cosmic Crate, Casino Crate, QuadCrate, and WarCrate do not have support for re-spins
- Casino Crate has 3 prizes, the gui currently only supports 1 prize.
- Cosmic Crate has 4 prizes that you pick, the gui currently only supports 1 prize.
- QuadCrate has 4 prizes, the gui currently only supports 1 prize.
- WarCrate is in a similar situation, where it's picked prizes.
- The complexity for these crate types above will take some time to add it in while it not being a train wreck.
CrazyCrates 3.8.3
on Sep 24, 2024Fixed:
- Fixed an issue, where if the border was toggled off. and you didn't have a second page, a glass pane would be there.
- It will simply be air now until the border is on.
CrazyCrates 3.8.2
on Sep 18, 2024Fixed:
- Fixed an issue with pagination on prizes.
- Fixed an issue with the next/main/back buttons being static not dynamic.
- They would not re-size with the gui if you changed the row size.
CrazyCrates 3.8.1
on Sep 17, 2024Changes:
- No longer do hefty checks on PlayerMoveEvent if the player is not in the session for QuadCrate
CrazyCrates 3.8
on Sep 15, 2024Big Changes: ( only for existing configurations )
If you DO not change this, all your previews will look weird.
- config.yml has had a change that cannot be automatically done.
- the customizer specifically the
slot
option, due to recent inventory changes. - you must subtract 1 from each option, and start from
slot:0
instead ofslot:1
- the customizer specifically the
- Similar tweaks have to be made with subtracting
1
from each option in thecrate
files- Specifically, related to the position of the crates in
/crates
and the position of the tiers in the tier previews
- Specifically, related to the position of the crates in
- Why did this change? Inventories naturally start from
0
, and the gui framework I switched to does start from0
- This change allows for much easier inventory management and future features.
Added:
- Added a new feature to prizes, The ability to set a limit on prizes.
- If a prize has Max-Pulls set to any number i.e. 1 or higher.
- That is limit globally for any player to claim it.
- Once that limit is reached, It will no longer be winnable.
- %pulls%, %maxpulls% are 2 new placeholders which can be used in
DisplayLore
,DisplayName
,Messages
,Commands
and the global/per prize broadcast.
- %pulls%, %maxpulls% are 2 new placeholders which can be used in
- A lore will be added to any prize that meets the criteria.
- This message can be edited in messages.yml, and set to empty if you don't want it appended.
An example of what a prize would look like with the Max-Pulls
option
'6':
# The name of the item to display in the gui.
DisplayName: "<green>Fancy Shield <gray>| <red>%pulls%<gray>/<red>%maxpulls%"
# The enchants to display in the gui.
DisplayItem: "shield"
# A list of patterns: https://jd.papermc.io/paper/1.21/org/bukkit/block/banner/PatternType.html
# The patterns don't need to be uppercased. you can type them lowercased along with the colors.
# Patterns have to be laid out in a specific order, otherwise it won't look right.
# This also applies to the Items section.
DisplayPatterns:
- "base:white"
- "gradient_up:light_gray"
- "straight_cross:light_blue"
- "flower:light_blue"
# Prize settings
Settings:
# The custom model data of the item, -1 is disabled.
Custom-Model-Data: -1
# The amount of times this item can be pulled.
Max-Pulls: 10
- Added the ability to have per prize broadcasts and global broadcast for prizes.
- The permissions used to filter out who can see the broadcast are registered as proper permissions, so they show up in LuckPerms
- They do get removed when you turn off the per prize broadcast or the global broadcast.
Removed:
- All legacy color codes are removed, I do not want to maintain it anymore as I've figured out ways around needing it.
- You can run /crazycrates migrate LegacyColorAll which should migrate all values in
config.yml
,messages.yml
and allcrate
files.
- You can run /crazycrates migrate LegacyColorAll which should migrate all values in
Fixed:
- CSGO Crate animation was delayed by 1 tick, for some reason.
- Fixed https://github.com/Crazy-Crew/CrazyCrates/issues/788
- Fixed spacing in migrate command usage.
Changes:
- Improved /crazycrates migrate internally.
- ExcellentCrates Migrator has changed significantly, report any bugs you might find. It will convert legacy color codes to MiniMessage.
- Properly warn the player/sender if the inputted migration type is not valid.
- Removed sections of code related to giving a prize if
Editor-Items
,Commands
orItems
were all not found.- This would use the
DisplayItem
,DisplayName
,DisplayLore
,DisplayEnchantments
andDisplayAmount
as the prize.
- This would use the
- Updated the /crazycrates additem command
- CrazyCrates additem command now supports MiniMessage, regardless of the item format used.
- This is only happening, as legacy colors have been removed and I did some research to improve things.
- Updated the config option
use-old-editor
, It is now migrated touse-new-editor
true
uses the new editor,false
uses the old one which is more readable. The option should be migrated on startup.
- Updated Vital API.
CrazyCrates 3.7.4
on Aug 30, 2024Fixed:
- Fixed an issue with some commands not properly validating virtual keys
Deprecation
- Deprecated
PlayerPrizeEvent(player, crate, crateName, prize)
- Please use
PlayerPrizeEvent(player, crate, prize)
as the crateName is already passed through via thecrate
object.
- Please use
CrazyCrates 3.7.3
on Aug 24, 2024Fixed:
- Fixed a class cast exception with the ItemBuilder when using
Data:
orDisplayData:
CrazyCrates 3.7.2
on Aug 24, 2024Fixed:
- Fixed an issue with /crazycrates migrate ExcellentCrates
- Added a missing configuration option, that is required in our crate configs.
CrazyCrates 3.7.1
on Aug 23, 2024Changes:
- Removed all getItemMeta/hasItemMeta calls for checking PersistentDataContainer
- We now check ItemStack#PersistentDataContainerView which no longer relies on ItemStack#getItemMeta
- TLDR: stonks
Added:
- Added a toggle, which allows you to revert the chance made previously.
crazycrates.open.<crate_name>
->crazycrates.deny.open.<crate_name>
- The configuration option can be found in the
config.yml
i.e.root.use-new-permission-system
which defaults to false- This option is subject for removal however toggled like this for now,
false
means the old system i.e.crazycrates.open.<crate_name>
is back. - The new way i.e.
crazycrates.deny.open.<crate_name>
will be removed in the next version of Minecraft! - All further experiments will be behind toggles like this one going forward.
- This option is subject for removal however toggled like this for now,
CrazyCrates 3.7
on Aug 23, 2024Added:
- Ability to migrate crate configurations from ExcellentCrates.
- active locations from ExcellentCrates are also migrated!
- Added a new feature where the
RequiredKeys
can also take that amount of keys #755use-required-keys
inconfig.yml
has to be true for that to take effect.
- Added %chance% placeholders to prizes and tiers
Crate Config Changes:
Crate.CrateName
is deprecated, and has been replaced byCrate.Name
- The options were duplicate, and one wasn't used which annoyed me.
Crate.CrateName
will be removed in the next version of Minecraft!- You can run /crazycrates migrate CratesDeprecated to migrate deprecated options.
Crate:
# https://docs.crazycrew.us/docs/plugins/crazycrates/misc/crate-types
# Make sure to check out the wiki for anything not explained here.
# https://docs.crazycrew.us/docs/category/crazycrates
# See CosmicCrate.yml to see how the Cosmic CrateType works.
CrateType: Casino
# Name of the Inventory if a GUI crate.
CrateName: "<dark_blue>Casino Crate" # Deprecated, but will still work
# Name of the item in the GUI.
Name: "<bold><dark_blue>Casino Crate</bold>" # This is what is used now if CrateName isn't found
# The lore of the item in the GUI.
Lore:
- "<gray>This crate contains strange objects."
- "<gray>You have <gold>%keys% keys <gray>to open this crate with."
- "<gray>You have opened this crate: <gold>%crate_opened% times"
- "<gray>(<yellow>!<gray>) Right click to view rewards."
Crate.Preview-Name
is deprecated, and has been replaced byCrate.Preview.Name
- The option was meant to always be under
Crate.Preview
Crate.Preview-Name
will be removed in the next version of Minecraft!- You can run /crazycrates migrate CratesDeprecated to migrate deprecated options.
- The option was meant to always be under
Preview:
# The name of the inventory for the preview menu.
Name: "<green>Basic Crate Preview" # moved it under Preview
# Turn on and off the preview for this crate.
Toggle: true
# How many lines the Crate Preview should have. Including Header and Bottom (Between 3 and 6)
ChestLines: 6
Glass:
# Turn the glass border in the preview on and off.
Toggle: true
# The name of the border item.
Name: " "
# The item that shows in the border. Can be glass or any other item.
Item: "gray_stained_glass_pane"
# The custom model data of the item, -1 is disabled.
Custom-Model-Data: -1
Fixes:
- Fixed a rare issue where you weren't able to open QuickCrate
- Fixed a duplication issue with CosmicCrate
- Fixed an issue where CMI likely wouldn't be detected
Changes:
- Right click now opens the crate menu as well.
- Checked location strings instead of object ids
- Simplified multiple location getters, don't need to get the same location 3 times if we aren't changing it.
{crate}
in messages will now returnCrate.Name
instead of the file name- Cleaned up internals related to sometimes, the file name being used along with bad naming schemes.
Crate#getName()
is nowCrate#getFileName()
whileCrate#getCrateInventoryName()
isCrate#getCrateName()
- Check if the prizes section is empty before opening a crate, prevents unneeded chance calculation.
- Overhauled the
/crazycrates migrate
command, sends a more detailed message of what was migrated.- files that show up red failed to migrate while files that are green succeeded,
- it also tells you the migration type you picked when running the command, while also reloading the plugin!
- Only saving to file, if we find anything that needs to be migrated with
CratesDeprecated
option - Only migrate
Editor-Items
, ifuse-old-editor
in theconfig.yml
is set tofalse
- A lot of other changes were internal clean up, I was merely being a Janitor. functionality should not change.
- Deprecated
use-minimessage
inconfig.yml
, it will be removed in the next major version of minecraft- The library (made by me), now has its own directory much like bStats. Each plugin using it will get a config generated inside it.
- You simply after
use-minimessage
is removed will have to edit that file instead which isVital/crazycrates-config.yml
- Once the option
use-minimessage
is removed, settingis-legacy
to false will allow MiniMessage
CrazyCrates 3.6.1
on Aug 11, 2024Added:
- Bumped minecraft version to 1.21.1
- You should update to 1.21.1 as soon as possible, there is no changes to prevent any plugins from being used on 1.21.1
- This version of Minecraft is a minor version fixing bugs, it's plug and play unless the plugin developer is insane and has some hardcoded restrictions.
Changes:
- Properly relocate the command framework
- CsgoCrate now when the task is finished, sets an item below and above the prize you won.
- In the future, this will be configurable. I just don't know what to call it.
- Updated permission description
- Updated exclude.give-all to default to FALSE, #774
- Bumped CMI dependencies
Fixed:
CrazyCrates 3.6
on Jul 30, 2024Added:
- Added missing configurable messages to places around the plugin, all messages should now be configurable.
- Added a new config option where you can decide to send messages in chat or in the actionbar.
- Messages that send a list to chat will by default never be sent to actionbar as it would not look pretty.
- Added a new placeholder,
{required_amount}
tocrates.requirements.not-enough-keys
- Added another new placeholder,
{key}
tocrates.requirements.not-enough-keys
, #756- This placeholder returns the name of the key.
- Added a new migration type which converts deprecated fields in the crate files.
- Added 2 new toggles to the
config.yml
which you can find at the top of the file.- The
use-old-editor
requiresuse-minimessage
to be false as it's uses legacy color codes.
- The
- Added per prize broadcast, this will send a message to every player on the server.
'5':
# The display name of the item.
DisplayName: "<yellow>$1,000"
# The item to display in the gui.
# The enchanted book will function with the enchants properly in an anvil.
DisplayItem: "sunflower"
# Prize settings
Settings:
# The custom model data of the item, -1 is disabled.
Custom-Model-Data: -1
# Broadcast a message to the server
Broadcast:
# If the messages should be sent.
Toggle: false
# The messages to broadcast.
Messages:
- '<red>%player% won the prize <yellow>%reward%.'
# If the player has this permission, they don't get the broadcast.
Permission: 'your_permission'
- Added optional arg for
Player
with crazycrates debug, so you can use it in console. - Added missing message notifying an item was added using /crates additem
Changes:
- The permission check for whether a player can open a crate has been changed.
crazycrates.open.<crate_name>
is nowcrazycrates.deny.open.<crate_name>
- The crate name is case-sensitive, so it must match exactly the crate name in the
crates
folder - If the file name is CrateBeans.yml, it must be
crazycrates.deny.open.CrateBeans
- If a message in the
messages.yml
is blank, it will not send the message. - Update default message for
crates.crate-no-permission
- Update some comments because of grammar.
- Update logger message when the
CrateOpenEvent
is cancelled to be more verbose.
Fixed:
- Wheel Crate animation now spins properly. #764
- Roulette Crate inventory size is now normal. #765
- Don't give 2 prizes if the editor items isn't empty.
- Casino/Cosmic crate tier previews would share total items causing pagination to appear despite the inventory not being full.
Deprecations:
- Deprecated
{key_amount}
and replaced it with{required_amount}
incrates.requirements.not-enough-keys
{key_amount}
will stop working in the next major version of Minecraft.
CrazyCrates 3.5.9
on Jul 23, 2024Added:
- Ability the ability to make items glow in
Items
Items:
- 'Item:spawner, Glowing:true'
Fixed:
- The config option for
verbose-logging
was not applied to some parts of the plugin.
Changes:
- No longer add the contents of
DisplayData
to theItems
section on/crazycrates reload
- Lowercase shield pattern types and colors which also fixed a display issue, so previous shield pattern/color configs work. They no longer need to be typed like GRADIENT_UP:LIGHT_GRAY, you can simply type gradient_up:light_gray
- Deprecated
Patterns
in favor ofDisplayPatterns
, it will be removed in the next major version of Minecraft.
'6':
# The name of the item to display in the gui.
DisplayName: "<green>Fancy Shield"
# The enchants to display in the gui.
DisplayItem: "shield"
# A list of patterns: https://jd.papermc.io/paper/1.21/org/bukkit/block/banner/PatternType.html
# The patterns don't need to be uppercased. you can type them lowercased along with the colors.
# Patterns have to be laid out in a specific order, otherwise it won't look right.
# This also applies to the Items section.
DisplayPatterns:
- "base:white"
- "gradient_up:light_gray"
- "straight_cross:light_blue"
- "flower:light_blue"
CrazyCrates 3.5.8
on Jul 22, 2024Added:
- Ability to define spawner type in prizes
'1':
# The name of the item to display in the gui.
DisplayName: "<green>Creeper Spawner"
# The enchants to display in the gui.
DisplayItem: "spawner"
# Prize settings
Settings:
# The custom model data of the item, -1 is disabled.
Custom-Model-Data: -1
# The type of mob for the spawner.
Mob-Type: creeper
# The amount to display in the gui.
DisplayAmount: 1
# The max range i.e. 15/100 = 15% chance to win.
MaxRange: 100
# The chance to win i.e. 15%
Chance: 23
Items:
- 'Item:spawner, Mob:creeper'
Changes:
- Play knockback/sounds if they don't have the required keys.
- Removed runtime dependency loader.
Cosmic Crate:
- Cosmic Crate was changed back in March for the calculation of tiers to be handled when you open the inventory, so that when picking a mystery crate. The choice would actually matter!
- It has been brought to my attention of being able to skimp it using client side mods. this has been addressed, the mods will no longer be able to skimp it by seeing item differences.
- The calculation still happens but, the picks are stored internally to the player's uuid in a cache which clears when the player quits, the inventory closes or the crate task ends for X reason.
Fixed:
- Issue with file not found on first install.
- Issue where examples folder wasn't being created properly.
- Issue with shields not getting color or patterns.
Wonder
crate type never playing the cycle sound.Wheel
crate type playing the stop sound twice.Wheel
crate type not playing the cycle sound as most people have the client music muted.War
crate type played the cycle sound a bit early.
CrazyCrates 3.5.7
on Jul 19, 2024Fixed:
- Issue with /crazycrates migrate.
- Multiple null checks in commands.
- Issue with invalid argument output not outputting the proper syntax.
Changes:
- Updated migrator command format.
- Updated invalid argument output to just describe it better.
CrazyCrates 3.5.6
on Jul 18, 2024Fixed:
- Re-worked how display names are handled for items/previews, This format now works properly and stacks with vanilla items.
'1':
# The item to display/give in the gui.
DisplayItem: "diamond"
# The amount to display/give
DisplayAmount: 3
# The max range i.e. 25/100 = 15% chance to win.
MaxRange: 100
# The chance to win i.e. 25%
Chance: 25
- Applied a bandaid to quadcrates
- Use correct crate name for {crate} when a crate location already exists in
/crazycrates set <crate>
- Fixed npe with /keys view, player name wasn't supplied, so it freaked out.
- Fixed npe with placeholder parsing in messages.
Changes:
- Optimize display reward above quad/quick crate
CrazyCrates 3.5.5
on Jul 15, 2024Fixed:
- Issue with ItemBuilder not allowing further modification of the Oraxen items.
Previous Update
Changes:
- When interacting with a crate previously, it would check both virtual and physical keys, but it was a coin flip on what it would use, the interaction functions the same now as
/crates
in terms of hierarchy... physical keys are checked first then virtual keys. - If you hold a key that can't open the crate you are looking at, it will instead default to checking your virtual keys if the config option is enabled, if a key is found... it will open the crate using virtual keys. as always, please report any bugs.
Fixed:
- Cancel the key check event if the checks find a player does not have enough keys.
- Simplify key checks so virtual keys can work, this removes an unneeded physical key check as we were checking it twice? why...
- Config comments for
physical-crate-accepts-physical-keys
andvirtual-crate-accepts-physical-keys
inconfig.yml
were incorrect.
CrazyCrates 3.5.4
on Jul 15, 2024Changes:
- When interacting with a crate previously, it would check both virtual and physical keys, but it was a coin flip on what it would use, the interaction functions the same now as
/crates
in terms of hierarchy... physical keys are checked first then virtual keys. - If you hold a key that can't open the crate you are looking at, it will instead default to checking your virtual keys if the config option is enabled, if a key is found... it will open the crate using virtual keys. as always, please report any bugs.
Fixed:
- Cancel the key check event if the checks find a player does not have enough keys.
- Simplify key checks so virtual keys can work, this removes an unneeded physical key check as we were checking it twice? why...
- Config comments for
physical-crate-accepts-physical-keys
andvirtual-crate-accepts-physical-keys
inconfig.yml
were incorrect.
Previous Update
Changes:
- The fix below required preview to be only opened through left click so right click can function as for only opening the crate.
Fixed:
- The key check on right-clicking a crate was working, however we didn't inform the player they had no key.
CrazyCrates 3.5.3
on Jul 15, 2024Changes:
- The fix below required preview to be only opened through left click so right click can function as for only opening the crate.
Fixed:
- The key check on right-clicking a crate was working, however we didn't inform the player they had no key.
CrazyCrates 3.5.2
on Jul 12, 2024Fixed:
- Issue with file manager not properly loading/reloading files.