nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
Filter loader...
Filter versions...
Filter channels...

Update

  • Added 2 new toggles in the config.yml which allow you to switch what right/left do when interacting with physical or virtual crates.
  • Added the ability to migrate user data with ExcellentCrates by adding -data to the command which ignores migrating crates.
    • crazycrates migrate ExcellentCrates -d
  • Updated the migration command format
    • crazycrates migrate -mt <migration_type> -c <crate_name> -d
      • -d/--data is used for migrating from user data from other crate plugins.
        • If you wish to migrate from a crates plugin like ExcellentCrates, Do not use -d
      • -mt/--migration_type is used to specify what migration type you want to use.
      • -c/--crate is used for supplying a crate name.
  • Fixed multiple issues with the ExcellentCrates Migrator.
  • Fixed an issue where sometimes fireworks would spawn double stacked or triple stacked.
    • This is because in the sections handling giving the prizes, we forgot how many times we actually spawned fireworks.
  • Fixed a similar issue where the PlayerPrizeEvent was called multiple times, sometimes even 3 times.
    • This is a similar reason to above, we forgot where we used it, or method stacking.
  • No longer spawns a firework when a prize is picked before opening the re-spin menu as the idea of the fireworks is only when the prize is actually given to the player.

Changes:

  • Allow mass-open to be used on the following crate types:
    • QuadCrates
    • CasinoCrate
    • CosmicCrate
    • FireCracker
    • QuickCrate
  • Updated logging messages for tiers in CasinoCrate
    • Only checking if a tier is null, rather than if the config option is empty, then checking if a tier is null.
  • Moved calling the player prize event, and spawning fireworks to the method which gives the prize.

Fixed:

  • The migrator for ExcellentCrates was setting to Chance not Weight in our crate configs during migration.

Fixed:

  • Fixed an issue with the broadcast toggle.

Changes:

  • Bumped to 1.21.3

Additions:

  • Added a feature to turn off the glass border in CSGO, RouletteCrate, WheelCrate, and WonderCrate #800
Crate:
  # Global Settings
  Settings:
    # Handles settings related to the border
    Border:
      # Settings related to the glass border
      Glass-Border:
        Toggle: true # Should the glass border be enabled?

Fixed:

  • No longer ignore items with a -1 weight when building the preview, this prevented prizes being able to be used as filler items.

Fixed:

  • An issue with the max pull lore being appended, despite the config option being set to -1 for max pulls.

Changes:

  • Updated global crate broadcast, and per prize broadcast which overrides crate broadcasts

Fixed:

  • No longer ignore items with a -1 weight when building the preview, this prevented prizes being able to be used as filler items.

Changes:

  • Added <reset> after the key name or crate name when logging crate/key events to console.
  • Strip colors when logging to the crates.log/keys.log file.

Changes:

  • Updated use-different-random comment in config.yml.
  • Add more verbose logging, and an extra safety net to Casino Crate.
    • This requires is_verbose set to true in vital.yml

Fixed:

  • Properly including calculate the total weight of the tiers for casino crate.
  • Properly calculate the per tier prize pools total weight, for things like Casino or Cosmic Crate.

Fixed:

  • Fixed an issue with infinite re-spins on join due to using temporary cache.
  • Fixed case-sensitive issue with /crazycrates claim

Breaking Changes:

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.
    • <amount> is the Max-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.

Fixed:

  • 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.

Fixed:

  • 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.

Changes:

  • No longer do hefty checks on PlayerMoveEvent if the player is not in the session for QuadCrate

Big 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 of slot:1
  • Similar tweaks have to be made with subtracting 1 from each option in the crate files
    • Specifically, related to the position of the crates in /crates and the position of the tiers in the tier previews
  • Why did this change? Inventories naturally start from 0, and the gui framework I switched to does start from 0
    • 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.
    • 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 all crate files.

Fixed:

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 or Items were all not found.
    • This would use the DisplayItem, DisplayName, DisplayLore, DisplayEnchantments and DisplayAmount as the prize.
  • 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 to use-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.

Fixed:

  • 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 the crate object.

Fixed:

  • Fixed a class cast exception with the ItemBuilder when using Data: or DisplayData:

Fixed:

  • Fixed an issue with /crazycrates migrate ExcellentCrates
    • Added a missing configuration option, that is required in our crate configs.

Changes:

  • 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.

Added:

  • 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 #755
    • use-required-keys in config.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 by Crate.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 by Crate.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.
  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 return Crate.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 now Crate#getFileName() while Crate#getCrateInventoryName() is Crate#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, if use-old-editor in the config.yml is set to false
  • A lot of other changes were internal clean up, I was merely being a Janitor. functionality should not change.
  • Deprecated use-minimessage in config.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 is Vital/crazycrates-config.yml
    • Once the option use-minimessage is removed, setting is-legacy to false will allow MiniMessage

External resources


Project members

CrazyCrew

CrazyCrew

Organization


Technical information

License
MIT
Project ID