TrinketInventory - RPG Inventory icon

TrinketInventory - RPG Inventory -----

RPG Inventory with custom GUI and ItemsAdder support



Default config:

Code (Text):
# TrinketInventory - config.yml
config-version: 1

gui:
  title: "&6&lMy Trinkets"
  rows: 3                  # 1–6; total slots = rows * 9
  open-command: "myinv"    # /myinv opens the GUI
  fill:
    enabled: true
    material: "GRAY_STAINED_GLASS_PANE"
    name: " "              # empty label for filler
  # Optional locked slots: render filler & reject items
  locked-slots: [0, 8, 18, 26]

rules:
  allow-vanilla: true
  allow-itemsadder: true
  whitelist-mode: true     # if true -> only items listed under `items:` apply
  reject-non-whitelisted: true   # if true -> block placement of non-whitelisted items

  # If you want *categories* instead of per‑item whitelist, you can set this to true
  # and define categories below. When true, any item that matches a category rule is allowed.
  enable-categories: false

apply:
  # When should we recalculate and apply bonuses?
  on-equip: true           # when player places/removes an item in the GUI
  on-join: true
  on-world-change: true
  on-respawn: true
  on-plugin-reload: true

stacking:
  allow-duplicate-items: false     # disallow two identical IDs if false
  # Caps to avoid runaway stacking; amounts are applied after sum
  attribute-caps:
    max_health: 20.0       # additional health cap (+20.0 = +10 hearts)
    attack_damage: 10.0
    movement_speed: 0.40   # additive cap for speed when using MULTIPLY_SCALAR_1 -> 0.40 = +40%
    armor: 12.0
    luck: 5.0

# Items whitelist with per-item attribute modifiers.
# IDs can be:
#   - Vanilla: "minecraft:feather", "minecraft:diamond_sword", etc.
#   - ItemsAdder: "itemsadder:magic_ring"
# Each item lists one or more attribute modifiers. Operation may be:
#   - ADD_NUMBER            (flat add)
#   - MULTIPLY_SCALAR_1     (e.g., +0.10 means +10%)
#   - MULTIPLY_SCALAR_2     (rarely used; Paper/Bukkit supports but usually avoid)
items:
  - id: "minecraft:feather"
    display-name: "&fFeather Charm"
    max-stack-size: 1
    attributes:
      - attribute: "movement_speed"
        operation: "MULTIPLY_SCALAR_1"
        amount: 0.05          # +5% speed
        slot: "ANY"           # ANY | MAINHAND | OFFHAND | HEAD | CHEST | LEGS | FEET (semantic only; we apply from GUI)
  - id: "minecraft:rabbit_foot"
    display-name: "&aLucky Paw"
    max-stack-size: 1
    attributes:
      - attribute: "luck"
        operation: "ADD_NUMBER"
        amount: 2.0
        slot: "ANY"
  - id: "itemsadder:magic_ring"
    display-name: "&dRing of Vitality"
    max-stack-size: 1
    attributes:
      - attribute: "max_health"
        operation: "ADD_NUMBER"
        amount: 4.0            # +2 hearts
        slot: "ANY"
  - id: "itemsadder:swift_amulet"
    display-name: "&bAmulet of Swiftness"
    max-stack-size: 1
    attributes:
      - attribute: "movement_speed"
        operation: "MULTIPLY_SCALAR_1"
        amount: 0.10           # +10% speed
        slot: "ANY"
  - id: "itemsadder:iron_charm"
    display-name: "&7Iron Charm"
    max-stack-size: 1
    attributes:
      - attribute: "armor"
        operation: "ADD_NUMBER"
        amount: 3.0
        slot: "ANY"
  - id: "minecraft:diamond"
    display-name: "&fDiamond"
    max-stack-size: 64
    attributes:
      - attribute: "armor"
        operation: "ADD_NUMBER"
        amount: 3.0
        slot: "ANY"

# Optional: category-style matching (enable via rules.enable-categories: true)
# Each category can match by item ID prefix (namespace), item display name regex, and/or lore contains.
categories:
  - name: "rings"
    match:
      id-prefix: ["itemsadder:ring_", "itemsadder:*_ring"]  # glob-like; plugin will treat * as wildcard
      name-regex: ".*(?i)ring.*"
      lore-contains: ["Trinket", "Ring"]
    attributes:
      - attribute: "max_health"
        operation: "ADD_NUMBER"
        amount: 2.0
        slot: "ANY"
  - name: "amulets"
    match:
      id-prefix: ["itemsadder:*_amulet"]
      name-regex: ".*(?i)amulet.*"
    attributes:
      - attribute: "movement_speed"
        operation: "MULTIPLY_SCALAR_1"
        amount: 0.05
        slot: "ANY"

permissions:
  open: "trinketinventory.open"
  use: "trinketinventory.use"
  bypass:
    duplicate-item: "trinketinventory.bypass.duplicate"
    not-whitelisted: "trinketinventory.bypass.whitelist"
    caps: "trinketinventory.bypass.caps"

messages:
  prefix: "&8[&6Trinkets&8]&r "
  opened: "&aYour trinket inventory is open."
  blocked-slot: "&cThat slot is locked."
  not-whitelisted: "&cThat item cannot be used as a trinket."
  duplicate-denied: "&cYou cannot equip duplicate trinkets."
  cap-reached: "&eYou reached the cap for &6{attribute}&e."
  saved: "&aTrinkets saved."
  reloaded: "&aConfig reloaded."

# Safety/leak prevention:
# We generate stable UUIDs per (player, item ID, index) internally.
# Normally you should not change this unless you know what you're doing.
uuid:
  salt: "changeme-unique-salt-string"


# Mojang-style attribute IDs (what you'd use with /attribute)
# These are the canonical names

#max_health
#follow_range
#knockback_resistance
#movement_speed
#flying_speed
#attack_damage
#attack_knockback
#attack_speed
#armor
#armor_toughness
#luck
#max_absorption
#safe_fall_distance
#scale
#step_height
#gravity
#jump_strength
#fall_damage_multiplier
#mining_efficiency
#movement_efficiency
#oxygen_bonus
#explosion_knockback_resistance
#sneaking_speed
#submerged_mining_speed
#sweeping_damage_ratio
#tempt_range
#water_movement_efficiency

# Player-only attributes (show up in commands under the player. prefix)

#block_interaction_range
#entity_interaction_range
#block_break_speed
#camera_distance
#waypoint_receive_range
#waypoint_transmit_range

# Mob-specific

#spawn_reinforcements




#permissions:
  #trinketinventory.open:
    #description: Allows a player to open their trinket inventory.
    #default: true
  #trinketinventory.use:
    #description: Allows interaction with the trinket GUI.
    #default: true
  #trinketinventory.bypass.duplicate:
    #description: Allows the player to equip duplicate trinket items.
    #default: op
  #trinketinventory.bypass.whitelist:
    #description: Allows the player to use non‑whitelisted items.
    #default: op
  #trinketinventory.bypass.caps:
    #description: Allows the player to bypass attribute caps.
    #default: op
Resource Information
Author:
----------
Total Downloads: 8
First Release: Sep 29, 2025
Last Update: Sep 30, 2025
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings