Configuration
Complete reference for plugins/QuickBuyAddon/config.yml.
Missing messages are safe
If a message key is missing from your file (for example after updating), the addon uses the default bundled in the jar for it, so an older config.yml never leaves a button or message blank. Add the key yourself only if you want to change its text.
Shop Size (shop-size)โ
| Key | Type | Default | Description |
|---|---|---|---|
shop-size | int | 54 | Total slots in the shop chest GUI. Must be a multiple of 9, between 9 and 54. |
Command Aliases (command-aliases)โ
| Key | Type | Default | Description |
|---|---|---|---|
command-aliases | list | [qb] | Extra aliases for /quickbuy, registered at startup. Changes take effect after a full restart โ no rebuild needed. The built-in /qb is included here by default and will be active even if you remove it (it is also declared in plugin.yml). |
command-aliases:
- qb
- shop
- qs
Slot Permissions (slot-permissions)โ
Controls how many shop slots each player can use, based on their permissions.
| Key | Type | Default | Description |
|---|---|---|---|
slot-permissions.default-slots | int | 9 | Slots available to players without any matching override permission. |
slot-permissions.overrides | list | [] | List of {permission, limit} pairs. If a player matches more than one, the highest limit wins. |
slot-permissions:
default-slots: 9
overrides:
- permission: "quickbuy.slots.18"
limit: 18
- permission: "quickbuy.slots.27"
limit: 27
- permission: "quickbuy.slots.54"
limit: 54
Messages (messages)โ
All user-facing text is configurable. Color codes use & format. Placeholders are in {braces}.
Prefix & Chatโ
| Key | Default | Description |
|---|---|---|
messages.prefix | &6โฆ &eQuickBuy &8| &7 | Prepended to all chat messages that use {prefix} |
messages.no-permission | {prefix}&cโ &7Insufficient permissions | Sent when a player lacks a required permission |
messages.only-players | {prefix}&cโ &7This command can only be used by players | Sent when a non-player runs /quickbuy |
Slot Lifecycleโ
| Key | Default | Placeholders | Description |
|---|---|---|---|
messages.slot-configured | {prefix}&aโ &7Slot &e#{slot} &7configured: &e{item} &7(max &e{cap}&7/item) | {slot}, {item}, {cap} | Sent after a slot is successfully configured |
messages.slot-cleared | {prefix}&aโ &7Slot &e#{slot} &7cleared | {slot} | Sent after a slot's configuration is deleted |
messages.search-no-results | &cโ &7No items matched &e{query} | {query} | Shown in chat when a search returns no materials |
messages.price-invalid | {prefix}&cโ &7Please enter a valid positive number, or leave it empty for no limit | โ | Sent when invalid price text is submitted |
messages.price-no-limit-label | &aNo Limit | โ | Text shown in slot lore when no price cap is set |
Shop GUIโ
| Key | Default | Description |
|---|---|---|
messages.shop-title | &8Quick Buy | Chest GUI title for the personal shop |
messages.slot-name | &6{item} | Display name for a configured slot item |
messages.empty-slot-name | &a&lConfigure Slot | Display name for an unconfigured slot |
messages.locked-slot-name | &c&lLocked Slot | Display name for a locked slot (beyond permission allotment) |
Slot Loreโ
| Key | Placeholders | Description |
|---|---|---|
messages.slot-lore-available | {cap}, {amount}, {per_unit}, {total} | Lore lines when a qualifying listing exists |
messages.slot-lore-unavailable | {cap} | Lore lines when no listing qualifies |
messages.empty-slot-lore | โ | Lore lines for unconfigured slots |
messages.locked-slot-lore | โ | Lore lines for locked slots |
messages.slot-lore-enchant-header | โ | Header line shown above required enchantments |
messages.slot-lore-enchant-line | {enchant}, {level} | One line per required enchantment |
messages.slot-lore-enchant-missing | {key} | Warning line for a required enchantment that no longer exists (the slot will not buy) |
messages.slot-lore-edit-how | โ | Hint appended to configured slots explaining how to edit them |
messages.slot-lore-edit-hint | โ | Line shown on configured slots while edit mode is on |
Edit Modeโ
| Key | Default | Description |
|---|---|---|
messages.edit-toggle-off-name | &eโ Edit Mode&8: &cOFF | Name of the edit-mode lever while edit mode is off |
messages.edit-toggle-on-name | &eโ Edit Mode&8: &aON | Name of the lever while edit mode is on |
messages.edit-toggle-lore | (list) | Lore of the lever |
messages.edit-mode-on | {prefix}&aโ &7Edit mode &aon... | Chat message when edit mode is turned on |
messages.edit-mode-off | {prefix}&aโ &7Edit mode &coff | Chat message when edit mode is turned off |
Dialog Picker (1.21.6+ Java clients)โ
| Key | Default | Description |
|---|---|---|
messages.search-results-title-all | &6Choose an Item | Dialog title when no search is active |
messages.search-results-title | &6Search Results &8ยป &7"{query}" | Dialog title when a search query is active |
messages.search-input-label | &7Search | Label for the embedded search text box |
messages.search-button-label | &aSearch | Label for the Search submit button |
messages.search-delete-button | &c๐ Delete Slot | Label for the Delete Slot button (shown only when editing an existing slot) |
messages.enchant-prompt-title | &6Required Enchantments | Dialog title for enchantment selection |
messages.enchant-prompt-body | &7Set a minimum level for any enchantment... | Body text for the enchantment dialog |
messages.enchant-level-none | &7None | Label for the "no requirement" option in enchantment dropdowns |
messages.enchant-confirm-button | &aConfirm | Label for the enchantment confirm button |
messages.price-prompt-title | &6Set Price Cap | Dialog title for price input |
messages.price-prompt-body | &7Enter the most you're willing to pay... | Body text for the price dialog |
messages.price-input-label | &7Max Price | Label for the price text input |
messages.price-confirm-button | &aConfirm | Label for the price confirm button |
messages.delete-confirm-title | &cDelete this slot? | Dialog title for delete confirmation |
messages.delete-confirm-body | &7This will clear the item, price cap... | Body text for delete confirmation |
messages.delete-confirm-button | &cDelete | Label for the confirm delete button |
messages.cancel-button-label | &cCancel | Label for all Cancel buttons |
Fallback Picker (Bedrock / old Java clients)โ
| Key | Default | Description |
|---|---|---|
messages.fallback-material-title | &8Choose an Item | Chest GUI title for the fallback material picker |
messages.fallback-enchant-title | &8Set Enchantments | Chest GUI title for the fallback enchantment picker |
messages.fallback-prev-page | &aยซ Previous Page | Navigation button label (previous page available) |
messages.fallback-no-prev-page | &7ยซ Previous Page | Navigation button label (no previous page) |
messages.fallback-next-page | &aยป Next Page | Navigation button label (next page available) |
messages.fallback-no-next-page | &7ยป Next Page | Navigation button label (no next page) |
messages.fallback-search-button | &bSearch | Label for the search button in the fallback picker |
messages.fallback-search-prompt | {prefix}&7Type an item name... | Chat prompt for fallback material search |
messages.fallback-price-prompt | {prefix}&7Type the most you're willing to pay... | Chat prompt for fallback price input |
messages.fallback-price-title | &6Enter Price | Title overlay shown during fallback chat price input |
messages.fallback-price-subtitle | &7Max price you wish to buy &e{item} &7for | Subtitle overlay during fallback chat price input |
messages.fallback-delete-tap-lore | ["&7Click twice to delete this slot"] | Lore on the delete button before it is armed |
messages.fallback-delete-armed-name | &cโ Click again to delete | Name of the delete button once it is armed |
messages.fallback-delete-armed-lore | ["&7Click any other button to cancel"] | Lore on the armed delete button |
messages.fallback-chat-timeout | {prefix}&7Timed out waiting for your answer... | Sent when a chat search or price prompt gives up after 60 seconds |
messages.fallback-delete-lore, messages.fallback-delete-needs-shift | โ | Legacy keys from earlier versions; no longer used (deleting no longer requires shift-click) |
messages.fallback-enchant-selected-name | &a{enchant} &8ยป &e{level} | Display name for a selected enchantment icon |
messages.fallback-enchant-unselected-name | &7{enchant} | Display name for an unselected enchantment icon |
messages.fallback-enchant-lore | (list) | Lore shown on each enchantment icon |
Player Data Filesโ
Each player's shop is stored in plugins/QuickBuyAddon/playerdata/<uuid>.yml and is managed automatically โ do not edit it while the player is online.
slots:
5:
material: DIAMOND_SWORD
max-price: 100.0 # omitted = no limit
required-enchantments:
- key: "minecraft:sharpness"
level: 5
- key: "myplugin:vein_miner"
level: 2
- Enchantments are stored with their full namespaced key, so custom enchantments survive a restart
- Files written by older versions (a bare
enchantments:section of vanilla keys) are still read, and are rewritten in the format above the next time the slot is saved - A required enchantment that cannot be resolved is kept in the file unchanged, and its slot does not buy until it is available again (see Features)