Skip to content

🌈 Rainbow Armor v3.3.0

Latest

Choose a tag to compare

@TomDesch TomDesch released this 21 Feb 15:20
· 1 commit to master since this release

Thank you to MrSal for the persistence, in-game testing, and bug report that kept this issue alive, and to Cronu for looking into it as well.


What changed

πŸ”§ Inventory interaction guard rewrite

The previous approach to preventing armor duplication and destruction was a blanket ban on all armor-related inventory interaction. This worked, but it was far too restrictive. Players couldn't even move a spare chestplate from their bag to a chest while wearing rainbow armor.

3.3.0 replaces this with a surgical approach. The guard now blocks only the exact interaction patterns that can actually cause a dupe or destroy a piece, and explicitly allows everything else.

βœ… Now allowed while wearing rainbow armor

  • Freely moving armor pieces between bag slots (click, drag, pick up, place down)
  • Moving armor pieces into and out of external inventories (chests, barrels, shulkers, etc.)

❌ Still blocked β€” these are hard Minecraft limitations

Action Why it's blocked
Click on an armor slot The animator recreates the piece next tick β†’ dupe
Drag onto an armor slot Overwrites the rainbow piece β†’ destruction
Shift-click any armor item Minecraft always auto-routes to the nearest matching armor slot β€” the destination can't be intercepted
Right-click equip from hand Same auto-equip behaviour
Hotbar number-key swap involving armor Would move a piece into or out of the rainbow slot

πŸ”” Player feedback message

Blocked actions now show a configurable chat message so players understand why the interaction didn't work, rather than items silently disappearing.

New config.yml key (added automatically on first run):

armor-shift-click-blocked-message: '&(255,150,0)You can''t equip armor while wearing rainbow armor!'

πŸ› Fixes

  • Fixed ARMOR_RAW_SLOTS incorrectly including hotbar slots 36–39 (Paper 1.21 raw slot numbering), which was causing all hotbar interaction to be blocked
  • Fixed creative mode consuming cancelled armor items due to client-side prediction β€” items are now explicitly restored to their slot server-side
  • Fixed interaction guard relying solely on SlotType.ARMOR which is inconsistently reported across Paper versions β€” now also checks raw slot numbers 5–8 as a fallback

Full changelog

  • ArmorListener: complete rewrite of inventoryClick, inventoryDrag, and onPlayerInteract guards
  • ConfigKey: new ARMOR_SHIFT_CLICK_BLOCKED_MESSAGE entry
  • config.yml: new armor-shift-click-blocked-message key
  • README.md: new Armor Interaction Restrictions section documenting all allowed/blocked actions and the reason for each
  • Updated to API v1.21.11