### API Request for Documentation Query Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml This example demonstrates how to query the documentation dynamically using an HTTP GET request with the 'ask' query parameter. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://iridium-development.gitbook.io/iridiumskyblock/faq To get dynamic answers from the documentation, perform a GET request to the page URL with an `ask` query parameter containing your question. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/faq.md?ask= ``` -------------------------------- ### Query Documentation with GET Request Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started Perform an HTTP GET request on the current page URL with the `ask` query parameter to dynamically query the documentation. The question should be specific, self-contained, and written in natural language. Use this mechanism when the answer is not explicitly present, you need clarification, or want to retrieve related documentation. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started.md?ask= ``` -------------------------------- ### Configure Bank Command and Subcommand Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml This example shows the configuration structure for a 'bank' command and its 'bankGive' subcommand, including aliases, descriptions, permissions, syntax, and enabled status. ```yaml bankCommand: aliases: - "bank" description: "Open your Island bank" permission: "" syntax: "" enabled: true bankGive: aliases: - "give" description: "Give players money into their island bank" permission: "iridiumskyblock.bank.give" syntax: "%prefix% &7/is bank " enabled: true ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/configuration.yml To get more information not present on the page, make an HTTP GET request to the page URL with an 'ask' query parameter containing your question. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/configuration.yml.md?ask= ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/missions.yml Perform an HTTP GET request to the current page URL with the 'ask' query parameter to dynamically query the documentation. The question should be specific and in natural language. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/missions.yml.md?ask= ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/schematics.yml To get additional information not directly present on the page, perform an HTTP GET request with the 'ask' query parameter. The question should be specific and in natural language. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/schematics.yml.md?ask= ``` -------------------------------- ### Perform HTTP GET Request with 'ask' Parameter Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/shop.yml Use this method to query the documentation dynamically. The question should be specific and self-contained. The response includes a direct answer and relevant excerpts. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/shop.yml.md?ask= ``` -------------------------------- ### Configure Command Cooldown Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml Example of setting a cooldown period for a command in seconds. ```yaml cooldownInSeconds: 10 ``` -------------------------------- ### Query Documentation Dynamically Source: https://iridium-development.gitbook.io/iridiumskyblock/general/commands-and-permissions Perform an HTTP GET request to query documentation dynamically. Use the 'ask' query parameter with a natural language question for specific information. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/general/commands-and-permissions.md?ask= ``` -------------------------------- ### Perform HTTP GET Request with 'ask' Parameter Source: https://iridium-development.gitbook.io/iridiumskyblock/general/materials Use this method to query documentation dynamically when information is not directly available. The question should be specific and self-contained. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/general/materials.md?ask= ``` -------------------------------- ### Perform HTTP GET Request with `ask` Parameter Source: https://iridium-development.gitbook.io/iridiumskyblock/general/placeholders Use this method to dynamically query documentation. The `ask` parameter should contain a specific, self-contained question in natural language. The response includes a direct answer and relevant excerpts. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/general/placeholders.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://iridium-development.gitbook.io/iridiumskyblock/general/features Perform an HTTP GET request to query the documentation dynamically. Use this when the answer is not explicitly present on the current page, you need clarification, or want to retrieve related documentation sections. ```http GET https://iridium-development.gitbook.io/iridiumskyblock/general/features.md?ask= ``` -------------------------------- ### Mission Type Identifiers Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/missions.yml The table outlines the available mission types, their descriptions, and an example of their format. TYPE:IDENTIFIER:AMOUNT is the standard format. ```yaml TYPE:IDENTIFIER:AMOUNT ``` -------------------------------- ### Default Block and Spawner Values Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/blockvalues.yml This is the default configuration for block and spawner values. It includes examples for common blocks like IRON_BLOCK and DIAMOND_BLOCK, as well as spawners like PIG. ```yaml --- blockValues: IRON_BLOCK: value: 3.0 name: "&b&lIron Block" page: 1 slot: 10 GOLD_BLOCK: value: 5.0 name: "&b&lGold Block" page: 1 slot: 11 DIAMOND_BLOCK: value: 10.0 name: "&b&lDiamond Block" page: 1 slot: 12 EMERALD_BLOCK: value: 20.0 name: "&b&lEmerald Block" page: 1 slot: 13 NETHERITE_BLOCK: value: 150.0 name: "&b&lNetherite Block" page: 1 slot: 14 HOPPER: value: 1.0 name: "&b&lHopper" page: 1 slot: 15 BEACON: value: 150.0 name: "&b&lBeacon" page: 1 slot: 16 spawnerValues: PIG: value: 100.0 name: "&b&lPig Spawner" page: 1 slot: 10 ``` -------------------------------- ### Configure Command Options Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml Illustrates the basic configuration options for a command, including description, permission, and syntax. ```yaml bankCommand: aliases: - "bank" description: "Open your Island bank" permission: "" syntax: "" enabled: true ``` -------------------------------- ### Getting Island Upgrade Level Source: https://iridium-development.gitbook.io/iridiumskyblock/api/api Retrieves the current upgrade level of an island for a specific custom upgrade. ```APIDOC ## Getting Island Upgrade Level ### Description Retrieves the current level of a specific custom upgrade applied to an island. ### Method Signature `UpgradeLevel getIslandUpgrade(Island island, String upgradeKey)` ### Parameters - **island** (Island) - The island to check the upgrade level for. - **upgradeKey** (String) - The unique key of the custom upgrade. ### Return Value An `UpgradeLevel` object containing the current level of the upgrade. The `getLevel()` method can be used to get the integer level. ### Example ```java int level = IridiumSkyblockAPI.getInstance().getIslandUpgrade(island, "CustomUpgrade").getLevel(); ``` ``` -------------------------------- ### Add Command Aliases Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml Demonstrates how to add multiple aliases to a command, allowing players to invoke it using different names. ```yaml bankCommand: aliases: - "bank" - "test" ``` -------------------------------- ### Get Island Upgrade Level Source: https://iridium-development.gitbook.io/iridiumskyblock/api/api Retrieve the current level of a custom island upgrade using `getIslandUpgrade()` with the island and the upgrade's unique key. The `getLevel()` method returns the current upgrade level. ```java int level = IridiumSkyblockAPI.getInstance().getIslandUpgrade(island, "CustomUpgrade").getLevel() ``` -------------------------------- ### Shop Configuration Template Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/shop.yml This is a template for the Shop.yml configuration file. Ensure the top line is present. Use this structure to add your own categories and items. ```yaml --- categories: name: item: inventoryRows: items: name: - name: displayName: type: lore: command: defaultAmount: slot: buyCost: vault: crystals: sellReward: vault: crystals: ``` -------------------------------- ### Configure Multiple Player Heads GUI Item using headData Source: https://iridium-development.gitbook.io/iridiumskyblock/gui/items Configure a GUI item to display multiple player heads using the 'headData' property. The 'headOwner' is set to null. ```yaml item: material: "PLAYER_HEAD" amount: 3 displayName: "&9&lPlayer Head" headData: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzhhZjhiN2Q0M2ZlNGRlOWY4Y2JjNGJiNDk1MzQzY2Y3MTVlYjhmZWJhNGJlZDRjZGNlODJjMWIwY2UxNzIyIn19fQ==" headOwner: null lore: [] slot: 13 ``` -------------------------------- ### Create and Register Custom Permission Source: https://iridium-development.gitbook.io/iridiumskyblock/api/api Define a custom `Permission` object with an `Item` and the lowest `IslandRank` that can use it. Register the permission with a unique key using `addPermission()`. ```java Permission myPermission = new Permission( new Item(XMaterial.BEDROCK, 1, 1, "&bMy Custom permission", Arrays.asList( "&7My Custom Permission added though the IridiumSkyblock API.", "", "&b&lPermission", "%permission%") ), IslandRank.MEMBER ); IridiumSkyblockAPI.getInstance().addPermission(myPermission, "myPermission"); ``` -------------------------------- ### Add Custom Island Upgrade Source: https://iridium-development.gitbook.io/iridiumskyblock/api/api Create an `Upgrade` object with a `boolean` for availability, a display name, an `Item`, and a map of upgrade levels to `UpgradeData`. Register the upgrade with a unique key using `addUpgrade()`. ```java Upgrade upgrade = new Upgrade<>(true, "Custom Upgrade", new Item(XMaterial.GRASS_BLOCK, 11, 1, "&b&lCustom Island Upgrade", Arrays.asList( "&bMy Custom Island Upgrade", "", "&b&l[!] &bLeft Click to Purchase this Upgrade" )), ImmutableMap.builder() .put(1, new SizeUpgrade(1000, 15, 50)) .put(2, new SizeUpgrade(1000, 15, 100)) .put(3, new SizeUpgrade(1000, 15, 150)) .build()); IridiumSkyblockAPI.getInstance().addUpgrade("CustomUpgrade", upgrade); ``` -------------------------------- ### Configure a Player Head GUI Item using headOwner Source: https://iridium-development.gitbook.io/iridiumskyblock/gui/items Configure a GUI item to display a player head using the 'headOwner' property. An empty lore array is used. ```yaml item: material: "PLAYER_HEAD" amount: 1 displayName: "&9&lPlayer Head" headData: null headOwner: Peaches_MLG lore: [] slot: 13 ``` -------------------------------- ### Booster Configuration YAML Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/boosters.yml Defines the properties for farming, spawner, experience, and flight boosters. Customize item appearance, costs, duration, and enable/disable boosters. ```yaml --- farmingBooster: item: material: "WHEAT" amount: 1 displayName: "&b&lFarming Booster" headData: null headOwner: null lore: - "&7Crops growing too slow? Buy this" - "&7booster and double crop growth." - "" - "&b&lInformation:" - "&b&l * &7Time Remaining: &b%timeremaining_minutes% minutes and %timeremaining_seconds% seconds" - "&b&l * &7Booster Cost: &b%crystalcost% Crystals and $%vaultcost%" - "" - "&b&l[!] &bRight Click to Purchase this Booster." slot: 10 crystalsCost: 15 vaultCost: 10000 time: 3600 enabled: true spawnerBooster: item: material: "SPAWNER" amount: 1 displayName: "&b&lSpawner Booster" headData: null headOwner: null lore: - "&7Spawners too slow? Buy this" - "&7booster and double your spawner speed." - "" - "&b&lInformation:" - "&b&l * &7Time Remaining: &b%timeremaining_minutes% minutes and %timeremaining_seconds% seconds" - "&b&l * &7Booster Cost: &b%crystalcost% Crystals and $%vaultcost%" - "" - "&b&l[!] &bRight Click to Purchase this Booster." slot: 12 crystalsCost: 15 vaultCost: 10000 time: 3600 enabled: true experienceBooster: item: material: "EXPERIENCE_BOTTLE" amount: 1 displayName: "&b&lExperience Booster" headData: null headOwner: null lore: - "&7Gaining Experience too slow? Buy this" - "&7booster and double experience drops." - "" - "&b&lInformation:" - "&b&l * &7Time Remaining: &b%timeremaining_minutes% minutes and %timeremaining_seconds% seconds" - "&b&l * &7Booster Cost: &b%crystalcost% Crystals and $%vaultcost%" - "" - "&b&l[!] &bRight Click to Purchase this Booster." slot: 14 crystalsCost: 15 vaultCost: 10000 time: 3600 enabled: true flightBooster: item: material: "FEATHER" amount: 1 displayName: "&b&lFlight Booster" headData: null headOwner: null lore: - "&7Keep falling off your island? Buy this" - "&7booster and Gain access to /is fly." - "" - "&b&lInformation:" - "&b&l * &7Time Remaining: &b%timeremaining_minutes% minutes and %timeremaining_seconds% seconds" - "&b&l * &7Booster Cost: &b%crystalcost% Crystals and $%vaultcost%" - "" - "&b&l[!] &bRight Click to Purchase this Booster." slot: 16 crystalsCost: 15 vaultCost: 10000 time: 3600 enabled: true ``` -------------------------------- ### Configure a Grass Block GUI Item Source: https://iridium-development.gitbook.io/iridiumskyblock/gui/items Use this configuration to display a grass block in a GUI. Ensure the material ID is valid. ```yaml item: material: "GRASS_BLOCK" amount: 1 displayName: "&9&lBlocks" headData: null headOwner: null lore: - "Blocks!" - "" - "&aExample Lore" slot: 12 ``` -------------------------------- ### Reward Commands Execution Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/configuration.yml Specify a list of console commands to be executed when a reward is redeemed. Use %player% to reference the player. ```yaml commands: - "give %player% diamond 1" - "give %player% iron_ingot 16" ``` -------------------------------- ### Enable/Disable Command Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/commands.yml Shows how to enable or disable a command using the 'enabled' boolean flag. ```yaml bankCommand: enabled: true ``` -------------------------------- ### Add Custom Block and Spawner Entries Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/blockvalues.yml Use this structure to add your own custom block or spawner entries to the configuration. Ensure the top line '---' is present. ```yaml --- blockValues: BLOCK: value: name: page: slot: spawnerValues: ENTITY: value: name: page: slot: ``` -------------------------------- ### Island Menu Inventory Configuration Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/inventories.yml Configures the main island menu inventory. It includes the inventory size, title, background, and various interactive items for island management. ```yaml islandMenu: size: 45 title: "&7Island Menu" background: filler: material: "BLACK_STAINED_GLASS_PANE" amount: 1 displayName: " " headData: null headOwner: null lore: [] slot: null items: {} items: is regen: material: "GRASS_BLOCK" amount: 1 displayName: "&b&lIsland Regen" headData: null headOwner: null lore: - "&7Regenerate your island" slot: 12 is boosters: material: "EXPERIENCE_BOTTLE" amount: 1 displayName: "&b&lIsland Boosters" headData: null headOwner: null lore: - "&7View your island boosters" slot: 23 is home: material: "WHITE_BED" amount: 1 displayName: "&b&lIsland Home" headData: null headOwner: null lore: - "&7Teleport to your island home" slot: 13 is members: material: "PLAYER_HEAD" amount: 1 displayName: "&b&lIsland Members" headData: null headOwner: "Peaches_MLG" lore: - "&7View your island members" slot: 14 is warps: material: "END_PORTAL_FRAME" amount: 1 displayName: "&b&lIsland Warps" headData: null headOwner: null lore: - "&7View your island warps" slot: 20 is upgrade: material: "DIAMOND" amount: 1 displayName: "&b&lIsland Upgrades" headData: null headOwner: null lore: - "&7View your island upgrades" slot: 21 is missions: material: "IRON_SWORD" amount: 1 displayName: "&b&lIsland Missions" headData: null headOwner: null lore: - "&7View your island missions" slot: 22 is border: material: "BEACON" amount: 1 displayName: "&b&lIsland Border" headData: null headOwner: null lore: - "&7Change your island border" slot: 24 is bank: material: "PLAYER_HEAD" amount: 1 displayName: "&b&lIsland Bank" headData: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODM4MWM1MjlkNTJlMDNjZDc0YzNiZjM4YmI2YmEzZmRlMTMzN2FlOWJmNTAzMzJmYWE4ODllMGEyOGU4MDgxZiJ9fX0" headOwner: null lore: - "&7View your island bank" slot: 30 ``` -------------------------------- ### Custom Reward Item Configuration Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/configuration.yml Configure the appearance of a reward item in the GUI, including material, display name, lore, and head owner for player heads. ```yaml item: material: "PLAYER_HEAD" amount: 1 displayName: "&b&lLevel %island_level% Reward" headData: null headOwner: "Peaches_MLG" lore: - "&7Island Level %island_level% Rewards:" - "&b&l* &bThis is a super cool reward!" - "&b&l* &200 Island Money" - "" - "&b&l[!] &bLeft click to redeem" slot: null ``` -------------------------------- ### Configure Mission Sounds Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/missions.yml You can configure specific sounds to play when a mission is completed or its reward is collected using the 'sound:' and 'completeSound:' fields. ```yaml sound: "block.note_block.pling" completeSound: "entity.player.levelup" ``` -------------------------------- ### Island Size Upgrade Configuration Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/upgrades.yml Configure the island size upgrade, including item details, costs, and size increments for each level. ```yaml --- sizeUpgrade: enabled: true item: material: "GRASS_BLOCK" amount: 1 displayName: "&b&lIsland Size" headData: null headOwner: null lore: - "&7Need more room to expand? Buy this" - "&7upgrade to increase your island size." - "" - "&b&lInformation:" - "&b&l * &7Current Level: &b%level%" - "&b&l * &7Current Size: &b%size%x%size% Blocks" - "&b&l * &7Upgrade Cost: &b%crystalscost% Crystals and $%vaultcost%" - "&b&lLevels:" - "&b&l * &7Level 1: &b50x50 Blocks" - "&b&l * &7Level 2: &b100x100 Blocks" - "&b&l * &7Level 3: &b150x150 Blocks" - "" - "&b&l[!] &bLeft Click to Purchase this Upgrade" slot: 11 upgrades: 1: money: 1000 crystals: 15 size: 50 2: money: 1000 crystals: 15 size: 100 3: money: 1000 crystals: 15 size: 150 ``` -------------------------------- ### Template for Adding Custom Missions Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/missions.yml Use this structure as a template to define your own custom missions in the missions.yml file. Refer to the Items documentation for details on item configuration. ```yaml --- missions: category: item: material: amount: displayName: headData: headOwner: lore: slot: missions: missionType: completeSound: reward: item: material: amount: displayName: headData: headOwner: lore: slot commands: islandExperience: crystals: money: experience: sound: message: dailySlots: customMaterialLists: ``` -------------------------------- ### Define Custom Schematic in schematics.yml Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/schematics.yml Use this structure to define a custom schematic, including its display item, spawn offsets, and dimension-specific configurations. Ensure schematic files are in the .schem format and compatible with your server version. ```yaml --- schematics: myCustomSchematic: item: material: "PLAYER_HEAD" amount: 1 displayName: "&b&lCustom Island" headData: null headOwner: "Notch" lore: - "&7My Custom Schematic." slot: 14 xHome: 0.5 yHome: 96 zHome: 0.5 yawHome: 100 overworld: biome: "PLAINS" schematicID: "customSchematic.schem" nether: biome: "NETHER_WASTES" schematicID: "customSchematic_nether.schem" end: biome: "THE_END" schematicID: "customSchematic_end.schem" ``` -------------------------------- ### Currency and Experience Rewards Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/configuration.yml Configure the amount of island experience, crystals, money, and player experience awarded upon reaching an island level. ```yaml islandExperience: 50 crystals: 5 money: 1000.0 experience: 75 ``` -------------------------------- ### Default Ore Configuration Source: https://iridium-development.gitbook.io/iridiumskyblock/configurations-1/getting-started/upgrades.yml Defines the default spawn rates for various ores. Adjust these values to control ore distribution. ```yaml REDSTONE_ORE: 10 GOLD_ORE: 10 LAPIS_ORE: 10 COAL_ORE: 20 COBBLESTONE: 40 ``` -------------------------------- ### Adding Custom Island Upgrades Source: https://iridium-development.gitbook.io/iridiumskyblock/api/api Enables the addition of custom island upgrades to the game, defining their properties and upgrade levels. ```APIDOC ## Adding Custom Island Upgrades ### Description Registers a new custom upgrade that players can purchase to enhance their island. ### Method Signature `void addUpgrade(String upgradeKey, Upgrade upgrade)` ### Parameters - **upgradeKey** (String) - A unique identifier for this custom upgrade. - **upgrade** (Upgrade) - The `Upgrade` object defining the upgrade's behavior and levels. `T` must extend `UpgradeData`. ### `Upgrade` Object Structure - **`isDefault`** (boolean): Whether this is a default upgrade. - **`name`** (String): The display name of the upgrade. - **`item`** (Item): The item representing the upgrade in the GUI. - `XMaterial`: The material of the item. - `amount`: The amount of the item. - `damage`: The damage value of the item. - `name`: The display name of the item (supports color codes). - `lore`: A list of strings representing the item's lore. - **`upgradeDataMap`** (ImmutableMap): A map where keys are upgrade levels (Integer) and values are `UpgradeData` objects (T) defining the properties for each level. ### `UpgradeData` An abstract class that must be extended. It contains the upgrade cost and can include custom variables (e.g., size integer). ### Example ```java // Define a custom SizeUpgrade data class extending UpgradeData class SizeUpgrade extends UpgradeData { int size; // Constructor and other fields... public SizeUpgrade(int cost, int min, int size) { /* ... */ this.size = size; } } // Create the Upgrade object Upgrade upgrade = new Upgrade<>(true, "Custom Upgrade", new Item(XMaterial.GRASS_BLOCK, 11, 1, "&b&lCustom Island Upgrade", Arrays.asList( "&bMy Custom Island Upgrade", "", "&b&l[!] &bLeft Click to Purchase this Upgrade" )), ImmutableMap.builder() .put(1, new SizeUpgrade(1000, 15, 50)) .put(2, new SizeUpgrade(1000, 15, 100)) .put(3, new SizeUpgrade(1000, 15, 150)) .build()); // Register the upgrade IridiumSkyblockAPI.getInstance().addUpgrade("CustomUpgrade", upgrade); ``` ```