Skip to content

OpenInv 5.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Jul 17:17
· 47 commits to master since this release
5.0.0
7d63500

Supported Minecraft versions

1.21, 1.20.6, 1.20.4

Note: Early builds of 1.21 before InventoryView was changed to an interface are no longer supported.

What's Changed

  • Permissions overhaul - this may break your permission setups!
    • Please see the wiki for all current nodes. There is a section for migration to help speed up the process.
    • Nodes are all lower case. This helps reduce confusion configuring case-sensitive permissions plugins.
    • Rework inheritance hierarchy, most nodes renamed to fit structure better
    • Add permission for drop slot
    • Add permissions for bypassing armor restrictions
    • Replace override/exempt nodes with tiers modeled after vanilla's op levels
    • Remove nodes for having anycontainer/silentcontainer enabled by default
      • These only affected first-time usage of the plugin and were permanently overridden as soon as they are toggled. They usually only serve to cause confusion when people use too-aggressive wildcard node permission plugins that ignore default-false states.
  • From-scratch rewrite of inventory/ender chest for 1.21
    • Inventory layout redone to be more legible
      • javaw_2024-07-05_09-45-44
      • Added an optional resource pack! This is the optional file openinv-legibility-pack.zip.
        • javaw_2024-07-05_09-52-52
        • Placeholders are customizable so you can ensure compatibility with any existing resource packs.
    • Add crafting slots
      • Crafting result is visible, but view-only
      • Only available for players in survival gamemodes - can cause unexpected behavior and item loss with other gamemodes. Creative client may just delete items.
    • Add cursor slot
      • Only available for players in survival gamemodes - can cause unexpected behavior and item loss with other gamemodes. Creative client does not keep server appraised of cursor content when in own inventory and theoretically at other times depending on client.
    • Add armor quick-equip support
    • Improve drag handling by removing duplicate slots from view
      • Opening own inventory only displays equipment and drop slot
    • Improve plugin compatibility
      • Report correct slot type for inventory views
      • Report fake slots as not being part of an inventory
      • Placeholder items are client-side items that are kept in sync by the server. Other plugins cannot add them to inventories.
  • Improve locale handling
    • Add fallthrough to "parent" language
      • This means, for example, that to configure en_us.yml, en_ca.yml, etc. all you have to do is configure en.yml and delete the ones you don't want to treat specially.
      • Languages that did not have multiple bundled variants have been converted to parent languages for convenience.
    • Use English for lowercasing locale name
      • Fixes potential issues locating translations for certain languages on systems in other languages
    • Migrate locales to "locale" subdirectory to reduce clutter
    • Fix container settings getting clobbered/not suggested correctly/not editable
      • This was due to a quirk of the YAML parser. OpenInv was looking for 'on' and 'off' but translation files provided 'true' and 'false' due to the paths being interpreted as truthy. The built-in translations have had their paths quoted to fix this. You will need to manually relocate these if you have custom translations.
  • Fix /searchinv missing armor/off-hand slots
    • Note: This still does not search crafting slots or cursor.
  • Code health
    • Remove long-deprecated methods
    • Remove non-API utilities from API packages
      • This is technically non-breaking (they're still included in the same place with the same visibility in the resulting file), so I don't want to wait another several years with them deprecated just to give developers potentially using them a warning.
    • Restructure project
      • The goal here is to enable writing basic addons that will get bundled as optional files in releases. The existing build process of "jam everything into the reactor and output the contents as a build" worked really nicely for allowing compiling only specific internal modules and producing a plug-and-play result plugin, but now that OpenInv only usually supports up to 3 internal versions, the entry bar is much lower than when it was supporting 20-ish.
    • Reduce reflection usage
      • Ideally this will reduce the risk of accidents when doing manual remapping of OpenInv.
    • Improve Paper support
      • Add a warning noting why OpenInv isn't working if the internal modules fail usability and remapping is disabled.
      • Add explicit Spigot mapping status to manifest

Full Changelog: 4.4.7...5.0.0