## **Changelog**
### *General*
>- **1.20.6** support.
>- **1.21.4** support
> - **IMPORTANT**: There have been breaking changes made to `enhancements.yml`, `commands.yml`, `shop.yml`, and `biomes.yml`. Please make sure that you are aware of these changes, and back up your settings.
> - Fixed the Trusts GUI to correctly display trusts.
> - Fixed an issue where the plugin would crash violently when reloading the config.
> - Added deserialization to the config, allowing all recognized XMaterial names for items.
> - Fixed an issue where island visitors would have their inventory wiped when the island they were visiting was deleted / regenerated.
> - Fixed an issue where offline players would not have their inventory wiped on island delete / regen.
> - Added `spawnOnIsland` to have players respawn on their islands.
> - Added `INTERACT` permission to fix item frames and signs not being protected by permissions.
> - Re-implemented the ability for players to click with Island Crystals to deposit them into the bank.
> - Fixed the flight enhancement staying enabled outside the player's island.
> - Added a check for if the player is in a gamemode that allows flight natively.
> - Fixed an issue with the plugin not loading on 1.16.5.
### *Translation*
> - Added new translatable text for settings and placeholders in ``messages.yml``
### *Placeholders*
> - Scoreboard placeholders are no longer capped at 20.
> - `%bankItem_cost%` now correctly displays for the shop, biomes, and schematics (`%cost%` has been changed to `%vault_cost%` for parity).
> - Fixed placeholder rounding.
> - Fixed swapped placeholders.
> - New suffixes!
> - `enhancement_active`
> - `enhancement_level`
> - `enhancement_time_hours/minutes/seconds`
> - `visitors`
> - `visitors_amount`
> - `experience`
> - `experienceToLevelUp`
> - `experienceForNextLevel`
### *Commands*
> - New Commands:
> - `/is level` - displays your island's experience and level.
> - `/is blockvalues (blocks/spawners) (team)` - yes, it's back, and better than ever! You may need to adjust the inventory size in `inventories.yml` (for v3 parity, use `18`).
> - `/is cleardata <table> (team) (--skip-confirm)` - allows administrators to clear specific data from the database without having to maually edit the tables (which can be dangerous). Has a confirmation dialogue that can and will be skipped when not run as a player. **DESTRUCTIVE**.
> - Updated Commands:
> - `/is info (--get-location)` - added an arugment to get info for the island at your location.
> - `/is bank` & `/is experience` can now be run from the console.
> - sortType: `value`, `experience`
> - Default is `value`, `10`.
> - Gave `/is flight` an admin permission to fly anywhere.
### *Leveling*
> - Added new config options regarding leveling:
> - `enableLeveling`: Whether to give island levels.
> - `giveLevelRewards`: Whether to give level rewards.
> - `flatExpRequirement`: How much experience should go into a level.
> - `curvedExpModifier`: An exponential curve (set to 1 for linear).
> - Added new level checks on shop purchases, biome purchases, schematic purchases, and mission completion, and added `levelRequirementLore` to `shop.yml` and `biomes.yml` to indicate level requirements (`%minLevel%` will display the required level).
> - Added `islandCreationCost` to determine whether islands only require purchase on island regen.
### *Support*
> - Added **RoseStacker**, **WildStacker**, and **ObsidianStacker** support.
> - Added `spawnMultiplier` to `spawnerEnhancements` to multiply the number of entities spawned.
> - Fixed an issue where a player would place a spawner in 1.19+ and trigger an error.
> - Fixed an issue with updating spawners with spawn eggs.
### *Generators*
> - Added `generatorType` config options:
> - `VOID` (default)
> - `OCEAN`
> - `FLAT`
> - `VANILLA`
> - Added `generators.yml` config file
> - `biome`: what biome the world will generate (no more biome randomness!)
> - `canSpawnEntities`: Whether the world will spawn entities in it.
> - `floor`: Material for the floor to be made of.
> - `underfloor`: Material for the blocks under the floor to be made of.
> - `mantle`: Material for the rest of the world to be made of.
> - `liquidType`: Material for the water.
> - `liquidHeight`: What y-level to stop generating water at.
> - `minFloorHeight`: The lowest point for the ocean floor.
> - `maxFloorHeight`: The highest point for the ocean floor.
> - `decorate`: Whether to generate decorations (ores, pools, seaweed, etc.).
### *Technical*
> - Optimized placeholders by reducing overhead and cutting out unecessary sorting.
> - Optimized mission loading by loading them per player on player join.
> - Optimized NBT fetch to use newer methods introduced by NBTAPI.
> - Changed the PlayerMoveEventListener to only register on player coordinate change, which should improve performance (and fix flight detection).
> - Refactored **EssentialsSpawn** support and made it easier to add supported plugins in the future. Let us know what spawn plugins you want to see supported in #suggestions-skyblock!
> - In order for the terrain generators to work with island regen, a copy of each IridiumSkyblock world is saved in `IridiumSkyblock/regenWorlds` and they are loaded at runtime.
> - Configuration files are now less finicky, and will attempt to fix themselves before wiping.
> - Fixed an issue where an invalid configuration may result in a stack overflow error and disable the plugin.
### *Code*
> - Added `getIslandViaPlayer(Player)` API method.
> - Created `SupportManager` to manage supporting classes, which includes `StackerSupport`, `SpawnerSupport`, and `SpawnSupport` interfaces.
# Beta Information
## Known issues
> - The world generator does not load correctly on versions 1.13 - 1.16.5. This is because we use the `shouldGenerateDecorations()` method that was introduced in Spigot's 1.17 world generation API update. There are plans to address this.
> - `/is cleardata` will likely produce SQL errors - this does not appear to be an issue with the command itself, nor affect functionality.
### Since 4.1.0 BETA 4
> - 1.20.6 support
> - 1.21.4 support
> - `/is cleardata <table> (team) (--skip-confirm)` - allows administrators to clear specific data from the database without having to maually edit the tables (which can be dangerous). Has a confirmation dialogue that can and will be skipped when not run as a player. **DESTRUCTIVE**.
> - Updated shadow plugin to fork.
> - Updated XSeries methods.
> - Fixed placeholder rounding issues.
> - Added database locking (prevents race conditions).
> - Fixed swapped placeholders.
> - Fixed an issue where the plugin would incorrectly report an invalid generator type.
> - Fixed an issue where the plugin was not tracking Y movement.
> - Fixed an issue where the plugin was tracking Z more than X coordinate movement.
> - Configuration files are now less finicky, and will attempt to fix themselves before re-loading the default.
> - Fixed an issue where an invalid configuration may result in a stack overflow error and disable the plugin.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }