use of com.iridium.iridiumskyblock.api.IslandCreateEvent in project IridiumSkyblock by Iridium-Development.
the class CreateCommand method createIsland.
/**
* Creates an island for a specific Player and then teleports them to the island home.
*
* @param player The owner of the island
* @param name The name of the island
* @param schematicConfig The schematic of the island
* @return True if the island has been created successfully
*/
private boolean createIsland(Player player, String name, Schematics.SchematicConfig schematicConfig) {
User user = IridiumSkyblock.getInstance().getUserManager().getUser(player);
if (user.getIsland().isPresent()) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().alreadyHaveIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return false;
}
if (name != null && IridiumSkyblock.getInstance().getIslandManager().getIslandByName(name).isPresent()) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().islandWithNameAlreadyExists.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return false;
}
IslandCreateEvent islandCreateEvent = new IslandCreateEvent(user, name, schematicConfig);
Bukkit.getPluginManager().callEvent(islandCreateEvent);
if (islandCreateEvent.isCancelled())
return false;
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().creatingIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
IridiumSkyblock.getInstance().getIslandManager().createIsland(player, islandCreateEvent.getIslandName(), islandCreateEvent.getSchematicConfig()).thenAccept(island -> Bukkit.getScheduler().runTask(IridiumSkyblock.getInstance(), () -> {
IridiumSkyblock.getInstance().getIslandManager().teleportHome(player, island, 0);
IridiumSkyblock.getInstance().getNms().sendTitle(player, IridiumSkyblock.getInstance().getConfiguration().islandCreateTitle, IridiumSkyblock.getInstance().getConfiguration().islandCreateSubTitle, 20, 40, 20);
}));
return true;
}
Aggregations