// Path: src/main/java/com/endercrest/voidspawn/TeleportResult.java
// public enum TeleportResult {
//     SUCCESS("", false),
//     INVALID_WORLD("Invalid world", true),
//     MISSING_ISLAND_DEPEND("Missing skyblock plugin dependency", true),
//     MISSING_ISLAND("No island found", false),
//     INCOMPLETE_MODE("Mode has not been setup completely", true),
//     FAILED_COMMAND("Command failed", true),
//     MODE_DISABLED("The current mode is disabled!", true);
// 
//     private final String message;
//     private final boolean error;
// 
//     TeleportResult(String message, boolean error) {
//         this.message = message;
//         this.error = error;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public Boolean isError() {
//         return error;
//     }
// }
// 
// Path: src/main/java/com/endercrest/voidspawn/modes/status/Status.java
// public class Status {
//     private final Type type;
//     private final String message;
// 
//     public Status(Type type, String message) {
//         this.type = type;
//         this.message = message;
//     }
// 
//     public Type getType() {
//         return type;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public enum Type {
//         COMPLETE("[&a+&f]"),
//         INCOMPLETE("[&cx&f]"),
//         INFO("[&b@&f]"),
//         UNSET("[&7-&f]");
// 
//         private String symbol;
// 
//         Type(String symbol) {
//             this.symbol = symbol;
//         }
// 
//         public String getSymbol() {
//             return symbol;
//         }
//     }
// }


import com.endercrest.voidspawn.TeleportResult;
import com.endercrest.voidspawn.modes.status.Status;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.api.IslandInfo;
import us.talabrek.ultimateskyblock.api.uSkyBlockAPI;
package com.endercrest.voidspawn.modes.island;


public class USkyBlockIslandMode extends BaseIslandMode {
    private final uSkyBlockAPI usb;

    public USkyBlockIslandMode() {
        this.usb = (uSkyBlockAPI) Bukkit.getPluginManager().getPlugin("uSkyBlock");
    }

    @Override
    public TeleportResult onActivateIsland(Player player, String worldname) {
        IslandInfo info = usb.getIslandInfo(player);
        if (info.getWarpLocation() != null) {
            player.teleport(info.getWarpLocation());
            return TeleportResult.SUCCESS;
        }
        if (info.getIslandLocation() != null) {
            player.teleport(info.getIslandLocation());
            return TeleportResult.SUCCESS;
        }

        return TeleportResult.MISSING_ISLAND;
    }

    @Override
// Path: src/main/java/com/endercrest/voidspawn/TeleportResult.java
// public enum TeleportResult {
//     SUCCESS("", false),
//     INVALID_WORLD("Invalid world", true),
//     MISSING_ISLAND_DEPEND("Missing skyblock plugin dependency", true),
//     MISSING_ISLAND("No island found", false),
//     INCOMPLETE_MODE("Mode has not been setup completely", true),
//     FAILED_COMMAND("Command failed", true),
//     MODE_DISABLED("The current mode is disabled!", true);
// 
//     private final String message;
//     private final boolean error;
// 
//     TeleportResult(String message, boolean error) {
//         this.message = message;
//         this.error = error;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public Boolean isError() {
//         return error;
//     }
// }
// 
// Path: src/main/java/com/endercrest/voidspawn/modes/status/Status.java
// public class Status {
//     private final Type type;
//     private final String message;
// 
//     public Status(Type type, String message) {
//         this.type = type;
//         this.message = message;
//     }
// 
//     public Type getType() {
//         return type;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public enum Type {
//         COMPLETE("[&a+&f]"),
//         INCOMPLETE("[&cx&f]"),
//         INFO("[&b@&f]"),
//         UNSET("[&7-&f]");
// 
//         private String symbol;
// 
//         Type(String symbol) {
//             this.symbol = symbol;
//         }
// 
//         public String getSymbol() {
//             return symbol;
//         }
//     }
// }


// Path: src/main/java/com/endercrest/voidspawn/modes/island/USkyBlockIslandMode.java
import com.endercrest.voidspawn.TeleportResult;
import com.endercrest.voidspawn.modes.status.Status;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.api.IslandInfo;
import us.talabrek.ultimateskyblock.api.uSkyBlockAPI;

package com.endercrest.voidspawn.modes.island;


public class USkyBlockIslandMode extends BaseIslandMode {
    private final uSkyBlockAPI usb;

    public USkyBlockIslandMode() {
        this.usb = (uSkyBlockAPI) Bukkit.getPluginManager().getPlugin("uSkyBlock");
    }

    @Override
    public TeleportResult onActivateIsland(Player player, String worldname) {
        IslandInfo info = usb.getIslandInfo(player);
        if (info.getWarpLocation() != null) {
            player.teleport(info.getWarpLocation());
            return TeleportResult.SUCCESS;
        }
        if (info.getIslandLocation() != null) {
            player.teleport(info.getIslandLocation());
            return TeleportResult.SUCCESS;
        }

        return TeleportResult.MISSING_ISLAND;
    }

    @Override
    public Status[] getStatus(String worldName) {