The functions are being continuously improved, so stay tuned!
ChestMenu is an upgraded version of ChestCommands, designed from the ground up without reusing any ChestCommands code. It provides a highly customizable and dynamic menu system for Minecraft servers. With ChestMenu, you can create menus through simple YAML configuration files, allowing full control over item placement, actions, and commands. Additionally, ChestMenu supports PlaceholderAPI (PAPI) variables, enabling dynamic changes to item amounts and materials based on player-specific conditions. This powerful integration allows for creating highly personalized and interactive menu experiences for each player.
Key Features:
- Customizable Menu Layouts: Define the number of rows, titles, and items with easy-to-edit YAML files.
- Dynamic Item Display: Use PlaceholderAPI to change item material, quantity, and name based on player-specific conditions.
- Command Binding: Assign commands to menu items and execute them when a player clicks the item.
- Trigger Items: Menus can be opened by interacting with specific items, supporting left and right-click actions.
- Custom Sounds: Configure sound effects that play when menus are opened for an immersive experience.
The sound names can be found here:
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
Default Configuration:
Code (Text):
menu:
title: "Example Menu" # The title of the menu displayed when opened
rows: 3 # The number of rows in the menu (each row has 9 slots)
triggerItem:
material: "DIAMOND_SWORD" # The item in the player's hand that will trigger the menu opening
actions:
- "RIGHT_CLICK" # The menu will open if the player right-clicks with the item
- "LEFT_CLICK" # The menu will also open if the player left-clicks with the item
sound:
name: "ENTITY_EXPERIENCE_ORB_PICKUP" # The sound that will play when the menu is opened
volume: 1.0 # The volume level of the sound
pitch: 1.0 # The pitch level of the sound
items:
- x: 0 # The X coordinate (column) of the item in the menu, starting from 0 (left)
y: 0 # The Y coordinate (row) of the item in the menu, starting from 0 (top)
material:
default: "LEATHER_CHESTPLATE" # The default material of the item displayed
conditions: # Conditions to change the material dynamically using PlaceholderAPI (PAPI)
- papi: "%player_name%" # PAPI variable for the player's name
value: "Steve" # If the player's name is "Steve", the material will change to Diamond Chestplate
material: "DIAMOND_CHESTPLATE" # The material when the condition is met
- papi: "%world%" # PAPI variable for the current world
value: "world_nether" # If the player is in the Nether, the material will change to Iron Chestplate
material: "IRON_CHESTPLATE" # The material when the condition is met
name: "&cRed Leather Chestplate" # The display name of the item, with color codes supported (&c = red)
lore: # Lore (description text) of the item
- "&fThis is a red leather chestplate" # Example lore line, color codes supported (&f = white)
color: "#FF0000" # The RGB color for the item, in this case red (for leather armor or potion)
enchantmentGlow: true # Whether the item has an enchantment glow effect, even without actual enchantments
hideFlags: true # Whether to hide item flags (e.g., enchantment glow, attributes)
quantity:
default: 2 # Default number of items in this slot
conditions: # Conditions to change the quantity dynamically using PlaceholderAPI (PAPI)
- papi: "%time%" # PAPI variable for the in-game time
value: "morning" # If the time is morning, the quantity changes to 5
amount: 5 # Quantity when condition is met
- papi: "%player_name%" # PAPI variable for the player's name
value: "Steve" # If the player's name is "Steve", the quantity changes to 64
amount: 64 # Quantity when condition is met
command: # The command(s) executed when the player clicks this item
- "say %player% clicked on the red leather chestplate" # PlaceholderAPI can be used in commands
executor: "player" # Specifies who will execute the command: "player" or "console"