Documentation Index
Fetch the complete documentation index at: https://mintlify.com/BG-Software-LLC/SuperiorSkyblock2/llms.txt
Use this file to discover all available pages before exploring further.
Accessing the API
The main entry point for the API is the SuperiorSkyblockAPI class. All methods are static, making it easy to access from anywhere:
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblock;
// Get the plugin instance
SuperiorSkyblock plugin = SuperiorSkyblockAPI.getSuperiorSkyblock();
// Check API version
int apiVersion = SuperiorSkyblockAPI.getAPIVersion();
Working with Players
The API provides a SuperiorPlayer wrapper that extends Bukkit’s Player with island-specific functionality:
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.entity.Player;
import java.util.UUID;
// From Bukkit Player
Player bukkitPlayer = ...; // Your Bukkit player
SuperiorPlayer superiorPlayer = SuperiorSkyblockAPI.getPlayer(bukkitPlayer);
// From UUID
UUID playerUUID = ...; // Player's UUID
SuperiorPlayer superiorPlayer = SuperiorSkyblockAPI.getPlayer(playerUUID);
// From name
String playerName = "Steve";
SuperiorPlayer superiorPlayer = SuperiorSkyblockAPI.getPlayer(playerName);
Working with Islands
Get Islands
Retrieve islands by various methods
Modify Islands
Create, delete, or update island properties
Query Islands
Find islands by location or criteria
Getting Islands
import com.bgsoftware.superiorskyblock.api.island.Island;
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import org.bukkit.Location;
import java.util.UUID;
// Get island by name
Island island = SuperiorSkyblockAPI.getIsland("MyIsland");
// Get island by UUID
UUID islandUUID = ...; // Island's UUID
Island island = SuperiorSkyblockAPI.getIslandByUUID(islandUUID);
// Get island at location
Location location = new Location(world, x, y, z);
Island island = SuperiorSkyblockAPI.getIslandAt(location);
// Get spawn island
Island spawnIsland = SuperiorSkyblockAPI.getSpawnIsland();
Creating Islands
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.block.Biome;
import java.math.BigDecimal;
SuperiorPlayer owner = SuperiorSkyblockAPI.getPlayer(player);
String schematicName = "default"; // Schematic to use
BigDecimal bonusWorth = BigDecimal.ZERO; // Starting bonus worth
BigDecimal bonusLevel = BigDecimal.ZERO; // Starting bonus level
Biome biome = Biome.PLAINS; // Starting biome
String islandName = "MyIsland"; // Island name
boolean offset = true; // Use offset for values
// Create the island
SuperiorSkyblockAPI.createIsland(
owner,
schematicName,
bonusWorth,
bonusLevel,
biome,
islandName,
offset
);
Island creation is asynchronous. Use events to detect when the island is fully created.
Deleting Islands
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.island.Island;
Island island = SuperiorSkyblockAPI.getIsland("MyIsland");
if (island != null) {
SuperiorSkyblockAPI.deleteIsland(island);
}
Using Managers
The API provides specialized managers for different features. Access them through the main API:
import com.bgsoftware.superiorskyblock.api.handlers.*;
// Grid Manager - Island grid operations
GridManager gridManager = SuperiorSkyblockAPI.getGrid();
// Players Manager - Player operations
PlayersManager playersManager = SuperiorSkyblockAPI.getPlayers();
// Schematics Manager - Schematic operations
SchematicManager schematicManager = SuperiorSkyblockAPI.getSchematics();
// Block Values Manager - Worth calculations
BlockValuesManager blockValues = SuperiorSkyblockAPI.getBlockValues();
// Upgrades Manager - Island upgrades
UpgradesManager upgradesManager = SuperiorSkyblockAPI.getUpgrades();
// Missions Manager - Mission system
MissionsManager missionsManager = SuperiorSkyblockAPI.getMissions();
// Commands Manager - Register custom commands
CommandsManager commandsManager = SuperiorSkyblockAPI.getCommands();
// Settings Manager - Plugin configuration
SettingsManager settingsManager = SuperiorSkyblockAPI.getSettings();
Example: Island Info Command
Here’s a complete example that combines multiple API features:
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.island.Island;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class IslandInfoCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command,
String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players can use this command!");
return true;
}
Player player = (Player) sender;
SuperiorPlayer superiorPlayer = SuperiorSkyblockAPI.getPlayer(player);
Island island = superiorPlayer.getIsland();
if (island == null) {
player.sendMessage("You don't have an island!");
return true;
}
// Get island information
String name = island.getName();
SuperiorPlayer owner = island.getOwner();
int members = island.getIslandMembers(true).size();
BigDecimal level = island.getIslandLevel();
BigDecimal worth = island.getWorth();
// Send formatted information
player.sendMessage("===== Island Info =====");
player.sendMessage("Name: " + name);
player.sendMessage("Owner: " + owner.getName());
player.sendMessage("Members: " + members);
player.sendMessage("Level: " + level.toString());
player.sendMessage("Worth: $" + worth.toString());
return true;
}
}
Next Steps
Now that you understand the basics:
- Explore specific manager documentation for advanced features
- Check out the API events system for reacting to island changes
- Review the JavaDocs in the source code for detailed method documentation
- Join the Discord for support and examples