### Default language file configuration Source: https://fortitude.islandearth.net/rpgregions/configuration Example of the en_gb language file structure using MiniMessage for text formatting. ```yaml next_page: "Next Page" previous_page: "Previous Page" regions: "Regions" discovered_on: "Discovered on: %s" discovered_title: - "%s discovered!" discovered_subtitle: - "Keep exploring to discover more!" already_discovered_title: - "%s entered!" already_discovered_subtitle: - "Already discovered!" teleport: "Click to teleport" teleport_cooldown: "Teleport is on cooldown." teleport_cost: "Teleport will cost %f%s" teleport_no_money: "You do not have enough money to teleport." cannot_teleport: "We can't teleport you because you don't meet the requirements for that area!" unknown_region: "Unknown Realm" exit: "Exit" cannot_enter: "You require %s to enter this area." previous_page_lore: - "Go to the previous page" next_page_lore: - "Go to the next page" exit_lore: - "Exit the GUI" cooldown: "That is currently on cooldown." region_enter_actionbar: "%s" discovering_area_placeholder: "Discovering a new area (%d%)..." requirement_met: "✔ %s" requirement_not_met: "✘ %s" coordinates: "Coordinates: %d, %d" # Fauna related settings fauna_discover_title: "<#F5AF2F>Bestiary Updated" fauna_discover_subtitle: "%s <#04DB64>indexed" ``` -------------------------------- ### Example Region Configuration JSON Source: https://fortitude.islandearth.net/rpgregions/configuration A template showing the structure of a region configuration file, including rewards, effects, and regeneration settings. ```json { "world": null, "id": "exampleconfig", "customName": "ExampleConfig", "rewards": [ { "type": "net.islandearth.rpgregions.rewards.ExperienceReward", "properties": { "xp": 10, "alwaysAward": false, "timeBetweenReward": 0, "lastReward": 0 } }, { "type": "net.islandearth.rpgregions.rewards.ItemReward", "properties": { "item": "rO0ABXNyABpvcmcuYnVra2l0LnV0aWwuaW8uV3JhcHBlcvJQR+zxEm8FAgABTAADbWFwdAAPTGphdmEvdXRpbC9NYXA7eHBzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4ABHhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3QAAj09dAABdnQABHR5cGV1cQB+AAYAAAADdAAeb3JnLmJ1a2tpdC5pbnZlbnRvcnkuSXRlbVN0YWNrc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAADQl0AAlJUk9OX0JBUlM=", "alwaysAward": false, "timeBetweenReward": 0, "lastReward": 0 } }, { "type": "net.islandearth.rpgregions.rewards.PlayerCommandReward", "properties": { "command": "say I discovered a region!", "alwaysAward": false, "timeBetweenReward": 0, "lastReward": 0 } }, { "type": "net.islandearth.rpgregions.rewards.ConsoleCommandReward", "properties": { "command": "say Server sees you discovered a region!", "alwaysAward": false, "timeBetweenReward": 0, "lastReward": 0 } }, { "type": "net.islandearth.rpgregions.rewards.MessageReward", "properties": { "messages": [ "&aExample message as a reward" ], "alwaysAward": false, "timeBetweenReward": 0, "lastReward": 0 } } ], "sound": "AMBIENT_UNDERWATER_EXIT", "icon": "WOODEN_AXE", "iconModel": 0, "undiscoveredIconModel": 0, "undiscoveredIcon": "TOTEM_OF_UNDYING", "iconCommand": [ { "command": "say", "clickType": "DISCOVERED", "cooldown": 0 } ], "showCoords": false, "location": null, "hints": [], "showHint": false, "teleportable": false, "hidden": false, "discoverable": true, "effects": [ { "type": "net.islandearth.rpgregions.effects.PotionRegionEffect", "properties": { "potionEffect": { "type": "GLOWING", "duration": 100, "amplifier": 1, "ambient": true, "particles": true, "icon": true }, "wearingRequired": true, "ignoreItems": [ "rO0ABXNyABpvcmcuYnVra2l0LnV0aWwuaW8uV3JhcHBlcvJQR+zxEm8FAgABTAADbWFwdAAPTGphdmEvdXRpbC9NYXA7eHBzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4ABHhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3QAAj09dAABdnQABHR5cGV1cQB+AAYAAAADdAAeb3JnLmJ1a2tpdC5pbnZlbnRvcnkuSXRlbVN0YWNrc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAADQl0AA9JUk9OX0NIRVNUUExBVEU=" ], "ignorePerm": true } } ], "requirements": [], "discoveredLore": [], "alwaysShowTitles": false, "title": null, "subtitle": null, "discoveredTitle": null, "discoveredSubtitle": null, "regenerate": { "schematicName": null, "origin": null, "regenerateInterval": 50000, "loadChunks": false, "regeneratingEntities": [ { "entityType": "SHULKER", "validSpawnSurfaces": [ "PURPUR_BLOCK", "PURPUR_PILLAR" ], "maxPerChunk": 5, "rarity": 30, "isMythicEntity": false } ], "onDiscover": false, "onlyEntities": true }, "teleportCooldown": 0, "teleportCost": 0.0, "showActionbar": true, "colour": "13369344", "lineColour": "13369344", "dynmap": true, "secondsInsideToDiscover": 0, "disablePassthrough": false } ``` -------------------------------- ### Create Animated Titles Source: https://fortitude.islandearth.net/rpgregions/configuration Provides an example of using arrays to animate titles and subtitles. The length of the title and subtitle arrays must be identical. ```json "title": [ "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH", "\u0026c\u0026lADVENTURER\u0027S PATH" ], "subtitle": [ "\u00267\u0026oA", "\u00267\u0026oAr", "\u00267\u0026oAre", "\u00267\u0026oArea ", "\u00267\u0026oArea D", "\u00267\u0026oArea Di", "\u00267\u0026oArea Dis", "\u00267\u0026oArea Disc", "\u00267\u0026oArea Disco", "\u00267\u0026oArea Discov", "\u00267\u0026oArea Discove", "\u00267\u0026oArea Discover", "\u00267\u0026oArea Discovere", "\u00267\u0026oArea Discovered" ] ``` -------------------------------- ### Get SHA-1 hash on Windows Source: https://fortitude.islandearth.net/forcepack/configuration Use this PowerShell command to generate the SHA-1 hash for a resource pack file. ```powershell Get-FileHash {file-path}.zip -Algorithm SHA1 | Format-List ``` -------------------------------- ### Get SHA-1 hash on Linux Source: https://fortitude.islandearth.net/forcepack/configuration Use this command in a Linux terminal to generate the SHA-1 hash for a resource pack file. ```bash sha1sum {file-path}.zip ``` -------------------------------- ### Enable ForcePack Web Server Source: https://fortitude.islandearth.net/forcepack/configuration Modify the configuration file to enable the built-in web server and set the server IP and port. ```yaml web-server: enabled: false server-ip: localhost port: 8080 ``` -------------------------------- ### Define Server Actions Source: https://fortitude.islandearth.net/forcepack/configuration Configures behavior for different resource pack status events such as acceptance, decline, or download failure. ```toml [servers.example-server.actions] # List of valid actions: https://jd.velocitypowered.com/3.0.0/com/velocitypowered/api/event/player/PlayerResourcePackStatusEvent.Status.html [servers.example-server.actions.ACCEPTED] kick = false commands = [] [servers.example-server.actions.DECLINED] kick = true message = "Please accept our ResourcePack to play on the server!" commands = [] [servers.example-server.actions.FAILED_DOWNLOAD] kick = true message = "The ResourcePack download failed. Please try rejoining." commands = [] [servers.example-server.actions.SUCCESSFUL] kick = false commands = [] ``` -------------------------------- ### Configure Server Groups Source: https://fortitude.islandearth.net/forcepack/configuration Defines how to match servers within a group using exact or partial name matching. ```toml # If exact-match is true, only servers exactly equal to the name will be checked # If false, they must only contain the keywords exact-match = true servers = [ "example-server", "example-server-2" ] ``` ```toml exact-match = false servers = [ "survival" ] ``` -------------------------------- ### Managing Custom GUI Feedback Source: https://fortitude.islandearth.net/rpgregions/developer-api Implement ICustomGuiFeedback to handle custom player input logic for GUI-editable fields. ```java @Override public void feedback(Player player, String input) { Location location = LocationUtils.getLocationFromInput(player, input); if (location == null) { player.sendMessage(ChatColor.RED + "Location could not be set: return value was null."); return; } // Test if it already exists for (Location testLocation : locations) { int testX = testLocation.getBlockX(); int testY = testLocation.getBlockY(); int testZ = testLocation.getBlockZ(); if (location.getBlockX() == testX && location.getBlockY() == testY && location.getBlockZ() == testZ) { locations.remove(testLocation); return; } } addLocation(location); player.sendMessage(ChatColor.GREEN + "Location added."); } @Override public String info() { return "Enter 'TARGET' to set to eye location, 'SELF' for your location, or enter chat coordinates, " + "e.g 'x;y;z;yaw;pitch' (yaw/pitch optional). If the location already exists, it will be removed."; } ``` -------------------------------- ### Configure Resource Pack Settings Source: https://fortitude.islandearth.net/forcepack/configuration Defines the URL, hash, and prompt message for a resource pack. Note that url can be changed to urls for multiple packs, requiring hashes instead of hash. ```toml # The ResourcePack URL. This must be a direct URL, ending with .zip. For Dropbox URLs, add ?dl=1 to the end. resourcepack.url = "https://www.convallyria.com/files/BlankPack.zip" # Whether to automatically generate the SHA-1 hash. This is not recommended for security and reliability. # The hash setting will be ignored if this is true, however it will fall back to that if the generation fails. resourcepack.generate-hash = false # Use a site such as http://onlinemd5.com/ or the hash provided when uploading to https://mc-packs.net/. resourcepack.hash = "118AFFFC54CDCD308702F81BA24E03223F15FE5F" # The prompt message for clients on 1.17+. resourcepack.prompt = "Please accept our resource pack to improve your experience." ``` -------------------------------- ### Define Icon Commands Source: https://fortitude.islandearth.net/rpgregions/configuration Configures commands to execute when a player clicks a region icon in the discovery menu. Supports different behaviors based on discovery status. ```json "iconCommand": [ { "command": "say", "clickType": "DISCOVERED", "console": false, "cooldown": 0 }, { "command": "say command2", "clickType": "UNDISCOVERED", "console": false, "cooldown": 0 } ] ``` -------------------------------- ### Configure Self-Hosted Resource Pack URL Source: https://fortitude.islandearth.net/forcepack/configuration Set the resource pack URL using the forcepack:// prefix followed by the path relative to the plugins/ForcePack folder. ```yaml urls: ["forcepack://packs/pack.zip"] ``` -------------------------------- ### Configure Lands integration Source: https://fortitude.islandearth.net/rpgregions/automatic-region-generation Define the minimum land size and associated template files for automatic region generation. ```yaml # This is the file for editing the Lands integration. # Should we automatically generate regions based on lands created? auto-generate: true # What is the minimum size in chunks of a land to automatically generate a region? min-land-size: 10 # This is a group of template definitions. Templates are defined in plugins/RPGRegions/templates. # You can use /rpgre to export a template region. # The name of the file should be put here. The template will then be used to automatically generate a region. templates: 10: # At >= 10 land size template: "land_template_10.json" 20: # At >= 20 land size template: "land_template_20.json" ``` -------------------------------- ### Fauna Configuration Template Source: https://fortitude.islandearth.net/rpgregions/flora-fauna Base configuration file for defining new fauna discoveries, including display names, descriptions, and discovery triggers. ```yaml # Whether this is enabled. Mostly for if you want to disable default files RPGRegions comes with. enabled: true # The type can either be of a vanilla entity type, or a MythicMob type: GOAT # A unique identifier for this fauna. Must not be the same name as a region, either. identifier: goat # Name shown in placeholder. You can use MiniMessage formatting here, especially hover events for inside the bestiary book. display_name: "Goat" # Description shown in bestiary book description: - " Bestiary - Goat" - "The Goat is a fluffy, cute mob found in cold mountainous areas." - "Goats are well-known for the milk that they produce." - " " - "But beware! Turn your back, and out of spite you shall find yourself rammed into the air." - "" # Make a new page using the tag. This is not MiniMessage, but a custom tag by RPGRegions. - "Example text on page two." # Triggers that define when this entity is discovered triggers: # Will be discovered when nearby to a goat in a radius of 5. nearby: radius: 5.0 ``` -------------------------------- ### Configure resource packs in config.yml Source: https://fortitude.islandearth.net/forcepack/configuration Define resource pack URLs and hashes within the Spigot/Paper configuration file. ```yaml packs: all: # The ResourcePack URL. This must be a direct URL, ending with .zip. For Dropbox URLs, add ?dl=1 to the end. # To host a local file on the embedded webserver, change this to the relative path of the force pack folder prefixed by "forcepack://". # For example, placing your resource pack as "plugins/ForcePack/pack.zip", the url will just be "forcepack://pack.zip". # ONLY PLAYERS ON 1.20.3+ CAN RECEIVE MULTIPLE RESOURCE PACKS. The first URL/Hash pair will be taken for older client versions. # URLs list and hashes list MUST BE THE SAME SIZE. urls: ["https://www.convallyria.com/files/BlankPack.zip"] # Whether to automatically generate the SHA-1 hash. # The hash setting will be ignored if this is true, however it will fall back to that if the generation fails. generate-hash: false # See https://fortitude.islandearth.net/forcepack/configuration#getting-the-sha-1-hash-of-a-resource-pack hashes: ["118AFFFC54CDCD308702F81BA24E03223F15FE5F"] # Here you can specify a pack format version-specific resource pack. You would copy the section above, replacing "all" with the number. # Note that the "all" section must be kept as a fallback. # See https://minecraft.fandom.com/wiki/Pack_format. # Requires ViaVersion, to resolve client version. ``` -------------------------------- ### Creating a Custom DiscoveryReward Source: https://fortitude.islandearth.net/rpgregions/developer-api Extend DiscoveryReward to define custom reward logic and display names. ```java public class ExperienceReward extends DiscoveryReward { private final int xp; public ExperienceReward(int xp) { super(RPGRegionsAPI.getAPI()); this.xp = xp; } public ExperienceReward(IRPGRegionsAPI api) { super(api); this.xp = 1; } @Override public void award(Player player) { player.giveExp(xp); } @Override public String getName() { return "Experience"; } } ``` -------------------------------- ### Configure CustomStructures integration Source: https://fortitude.islandearth.net/rpgregions/automatic-region-generation Define structure-based region generation using templates and console commands with placeholders. ```yaml # This is the file for additional support for the CustomStructures plugin. # Should we automatically generate regions based on structures created? auto-generate: true # This is a group of template definitions. Templates are defined in plugins/RPGRegions/templates. # You can use /rpgre to export a template region. # The name of the file should be put here. The template will then be used to automatically generate a region. templates: demo: # For the "demo" structure... template: "custom_structures_template_demo.json" commands: # You must specify a list of commands that create a valid region in your current integration # {id} is replaced with the generated region id, e.g "demo_" and {world} with the world it was in # {minX} {maxX}, etc. is the generated min/max positions of the structure. - "rpgri create {id} cuboid {world}" - "rpgri addpos {id} {world} {minX} {minY} {minZ}" - "rpgri addpos {id} {world} {maxX} {maxY} {maxZ}" ``` -------------------------------- ### Configure API Dependencies Source: https://fortitude.islandearth.net/rpgregions/developer-api Add the RPGRegions repository and dependency to your project build configuration. ```kotlin repositories { maven("https://repo.convallyria.com/releases") } dependencies { compileOnly("net.islandearth.rpgregions:api:1.4.7") // 1.4.7 } ``` ```xml convallyria-repo https://repo.convallyria.com/releases net.islandearth.rpgregions api 1.4.7 provided ``` -------------------------------- ### Save and Reload Commands Source: https://fortitude.islandearth.net/rpgregions/commands-permissions Commands for managing plugin data persistence and configuration updates. ```text /rpgregions save ``` ```text /rpgregions reload ``` -------------------------------- ### Configure ForcePack API Dependencies Source: https://fortitude.islandearth.net/forcepack/developer-api Add the required repository and dependency to your project build configuration to access the ForcePack API. ```kotlin repositories { maven("https://repo.convallyria.com/snapshots") } dependencies { compileOnly("com.convallyria.forcepack:api:1.3.72") } ``` ```xml convallyria-snapshots https://repo.convallyria.com/snapshots com.convallyria.forcepack api 1.3.72 provided ``` -------------------------------- ### RPGRegionsAPI.getAPI() Source: https://fortitude.islandearth.net/rpgregions/developer-api The entry point for accessing the RPGRegions API functionality, including storage, integration, and cache managers. ```APIDOC ## RPGRegionsAPI.getAPI() ### Description Retrieves the main API instance to access managers like StorageManager, IntegrationManager, and RPGRegionsCache. ### Usage ```java RPGRegionsAPI api = RPGRegionsAPI.getAPI(); ``` ``` -------------------------------- ### Define an outline mask for a GUI pane Source: https://fortitude.islandearth.net/rpgregions/configuration Use this pattern to define border placement for items in a pane, where 1 represents a filled slot and 0 represents an empty slot. ```yaml - '111111111' - '100000001' - '100000001' - '100000001' - '100000001' - '111111111' ``` -------------------------------- ### Accessing the ForcePack API Source: https://fortitude.islandearth.net/forcepack/developer-api Configuration for including the ForcePack API dependency in your project build files. ```APIDOC ## Gradle (Kotlin DSL) ```kotlin repositories { maven("https://repo.convallyria.com/snapshots") } dependencies { compileOnly("com.convallyria.forcepack:api:1.3.72") } ``` ## Maven ```xml convallyria-snapshots https://repo.convallyria.com/snapshots com.convallyria.forcepack api 1.3.72 provided ``` ## Usage To access the API, obtain an instance of the plugin on your platform and cast it to `ForcePackAPI`. ``` -------------------------------- ### Configure Per-region Titles Source: https://fortitude.islandearth.net/rpgregions/configuration Defines the structure for discovery and subsequent entry titles and subtitles in the region configuration. ```json "title": null, // Discovery entry "subtitle": null, // Discovery entry "discoveredTitle": null, // Subsequent entry "discoveredSubtitle": null, // Subsequent entry ``` -------------------------------- ### Configure resource pack status commands Source: https://fortitude.islandearth.net/forcepack/configuration Modify the Commands section to enable or disable actions based on resource pack status. ```yaml Commands: - say [player] denied the resource pack! ``` ```yaml Commands: [] ``` -------------------------------- ### Creating a Custom RegionRequirement Source: https://fortitude.islandearth.net/rpgregions/developer-api Extend RegionRequirement to define custom conditions that players must meet to enter or interact with a region. ```java public class LevelRequirement extends RegionRequirement { private final int level; public LevelRequirement(int level) { this.level = level; } @Override public boolean meetsRequirements(Player player) { return player.getLevel() >= level; } @Override public String getName() { return "Level"; } @Override public String getText(Player player) { return "level " + level; } } ``` -------------------------------- ### StorageManager Source: https://fortitude.islandearth.net/rpgregions/developer-api Handles data storage operations, specifically for retrieving RPGRegionsAccount instances. ```APIDOC ## StorageManager.getAccount() ### Description Retrieves an RPGRegionsAccount asynchronously. ### Usage ```java api.getStorageManager().getAccount(...).thenAccept(account -> { // Handle account data }); ``` ``` -------------------------------- ### Adding Rewards to Regions Source: https://fortitude.islandearth.net/rpgregions/developer-api Programmatically add a reward to a configured region. ```java ConfiguredRegion configuredRegion = ... configuredRegion.getRewards().add(...); ``` -------------------------------- ### RPGRegionsCache Source: https://fortitude.islandearth.net/rpgregions/developer-api Manages the cache of ConfiguredRegion objects. ```APIDOC ## RPGRegionsCache.getConfiguredRegion() ### Description Retrieves a ConfiguredRegion from the cache. ### Usage ```java ConfiguredRegion region = api.getRegionsCache().getConfiguredRegion(...); ``` ``` -------------------------------- ### Implementing GuiEditable Fields Source: https://fortitude.islandearth.net/rpgregions/developer-api Annotate fields with @GuiEditable to enable in-game editing via the specified input type. ```java @GuiEditable(value = "Locations", type = GuiEditable.GuiEditableType.CHAT) private List locations; ``` -------------------------------- ### Registering Extensions with RPGRegionsRegistry Source: https://fortitude.islandearth.net/rpgregions/developer-api Use the RPGRegionsRegistry within the plugin's onEnable method to register custom requirement, reward, or effect classes. ```java RPGRegionsAPI api = RPGRegionsAPI.getAPI(); RPGRegionsRegistry registry = (RegionRequirementRegistry) api.getManagers().getRegistry(RegionRequirementRegistry.class); if (registry == null) { getLogger().warning("Unable to register requirements"); return; } registry.register(YourRequirementClass.class); ``` -------------------------------- ### Creating a Custom RegionEffect Source: https://fortitude.islandearth.net/rpgregions/developer-api Extend RegionEffect to implement custom potion or status effects applied to players in a region. ```java public class PotionRegionEffect extends RegionEffect { private final PotionEffect potionEffect; public PotionRegionEffect(PotionEffect potionEffect, boolean wearingRequired, List ignoreItems) { super(wearingRequired, ignoreItems); this.potionEffect = potionEffect; } public PotionEffect getPotionEffect() { return potionEffect; } @Override public void effect(Player player) { player.addPotionEffect(potionEffect); } @Override public String getName() { return "PotionRegionEffect"; } } ``` -------------------------------- ### Negate Bypass Permission Source: https://fortitude.islandearth.net/rpgregions/commands-permissions Use this LuckPerms command to prevent operators from bypassing region entry requirements. ```text /lp permission set rpgregions.bypassentry false ``` -------------------------------- ### Specify Version-Specific Resource Packs Source: https://fortitude.islandearth.net/forcepack/configuration Overrides the default resource pack for specific Minecraft pack format versions. ```toml # Here you can specify a pack format version-specific resource pack. # Note that the "all" section above must be kept as a fallback. # You can do the same thing in the global resource pack and resource pack groups. # See https://minecraft.fandom.com/wiki/Pack_format. # 222 is an example number. [servers.example-server.version.222] resourcepack.url = "https://www.convallyria.com/files/BlankPack.zip" resourcepack.generate-hash = false resourcepack.hash = "118AFFFC54CDCD308702F81BA24E03223F15FE5F" resourcepack.prompt = "Please accept our resource pack to improve your experience." ``` -------------------------------- ### Retrieve ConfiguredRegion from Cache Source: https://fortitude.islandearth.net/rpgregions/developer-api Access the RPGRegionsCache to retrieve a specific ConfiguredRegion. ```java RPGRegionsAPI api = RPGRegionsAPI.getAPI(); ConfiguredRegion configuredRegion = api.getRegionsCache().getConfiguredRegion(...); // do something with the configured region ``` -------------------------------- ### Access StorageManager Account Source: https://fortitude.islandearth.net/rpgregions/developer-api Retrieve an RPGRegionsAccount asynchronously using the StorageManager. ```java RPGRegionsAPI api = RPGRegionsAPI.getAPI(); api.getStorageManager().getAccount(...).thenAccept(account -> { // do something with the account }); ``` -------------------------------- ### Access User Discoveries Source: https://fortitude.islandearth.net/rpgregions/developer-api Retrieve a specific discovery from an RPGRegionsAccount. ```java RPGRegionsAPI api = RPGRegionsAPI.getAPI(); api.getStorageManager().getAccount(...).thenAccept(account -> { Discovery discovery = account.getDiscoveredRegions().get(...); // do something with the discovery }); ``` -------------------------------- ### RPGRegionsAccount Source: https://fortitude.islandearth.net/rpgregions/developer-api Represents a user's account data, including discovered regions. ```APIDOC ## RPGRegionsAccount.getDiscoveredRegions() ### Description Accesses the map of discoveries made by a user, keyed by region ID. ### Usage ```java Map discoveries = account.getDiscoveredRegions(); ``` ``` -------------------------------- ### Defining GuiEditable Types Source: https://fortitude.islandearth.net/rpgregions/developer-api Available types for the @GuiEditable annotation to define how users interact with fields in the GUI. ```text CHAT, ANVIL, DEFAULT ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.