# Table of Contents - [Configuration | AuroraCrafting](#configuration-auroracrafting) - [Main config | AuroraCrafting](#main-config-auroracrafting) - [Smithing recipe config | AuroraCrafting](#smithing-recipe-config-auroracrafting) - [Cooking recipe config | AuroraCrafting](#cooking-recipe-config-auroracrafting) - [Merchant config | AuroraCrafting](#merchant-config-auroracrafting) - [Workbench config | AuroraCrafting](#workbench-config-auroracrafting) - [Commands | AuroraCrafting](#commands-auroracrafting) - [Other menu configs | AuroraCrafting](#other-menu-configs-auroracrafting) - [Compatible plugins | AuroraCrafting](#compatible-plugins-auroracrafting) - [Recipe config | AuroraCrafting](#recipe-config-auroracrafting) - [Permissions | AuroraCrafting](#permissions-auroracrafting) - [Recipe book config | AuroraCrafting](#recipe-book-config-auroracrafting) - [Menu configurations | AuroraCrafting](#menu-configurations-auroracrafting) - [AuroraCrafting | AuroraCrafting](#auroracrafting-auroracrafting) - [API | AuroraCrafting](#api-auroracrafting) - [Item config | Aurora](#item-config-aurora) - [Aurora | Aurora](#aurora-aurora) - [Commands | Aurora](#commands-aurora) - [Command dispatcher | Aurora](#command-dispatcher-aurora) - [Requirements | Aurora](#requirements-aurora) - [Main config | Aurora](#main-config-aurora) - [Item stash | Aurora](#item-stash-aurora) - [Custom Menus | Aurora](#custom-menus-aurora) --- # Configuration | AuroraCrafting [Main config](/auroracrafting/configuration/main-config) [Recipe config](/auroracrafting/configuration/recipe-config) [Recipe book config](/auroracrafting/configuration/recipe-book-config) [Merchant config](/auroracrafting/configuration/merchant-config) [Cooking recipe config](/auroracrafting/configuration/cooking-recipe-config) [Smithing recipe config](/auroracrafting/configuration/smithing-recipe-config) [PreviousAuroraCrafting](/auroracrafting) [NextMain config](/auroracrafting/configuration/main-config) --- # Main config | AuroraCrafting Copy # DO NOT TOUCH THIS config-version: 0 # This will allow debug logs. Only turn this on if the developer asks you to. debug: false # Language file for the commands. language: en # Always keep at least one alias for every command command-aliases: craft: [ "craft", "cc" ] recipes: [ "recipes", "recipebook" ] merchants: [ "merchants" ] # Should vanilla recipes be craftable in the custom crafting table? include-vanilla-recipes: false # Should "vanilla" recipes registered by other plugins be craftable in the custom crafting table? include-other-plugin-recipes: false # Should the custom crafting table open instead of the vanilla crafting table # when the player right clicks on a crafting table? # Enabling this needs a server restart to take effect. open-instead-of-crafting-table: false # Should the custom crafting table open instead of the vanilla crafting table # when the player shift right clicks a crafting table? # Enabling this needs a server restart to take effect. open-shift-click-crafting-table: true [PreviousConfiguration](/auroracrafting/configuration) [NextRecipe config](/auroracrafting/configuration/recipe-config) Last updated 2 months ago --- # Smithing recipe config | AuroraCrafting These are vanilla recipes, therefore you have to follow vanilla rules. You can still use custom items in these recipes. To create smithing recipes, you need to put yml files with recipes in them into the `smithing_recipes` folder. Many item plugins can and will prevent Vanilla smithing recipes using their items. You should disable those checks in your item plugins or ask them for support. Notable examples for this behavior is ItemsAdder which completely fucks up custom vanilla recipes by default. MythicCrucible/MythicMobs also applies PreventSmithing: true for all items that has custom model data on it! Here is how should on of these yml files look like: Copy recipes: # ID of the recipe. Must be unique across all vanilla recipes. Required. - id: netherite_example # What should the output be in the smithing table? result: "minecraft:netherite_sword" # Every field is optional below # First slot template: "minecraft:emerald" # Second slot base: "minecraft:stone_sword" # Third slot addition: "minecraft:diamond" # Set this to true if you have any issues with custom items (Optional) copy-nbt: true [PreviousCooking recipe config](/auroracrafting/configuration/cooking-recipe-config) [NextMenu configurations](/auroracrafting/menu-configurations) Last updated 1 month ago --- # Cooking recipe config | AuroraCrafting These are vanilla recipes, therefore you have to follow vanilla rules. You can still use custom items in these recipes. You can write cooking recipes inside the following folders: * furnace\_recipes * blasting\_recipes * smoking\_recipes * campfire\_recipes The folder defines where the recipe will be available. (Regular furnace, Blast furnace, Smoker, Campfire) Many item plugins can and will prevent Vanilla cooking recipes using their items. You should disable those checks in your item plugins or ask them for support. Notable examples for this behavior is ItemsAdder which completely fucks up custom vanilla recipes by default. Format of the recipe yml files: Copy # You can list any amount of recipes here recipes: # ID of the recipe. Must be unique across every type of vanilla recipe. Required. - id: cooked_diamond # The thing you want to smelt input: "minecraft:prismarine_shard" # The output after you have smelt it result: "minecraft:diamond" # Every field is optional below # How much vanilla XP will it give experience: 10 # How long does it take to smelt the input into the result. Defined in ticks. cooking-time: 1000 # In what category should this be in the relevant vanilla recipe book? category: misc To see the available vanilla cooking recipe book category options, look here: [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/recipe/CookingBookCategory.html](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/recipe/CookingBookCategory.html) [PreviousMerchant config](/auroracrafting/configuration/merchant-config) [NextSmithing recipe config](/auroracrafting/configuration/smithing-recipe-config) Last updated 1 month ago --- # Merchant config | AuroraCrafting Eco plugins (EcoItems, EcoArmor etc) is not supported here! You can use them for results but you will encounter visible glitches if you use them as ingredients. (It will still work, but until you take out the result item it will be displayed as air/nothing). This is due to how Eco handles items and client side item lore in general (most likely at least). Copy merchants: # The key is the id of the merchant (used in commands) test: # Name of the merchant name: "Test Merchant" # Permission required to use the merchant (Optional) permission: "test.permission" # Menu item in the global merchant menu menu: title: "{name}" # Replace the lore if the merchant is locked locked-lore: - "&7Unlock this merchant by" - "&7completing &aDiamond collection V&7!" item: material: emerald name: "&a{name}" slot: 10 lore: - "&7Click to open the merchant" # Offers that the merchant has offers: # Ingredient items are defined the same way as in recipes. - ingredients: - "minecraft:cobblestone/64" - "minecraft:coal/7" # Offer result is defined the same way as in recipes result: "mythicmobs:my_item/1" # Permission to view and use this offer. (Optional) permission: "test.merchant.offer.1" [PreviousRecipe book config](/auroracrafting/configuration/recipe-book-config) [NextCooking recipe config](/auroracrafting/configuration/cooking-recipe-config) Last updated 1 month ago --- # Workbench config | AuroraCrafting Copy # How many rows should the GUI have? rows: 6 # Title of the GUI title: "Craft Item" # Where should we put the recipe result? result-slot: 23 # Matrix slots # In theory if you are careful enough you can change this and you # can create a bigger crafting grid. In that case you need to disable # vanilla recipe support in the main config. matrix-slots: [ 10, 11, 12, 19, 20, 21, 28, 29, 30 ] # Where should be the quick crafting slots be? # If you don't want quick crafting slots just set it as [] quick-crafting-slots: [ 16, 25, 34 ] # What should we display in the result slot until there isn't any valid recipe? # DO NOT use AIR here invalid-result-item: material: barrier name: "&cRecipe required" lore: - "&7Add the items for a valid recipe in" - "&7the crafting grid to the left!" # How should an empty but unlocked quick crafting slot look like? empty-quick-craft-item: material: gray_stained_glass_pane name: "&cQuick Crafting Slot" lore: - "&7Quick crafting allows you to craft" - "&7items without assembling the recipe." # How should the slot look like when you don't have the permission for it? no-permission-quick-craft-item: material: red_stained_glass_pane name: "&cQuick Crafting Slot" lore: - "&7Quick crafting allows you to craft" - "&7items without assembling the recipe." - " " - "&cYou do not have permission to use this slot" # Filler item for the menu. # DO NOT use AIR here. filler: material: black_stained_glass_pane name: "" hide-tooltip: true # Extra custom items in the menu. custom-items: filler: name: "" hide-tooltip: true material: red_stained_glass_pane slots: [45, 46, 47, 48, 49, 50, 51, 52, 53] [PreviousMenu configurations](/auroracrafting/menu-configurations) [NextOther menu configs](/auroracrafting/menu-configurations/other-menu-configs) Last updated 2 months ago --- # Commands | AuroraCrafting `` means that the argument is required. `[this]` means that the argument is optional. Copy /craft * Opens the Crafting GUI. * Requires `aurora.crafting.use` permission. (Granted by default to all players) Copy /craft reload * Reload recipes and configs. * Requires `aurora.crafting.admin.reload`permission. (Granted by default to all players) Copy /recipes * Opens the recipe book with the categories inside it. * Requires `aurora.crafting.recipes` permission. (Granted by default to all players) Copy /merchants * Opens the main merchant menu where you can choose between all merchants you have unlocked. * Requires `aurora.crafting.merchants` permission. Copy /merchants open [silent] * Opens a merchant menu for a player. * If silent is provided and is true, there won't be any feedback message. * Requires `aurora.crafting.merchants.admin.open` permission. [PreviousOther menu configs](/auroracrafting/menu-configurations/other-menu-configs) [NextPermissions](/auroracrafting/permissions) Last updated 2 months ago --- # Other menu configs | AuroraCrafting [](#todo) TODO ------------------- [PreviousWorkbench config](/auroracrafting/menu-configurations/workbench-config) [NextCommands](/auroracrafting/commands) Last updated 2 months ago --- # Compatible plugins | AuroraCrafting [PreviousPermissions](/auroracrafting/permissions) [NextAPI](/auroracrafting/api) Last updated 2 months ago [](#auroralib) AuroraLib ----------------------------- AuroraCrafting registers a new command action that you can run using menu click actions in all Aurora plugins. Type the recipe ID after `[recipe]` and define a back button command action for the recipe view menu after the `---` separator (optional). Copy [recipe] enchanted_carrot --- [player] collection progression farming carrot [](#quest-plugins) Quest plugins ------------------------------------- Currently, supported quest plugins for the default crafting objectives are: * AuroraQuests * BetonQuest * Quest (by pikamug) [](#item-plugins) Item plugins ----------------------------------- Every item plugin that AuroraLib supports. [Item config](https://docs.auroramc.gg/aurora/item-config) --- # Recipe config | AuroraCrafting Inside the `recipes` folder, you can create unlimited files that can contain a list of recipes. This is how one file should look like: Copy recipes: - id: pet_farmer #permission: "recipe.pet_farmer" locked-lore: - "&7You need &aEmerald collection level 5 &7to unlock this recipe." result: "eco:ecopets:farmer_spawn_egg/1" ingredients: - "mythicmobs:enchanted_wheat/1" - "mythicmobs:enchanted_carrot/1" - "mythicmobs:enchanted_wheat/1" - "mythicmobs:enchanted_carrot/1" - "mythicmobs:pet_core_lapis/1" - "mythicmobs:enchanted_carrot/1" - "mythicmobs:enchanted_wheat/1" - "mythicmobs:enchanted_carrot/1" - "mythicmobs:enchanted_wheat/1" - id: enchanted_iron_ingot shapeless: true permission: "recipe.enchanted_iron_ingot" locked-lore: - "&7You need &aEmerald collection level 5 &7to unlock this recipe." result: "mythicmobs:enchanted_iron_ingot/1" ingredients: - "minecraft:iron_ingot/32" - "minecraft:iron_ingot/32" - "minecraft:iron_ingot/32" - "minecraft:iron_ingot/32" - "minecraft:iron_ingot/32" Here you can see two recipes that use vanilla items and items created in the MythicMobs/EcoPets plugin. Let's go through each option one by one: * **id**: This is used to look up recipes using the /recipe command. Optional. * **permission**: Required permission to unlock the recipe. Optional. * **locked-lore**: Here you can define the menu item lore in the recipe book while the recipe is locked. Optional. * **shapeless**: if it is true, then the recipe will act as a shapeless recipe. Optional. By default, everything is a shaped recipe. * **result**: This defines what should be the result of the recipe. Required. * **ingredients**: this is the list of ingredients for the recipe. If the recipe is shaped, you need to define a list that has the same amount of items as your crafting matrix slots. If you want an empty slot, just use an empty string like `- ""` . [](#format-of-the-items) Format of the items ------------------------------------------------- In the ingredients and result configs, you might have already noticed the strange format of the items. Every item has a namespace. This can be either minecraft for vanilla materials or usually the name of the plugin which provides the item you are trying to use. So the format is `namespace:item_id`. You always need to set the amount of the items. This is done by appending `/number` at the end of the item ID. You need to do this even if it is just 1. So the final format is `namespace:item_id/amount` [](#supported-item-plugins-with-examples) Supported item plugins with examples ----------------------------------------------------------------------------------- * MythicMobs (and Crucible) - `mythicmobs:item_id` * MMOItems - `mmoitems:type:id` * ExecutableItems - `ei:item_id` * Oraxen - `oraxen:item_id` * ItemsAdder - `ia:ia_namespace:item_id` * HeadDatabase - `hdb:id` * CustomFishing - `customfishing:id` * EcoItems - `eco:ecoitems:item_id` * EcoArmor - `eco:ecoarmor:armor_id` * Talismans - `eco:talismans:talisman_id` * EcoScrolls - `eco:ecoscrolls_scoll_scrollid` * Other eco plugins are also supported, the item lookup works the same way as they describe in their wiki. They are just prefixed once more with `eco:` here. [PreviousMain config](/auroracrafting/configuration/main-config) [NextRecipe book config](/auroracrafting/configuration/recipe-book-config) Last updated 2 months ago --- # Permissions | AuroraCrafting Permission Description Defaults to `aurora.crafting.use` Use the crafting GUI via the `craft` command. Everyone `aurora.crafting.use.interact` Allow players to open the crafting gui by (shift) right clicking on a crafting table if enabled in config. Everyone `aurora.crafting.recipes` Open the recipe book. Everyone `aurora.crafting.merchants` Open the main merchants menu. Everyone `aurora.crafting.merchants.admin.open` Use an admin command to open a merchant for a player. OP `aurora.crafting.admin.reload` Use the `reload` command. OP `aurora.quickcraft.slot` Ability to use a specific quick crafting slot. Replace the slot with a number. OP [PreviousCommands](/auroracrafting/commands) [NextCompatible plugins](/auroracrafting/compatible-plugins) Last updated 2 months ago --- # Recipe book config | AuroraCrafting The plugin comes with an integrated smart recipe book. It supports (1 level deep) categories. An additional feature is when you click on an item in a recipe ingredient matrix that is craftable by another recipe in the plugin, it will take the player to that recipe when the player clicks on the ingredient. Recipebook only supports custom crafting table recipes. Cooking/Smithing recipes will be in their vanilla recipe book. Here is an example category configuration: Copy categories: - id: farming # Include all recipes from a file (do not write .yml here, just the filename) files: - farming # You can write additional recipe IDs here from other files as well. recipes: - recipe_id # This is the menu item for the category in the recipe book menu: title: "Farming recipes" item: material: golden_hoe name: "&aFarmin recipes" slot: 20 flags: - hide_attributes # List your other categories as well. - id: mining files: - mining menu: title: "Mining recipes" item: material: stone_pickaxe name: "&aMining recipes" slot: 21 flags: - hide_attributes [PreviousRecipe config](/auroracrafting/configuration/recipe-config) [NextMerchant config](/auroracrafting/configuration/merchant-config) Last updated 1 month ago --- # Menu configurations | AuroraCrafting [Workbench config](/auroracrafting/menu-configurations/workbench-config) [Other menu configs](/auroracrafting/menu-configurations/other-menu-configs) [PreviousSmithing recipe config](/auroracrafting/configuration/smithing-recipe-config) [NextWorkbench config](/auroracrafting/menu-configurations/workbench-config) --- # AuroraCrafting | AuroraCrafting **AuroraCrafting** is a custom crafting solution for Minecraft servers running PaperMC (and its forks like Purpur and Pufferfish). This is a paid plugin. Purchasing will grant you access to support on [Discord](https://discord.gg/ZVP7eQ3yhj) and the plugin itself. The minimum supported server version is 1.20.4 [](#overview) Overview --------------------------- AuroraCrafting can replace the vanilla crafting table but can be a progressive enhancement for your server. That's your choice to make. Let's see what you can do: * **Full-featured new crafting GUI** that can completely replace the vanilla one. The default config looks very similar to the one Hypixel uses on Skyblock. * **Quick crafting slots**. You can lock these slots behind permissions. * **Shaped** and **shapeless recipes**. * You can define **amounts for recipe ingredients**. * An integrated smart **recipe book** that is (almost) automatically generated. You can define categories as well. * Commands to directly view the recipes. * Additionally, you can create **villager shops** using custom items. (You don't need actual villagers or NPCs to open these shops, just a command.) * As of version 1.1.0, you can create vanilla Furnace/Blast furnace/Smoker/Campfire/Smithing table recipes as well. Since these are vanilla recipes, they have to follow the vanilla rules, unlike the custom crafting table. **The main thing you should keep in mind is that this plugin assumes you have at least one item plugin.** Recipes are using either just vanilla materials or items from other item plugins (MMOItems, MythicCrucible, EcoItems, Other eco plugins, ExecutableItems, ExecutableBlocks, Nexo, Oraxen, ItemsAdder, HeadDatabase, CustomFishing, etc). This allows you NOT to change recipes every time you update your items. Recipes will always use the most up-to-date items from your item plugins since you are just using reference IDs in the recipe configs. (For example: `mythicmobs:enchanted_diamond` or `ei:my_executable_item`) [NextConfiguration](/auroracrafting/configuration) Last updated 2 months ago --- # API | AuroraCrafting The main thing here if you are a developer of a questing plugin who wants to add support is probably the `PlayerCraftItemEvent`. This has who crafted and what (in the custom crafting GUI). Otherwise, you can manually register custom recipes using the `RecipeManager` and the `AuroraRecipe` classes. At the time of writing, the latest API version is 1.1.0 ### [](#maven) Maven Copy auroramc https://repo.auroramc.gg/repository/maven-public/ Copy gg.auroramc AuroraCrafting {VERSION} provided ### [](#gradle) Gradle **Groovy DSL:** Copy repositories { maven { url "https://repo.auroramc.gg/repository/maven-public/" } } dependencies { compileOnly 'gg.auroramc:AuroraCrafting:{VERSION}' } **Kotlin DSL:** Copy repositories { maven("https://repo.auroramc.gg/repository/maven-public/") } dependencies { compileOnly("gg.auroramc:AuroraCrafting:{VERSION}") } [PreviousCompatible plugins](/auroracrafting/compatible-plugins) Last updated 2 months ago --- # Item config | Aurora Here is an example item config with comments to explain the fields and values. The material field supports items from other plugins as well. * `nexo:item_id` * `mythicmobs:item_id` * `customfishing:item_id` * `mmoitems:item_type:item_id` * `ei:item_id` - ExecutableItems * `eb:item_id` - ExecutableBlocks * `ia:namespace:id` - ItemsAdder * `oraxen:item_id` * `self_head` - This will display the player's head * `eco:ecoarmor:set__` -> `eco:ecoarmor:set_reaper_boots` * `eco:ecoitems:` -> `eco:ecoitems:grappling_hook` * `eco:talismans:` * `eco:ecoscrolls:scroll_` * And every other eco plugin item is using their lookup system prefixed with `eco:` Copy my-item: # Optional. Only use it if you have more than 1 item in the same slot # with view-requirements priority: 1 # Display name, optional name: "My item" # Item lore, optional lore: - "Line 1" - "Line 2" # Only useful when you have a base item config and one of the Aurora plugins # merging another item config into this one. Instead of overriding the entire lore # this will just append the lines at the end. # Optional append-lore: - "Last line 1" - "Last line 2" # Lore lines based on conditions conditional-lore: - conditions: - "[permission] my.little.permission" - "these conditions have AND relation" lore: - "Line 3" - "Line 4" - conditions: - "[permission] my.another.permission" lore: - "Line 5" # REQUIRED, Any valid material from spigot Material enum # This supports items from other plugins like "oraxen:item_id" material: STONE # Optional custom-model-data: 10 # Optional 1.21.4+ item-model: "your:item-model" # Completely hides the item tooltip if true, 1.20.5+ hide-tooltip: true # Where should be the item in the menu? # This is sometimes ignored when other slot patterns are in use slot: 3 # If you use this instead of slot, it will put the item in multiple slots # Useful for 3D or other custom menus with oraxen/itemsadder slots: [3, 4, 5] # How many should be displayed? Defaults to 1, optional amount: 1 # Any valid spigot ItemFlag, optional flags: - "HIDE_ATTRIBUTES" - "SOME OTHER FLAG" # Any valid vanilla spigot enchant, optional # Format: enchant namespaced key: level enchantments: sharpness: 5 # Skull config for player heads, optional # For this to work, material must be PLAYER_HEAD skull: # Only provide one of these base64: "base64 texture here" url: "skin url here" # Potion config, optional potion: # Any valid spigot potion type type: "WATER" extended: true upgraded: false # Click commands, optional # This uses CommandDispatcher on-click: - "[console] say Hi %player_name%" on-left-click: - "[console] say Hi %player_name%" on-right-click: - "[console] say Hi %player_name%" # Requirements to view this item view-requirements: - "[permission] example.permission" # Requirements to run any click actions defined above # This has left-click and right-click variants as well click-requirements: - requirement: "[money] 8000" # What should we run when the player clicks but the requirement isn't met? deny-actions: - "[message] &cYou don't have enough money" [PreviousCommand dispatcher](/aurora/command-dispatcher) [NextItem stash](/aurora/item-stash) Last updated 11 days ago --- # Aurora | Aurora You can view the available admin commands here: [Commands](/aurora/commands) Since this is mainly a library, there is a very minimalistic config, you can configure. [Main config](/aurora/main-config) There is a built in Command dispatcher and you will use it a lot in other plugins, to execute commands as rewards for example. It can execute as console, as player, it can just parse a placeholders or set user meta data value. It can also send formatted messages and can do many other things. [Command dispatcher](/aurora/command-dispatcher) Since version 1.6.0 there is a full GUI framework inside AuroraLib to help you create a ton of customizable gui menus with ease. [Custom Menus](/aurora/custom-menus) To better understand how these custom menus (and general Aurora menus in other plugins) work you should also check out how to configure menu items and requirements. [Item config](/aurora/item-config) [Requirements](/aurora/custom-menus/requirements) [NextCommands](/aurora/commands) Last updated 4 months ago --- # Commands | Aurora You can interact with an AuroraUser's metadata holder through commands. You can also use the built-in CommandDispatcher to test how it would work in other plugins. Every command needs `aurora.core.admin` permission (or a more specialized sub permission, LuckPerms will autocomplete it). `` is the syntax of a required argument and `[this]` is the syntax for an optional argument. ### [](#metadata-commands) Metadata commands Command Description `/aurora dispatch ` Will dispatch a command using CommandDispatcher while setting the player as the placeholder provider source. `/aurora meta get ` Will return the value associated with the provided key for the specified player. `/aurora meta set ` Will set the provided value for the key on the player. Value can be text (string) or any valid number (int, long, double) `/aurora meta remove ` Deletes the metadata that matches the given key for the player. `/aurora meta increment [number]` This will increment a meta value that matches the given key for the player. Default value for the number if omitted is 1. If metadata doesn't exist for the given key, it will be created. `/aurora meta decrement [number]` This will decrement a meta value that matches the given key for the player. Default value for the number if omitted is 1. If metadata doesn't exist for the given key, it will be created. By default this command doesn't allow to go below 0. `/aurora dbmigrate` Migrate your player data from the current storage to the other one. `/aurora gui open ` Opens a custom menu GUI for a player. `/aurora gui reload` Reload GUI configs. `/aurora registeritem ` Registers and saves the item you are holding in your hand. You can reference it in menus/rewards using `aurora:id` later on. `/aurora giveitem [amount]` Gives an item using the built-in item resolver. Eg: `oraxen:custom_sword` or `aurora:my_item` `/aurora unregisteritem ` Deletes a previously registered save item. [PreviousAurora](/aurora) [NextMain config](/aurora/main-config) Last updated 4 months ago --- # Command dispatcher | Aurora `CommandDispatcher` will fill every PlaceholderAPI placeholder if PAPI is installed. It also supports legacy and MiniMessage color formats if the command type is `message` . It can also interact with the built-in user metadata. By default, if no prefix is specified at the start of the command, it will be a console command. [](#prefixes) Prefixes --------------------------- Prefixes define how should a command be executed or what it does. For example, it can be a console command, a player performed command, a simple message to a player, or meta data modification, or even just a placeholder parsing operation. ### [](#console) Console Executes the command in the console. Placeholders are supported. Copy [console] say Hi %player_name% ### [](#player) Player Executes the command as the player. Placeholders are supported. Copy [player] level milestones ### [](#message) Message Sends a message to the player. Placeholders and every type of color codes are supported. Copy [message] &6Hey what's up %player_name%? <#3d3d3d>MiniMessage also supported! ### [](#actionbar) Actionbar Sends a message to the players actionbar. Placeholders and every type of color codes are supported. Copy [actionbar] &6Hey what's up %player_name%? <#3d3d3d>MiniMessage also supported! ### [](#sound) Sound Play a sound for the player. Sound - volume -pitch Copy [sound] entity.villager.yes 1 1 ### [](#close) Close Closes the currently open inventory. Useful for menus. Copy [close] ### [](#placeholder) Placeholder parses a placeholder. Can be useful to start placeholder-based cooldown or something. Copy [placeholder] %player_name% ### [](#give-money) Give money Give money to the player. (Economy argument can be omitted) Copy [give-money] 1000 economy={Vault} ### [](#take-money) Take money Withdraw money from the player. (Economy argument can be omitted) Copy [take-money] 1000 economy={Vault} ### [](#open-gui-menu) Open gui menu Opens a custom AuroraLib powered GUI menu for the player. Arguments after the menu id are optional. Copy [open-gui] menu_id test={example} arg2={100} ### [](#take-items) Take items Take items from the player's inventory. This only supports custom items, defined in [Item config](/aurora/item-config) . List your items separated by spaces and add /number at the end to specify how many of those item should be taken from the player's inventory. Copy [take-items] oraxen:some_item/32 mythicmobs:super_sword/1 ### [](#give-item) Give item Gives an item to the player. This only supports custom items, defined in [Item config](/aurora/item-config) . Add /number at the end to specify how many of that item should be added to the player's inventory. If the items don't fit in the player's inventory, then the item will be dropped to the ground. If you add `true` at the end, it will add excess items to the player's stash instead. This is not recommended though since they can easily overwhelm the stash. Copy [give-item] oraxen:some_item/32 [give-item] oraxen:some_item/32 true ### [](#meta-set) Meta set Sets or overrides a meta value for the given key for the user. Copy [meta:set:mymeta] value (single number or text) ### [](#meta-remove) Meta remove Removes a meta key from the user. Copy [meta:remove:mymetakey] ### [](#meta-increment) Meta increment Increments a meta value by the provided number or 1 if there isn't any provided value. If the meta doesn't exist it will be created. Copy [meta:increment:mymetakey] optional number here ### [](#meta-decrement) Meta decrement Decrements a meta value by the provided number or 1 if there isn't any provided value. If the meta doesn't exist it will be created. It doesn't allow it to go below 0. Copy [meta:decrement:mymetakey] optional number here [](#api-usage) API Usage ----------------------------- You can register custom prefix handlers or even override the default ones. Copy AuroraAPI.registerCommandDispatcherActionHandler("my-prefix", (player, input) -> { // Do something. Note that your prefix is already removed here from the input }); Then you can write something like this in your configs everywhere: Copy on-click: - "[my-prefix] this is the input string" [PreviousRequirements](/aurora/custom-menus/requirements) [NextItem config](/aurora/item-config) Last updated 2 months ago --- # Requirements | Aurora List of the available requirements: ### [](#permission) Permission Check if the player has the permission. Copy [permission] example.permission ### [](#money) Money Check whether the player has enough money or not. The last argument (economy provider plugin name) can be ommited. Copy [money] 1000 Vault ### [](#exp-level) Exp level Check if the player has the required vanilla exp level. Copy [exp-level] 10 ### [](#items) Items Check if the player has the required items in his inventory. This only supports custom items, defined in [Item config](/aurora/item-config) . List your items separated by spaces and add /number at the end to specify how many of that item the player should have in his inventory. Copy [has-items] oraxen:some_item/32 mythicmobs:super_sword/1 ### [](#placeholder) Placeholder Check placeholder comparisons Copy [placeholder] %some_placeholder% == some value [placeholder] %some_number_placeholder% >= 10 [placeholder] %some_number_placeholder% <= 10 [placeholder] %some_number_placeholder% > 10 [placeholder] %some_number_placeholder% < 10 ### [](#argument) Argument Check menu argument comparisons Copy [arg] some_arg == some value [arg] some_number_arg >= 10 [arg] some_number_arg <= 10 [arg] some_number_arg > 10 [arg] some_number_arg < 10 [](#api-usage) API Usage ----------------------------- You can register your own requirements to use it everywhere in the menus. Prefix can't contain spaces! First arg will always be the prefix. Copy AuroraAPI.registerRequirementHandler("my-requirement", (args) -> { // You need to return a boolean here. args is a String array. return args.length > 2; }); Then you can use it in your menus like: Copy view-requirements: - "[my-requirement] arg1 arg2 arg3" [PreviousCustom Menus](/aurora/custom-menus) [NextCommand dispatcher](/aurora/command-dispatcher) Last updated 2 months ago --- # Main config | Aurora `debug` - leave it false if the developer doesn't say otherwise. It will log some extra information if it is enabled to the console `number-format` * `locale` - this will be used in number formatting * `int-format` - number format pattern for whole numbers (without decimals) * `double-format` - number format pattern for decimal numbers `user-auto-save-in-minutes` - how often should the plugin auto save user data in minutes? `storage-type` - where to store user data? can be either `yaml` or `mysql` `mysql` * `host` - SQL server ip address or domain host name * `port` - SQL server port (number) * `ssl` - Whether to use SSL or not for the connections * `database` - Name of the database to connect to * `username` - SQL username * `password` - SQL password * `network-latency` - How long does it take to send data from the server to the database server and back in milliseconds? Used for data sync when players are switching servers * `pool-size` - How many concurrent connections can we have? * `sync-retry-count` - How many times should we wait the network latency for the sync flag to be removed before we load the data anyways? `block-tracker` * `enabled` - should the block tracker work? * `storage-type` - file or sqlite. if you are using compatible world/chunk managers I suggest using sqlite. If not, then you can delete coordinates manually from txt files. `config-version` - DO NOT TOUCH THIS FOR YOUR OWN SAKE [PreviousCommands](/aurora/commands) [NextCustom Menus](/aurora/custom-menus) Last updated 8 months ago --- # Item stash | Aurora Item stash is used to put item rewards inside it. (Or really any supported item by running commands). This place is better than giving item directly into the players inventories, since it can be full quickly. The item stash on the other hand supports pagination and can hold any amount of items. Players can pick up items from here anytime they want. [](#configuration) Configuration ------------------------------------- Copy config-version: 0 # Should we send a message to the player when they join the server and have unclaimed items? notify-on-join: true # What should be the /stash command? You need to specify at least one. command-aliases: - stash - itemstash # Where should be the stash items in the inventory? stash-area: [\ 0, 1, 2, 3, 4, 5, 6, 7, 8,\ 9, 10, 11, 12, 13, 14, 15, 16, 17,\ 18, 19, 20, 21, 22, 23, 24, 25, 26,\ 27, 28, 29, 30, 31, 32, 33, 34, 35,\ 36, 37, 38, 39, 40, 41, 42, 43, 44,\ ] menu: # Title of the inventory title: "Item stash" # Default filler item filler: enabled: true item: material: black_stained_glass_pane name: " " hide-tooltip: true # Default gui items items: prev-page: material: arrow slot: 48 name: "&fPrevious Page" lore: - "&7Click to go to the previous page" next-page: material: arrow name: "&fNext Page" slot: 50 lore: - "&7Click to go to the next page" current-page: material: paper name: "&fCurrent Page &7({current}/{max})" slot: 49 lore: - "&7You are currently on page {current}" collect-all: material: chest name: "&aCollect all" slot: 45 lore: - "&7Click to collect all items" # You can add extra GUI items. custom-items: close: material: barrier name: "&cClose" slot: 53 lore: - "&7Click to close the menu" on-click: - "[close]" [](#commands) Commands --------------------------- Command Description `/stash` Opens the item stash. This is a player command. `/stash add [amount] [silent]` Add some items to the stash. If silent is provided and it is true, there won't be any feedback message. Do note that the amount max value is 64 or whatever the vanilla item maximum stack size is. `/stash clear ` Deletes everything from a players stash. [](#api-usage) API Usage ----------------------------- You can add items to the stash within your plugin. Just use the following code snippet: Copy AuroraAPI.getUserManager().getUser(player).getStashData().addItem(itemStack); [PreviousItem config](/aurora/item-config) Last updated 4 months ago --- # Custom Menus | Aurora You can create custom menus in the `Aurora/gui/menus` folder. You can create subfolders as well inside this folder. Menu filenames must use lowercase english alphabet, numbers and underscore. Every filename must be unique since that will be the ID of the menu. [](#example-configuration) Example configuration ----------------------------------------------------- Copy # What commands should open the menu? # Changing this might require a full server restart depending on server version # (Optional, can be deleted) register-commands: - "mymenu" # Title of the inventory title: "&6Example Menu" # How many rows should the inventory have? rows: 6 # Should we refresh the menu periodically? (most of the times, you don't need this) # (Optional, can be deleted) refresh: false # How often should the menu be refreshed? (in seconds, minimum 1, has to be an integer) # (Optional, can be deleted) refresh-interval: 5 # What are the requirements for opening the menu? can be multiple # (Optional, can be deleted) open-requirements: - requirement: "[permission] example.permission" # What should happen when this requirement isn't met? deny-actions: - "[message] You do not have permission to open this menu." # What should we run when the menu opens? # (Optional, can be deleted) open-actions: - "[sound] entity.villager.yes" # What should we run when the menu gets closed? # (Optional, can be deleted) close-actions: - "[sound] entity.villager.no" # Default item to fill the GUI with # (Optional, can be deleted) filler: material: black_stained_glass_pane hide-tooltip: true # These are the items for the gui. # For more info, see Item config and Requirement pages items: test: # Higher priority means if both items are visible on the same slot, this will win priority: 1 # When periodic refresh is enabled only those items will be refreshed # that has refresh: true refresh: true material: diamond name: "&6Test Item" lore: - "&7%server_time_hh:mm:ss%" slot: 13 on-click: - "[open-gui] aaa" view-requirements: - "![permission] example.permission" test2: priority: 0 material: emerald name: "&6Test Item {arg_test}" lore: - "&7This is a test item." slot: 13 on-click: - "[console] say Hello world {arg_test}!" - "[permission] example.permission" click-requirements: - requirement: "[arg] test == example" deny-actions: - "[message] test arg is not example! It is {arg_test}" [](#opening-a-menu) Opening a menu --------------------------------------- You can open a menu/gui either by the defined `register-commands` or via the `/aurora gui open [...args]`command. Copy /aurora gui open arg1={some value} test={10} If you are trying to open the menu from another menu, you can use the `[open-gui]` action. Copy [open-gui] menu_id arg1={some value} test={10} [](#menu-arguments) Menu arguments --------------------------------------- As you have seen above, you can pass arguments to menus. You can reference these arugments anywhere by using this syntax: `{arg_key}`. So for the above example: `{arg_test}`. You can also use these in requirements to control menu item visibility or click requirements. [](#actions) Actions ------------------------- For the possible click/open/close actions please see [Command dispatcher](/aurora/command-dispatcher) . Everywhere you see `on-click` you can also define an `on-left-click` and `on-right-click` as well. [](#requirements) Requirements ----------------------------------- You can view the available view/open/click requirements here: [Requirements](/aurora/custom-menus/requirements) . Everywhere you see `click-requirements` you can define `left-click-requirements` and `right-click-requirements` as well. [PreviousMain config](/aurora/main-config) [NextRequirements](/aurora/custom-menus/requirements) Last updated 4 months ago ---