use of com.iridium.iridiumskyblock.database.Island in project IridiumSkyblock by Iridium-Development.
the class IridiumSkyblock method onEnable.
/**
* Plugin startup logic.
*/
@Override
public void onEnable() {
super.onEnable();
// Convert old IridiumSkyblock data
DataConverter.copyLegacyData();
// Initialize the commands
this.commandManager = new CommandManager("iridiumskyblock");
// Initialize the manager classes (bad) and create the world
this.islandManager = new IslandManager();
this.userManager = new UserManager();
this.islandManager.createWorld(World.Environment.NORMAL, configuration.worldName);
this.islandManager.createWorld(World.Environment.NETHER, configuration.worldName + "_nether");
this.islandManager.createWorld(World.Environment.THE_END, configuration.worldName + "_the_end");
this.databaseManager = new DatabaseManager();
// Try to connect to the database
try {
databaseManager.init();
} catch (SQLException exception) {
// We don't want the plugin to start if the connection fails
exception.printStackTrace();
Bukkit.getPluginManager().disablePlugin(this);
return;
}
this.missionManager = new MissionManager();
this.shopManager = new ShopManager();
shopManager.reloadCategories();
this.schematicManager = new SchematicManager();
// Initialize Vault economy support
Bukkit.getScheduler().runTask(this, () -> this.economy = setupEconomy());
this.stackerSupport = registerBlockStackerSupport();
registerPlaceholderSupport();
// Send island border to all players
Bukkit.getOnlinePlayers().forEach(player -> getIslandManager().getIslandViaLocation(player.getLocation()).ifPresent(island -> PlayerUtils.sendBorder(player, island)));
// Auto recalculate islands
if (getConfiguration().islandRecalculateInterval > 0) {
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
ListIterator<Integer> islands = getDatabaseManager().getIslandTableManager().getEntries().stream().map(Island::getId).collect(Collectors.toList()).listIterator();
@Override
public void run() {
if (!islands.hasNext()) {
islands = getDatabaseManager().getIslandTableManager().getEntries().stream().map(Island::getId).collect(Collectors.toList()).listIterator();
} else {
getIslandManager().getIslandById(islands.next()).ifPresent(island -> getIslandManager().recalculateIsland(island));
}
}
}, 0, getConfiguration().islandRecalculateInterval * 20L);
}
// Automatically update all inventories
Bukkit.getScheduler().runTaskTimer(this, () -> Bukkit.getServer().getOnlinePlayers().forEach(player -> {
InventoryHolder inventoryHolder = player.getOpenInventory().getTopInventory().getHolder();
if (inventoryHolder instanceof GUI) {
((GUI) inventoryHolder).addContent(player.getOpenInventory().getTopInventory());
}
}), 0, 20);
// Register worlds with multiverse
if (Bukkit.getPluginManager().isPluginEnabled("Multiverse-Core")) {
Bukkit.getScheduler().runTaskLater(this, () -> {
registerMultiverse(islandManager.getWorld());
registerMultiverse(islandManager.getNetherWorld());
registerMultiverse(islandManager.getEndWorld());
}, 1);
}
resetIslandMissions();
if (!isTesting()) {
Metrics metrics = new Metrics(this, 5825);
metrics.addCustomChart(new SimplePie("database_type", () -> sql.driver.name()));
if (getConfiguration().enableCheckVersion) {
UpdateChecker.init(this, 62480).checkEveryXHours(24).setDownloadLink(62480).setColoredConsoleOutput(true).checkNow();
}
}
getLogger().info("----------------------------------------");
getLogger().info("");
getLogger().info(getDescription().getName() + " Enabled!");
getLogger().info("Version: " + getDescription().getVersion());
getLogger().info("");
getLogger().info("----------------------------------------");
}
use of com.iridium.iridiumskyblock.database.Island in project IridiumSkyblock by Iridium-Development.
the class PlaceholderBuilder method applyIslandPlaceholders.
public PlaceholderBuilder applyIslandPlaceholders(Island island) {
IslandUpgrade islandUpgrade = IridiumSkyblock.getInstance().getIslandManager().getIslandUpgrade(island, "member");
int memberLimit = IridiumSkyblock.getInstance().getUpgrades().memberUpgrade.upgrades.get(islandUpgrade.getLevel()).amount;
placeholderList.add(new Placeholder("island_name", island.getName()));
placeholderList.add(new Placeholder("island_owner", island.getOwner().getName()));
placeholderList.add(new Placeholder("island_value", IridiumSkyblock.getInstance().getNumberFormatter().format(island.getValue())));
placeholderList.add(new Placeholder("island_rank", IridiumSkyblock.getInstance().getNumberFormatter().format(island.getRank())));
placeholderList.add(new Placeholder("island_members", IridiumSkyblock.getInstance().getNumberFormatter().format(island.getMembers().size())));
placeholderList.add(new Placeholder("island_members_limit", IridiumSkyblock.getInstance().getNumberFormatter().format(memberLimit)));
placeholderList.add(new Placeholder("island_level", IridiumSkyblock.getInstance().getNumberFormatter().format(island.getLevel())));
placeholderList.add(new Placeholder("island_create", island.getCreateTime().format(DateTimeFormatter.ofPattern(IridiumSkyblock.getInstance().getConfiguration().dateTimeFormat))));
IridiumSkyblock.getInstance().getBlockValues().blockValues.keySet().stream().map(material -> new Placeholder(material.name() + "_AMOUNT", IridiumSkyblock.getInstance().getNumberFormatter().format(IridiumSkyblock.getInstance().getIslandManager().getIslandBlockAmount(island, material)))).forEach(placeholderList::add);
return this;
}
use of com.iridium.iridiumskyblock.database.Island in project CombatLogX by SirBlobman.
the class ListenerIridiumSkyblock method doesTeamMatch.
private boolean doesTeamMatch(Player player1, Player player2) {
UUID uuid1 = player1.getUniqueId();
UUID uuid2 = player2.getUniqueId();
if (uuid1.equals(uuid2))
return true;
Island island1 = getIsland(player1);
if (island1 == null)
return false;
Island island2 = getIsland(player2);
if (island2 == null)
return false;
int islandId1 = island1.getId();
int islandId2 = island2.getId();
return (islandId1 == islandId2);
}
use of com.iridium.iridiumskyblock.database.Island in project CombatLogX by SirBlobman.
the class ListenerIridiumSkyblock method getIsland.
private Island getIsland(Player player) {
if (player == null)
return null;
IridiumSkyblockAPI api = IridiumSkyblockAPI.getInstance();
User user = api.getUser(player);
Optional<Island> optionalIsland = user.getIsland();
return optionalIsland.orElse(null);
}
use of com.iridium.iridiumskyblock.database.Island in project IridiumSkyblock by Iridium-Development.
the class CommandManager method onCommand.
/**
* Method which handles command execution for all sub-commands.
* Automatically checks if a User can execute the command.
* All parameters are provided by Bukkit.
*
* @param commandSender The sender which executes this command
* @param cmd The Bukkit {@link org.bukkit.command.Command} representation
* @param label The label of this command. Not used.
* @param args The arguments of this command
* @return true if this command was executed successfully
*/
@Override
public boolean onCommand(@NotNull CommandSender commandSender, org.bukkit.command.@NotNull Command cmd, @NotNull String label, String[] args) {
if (args.length == 0) {
if (commandSender instanceof Player) {
Player player = (Player) commandSender;
User user = IridiumSkyblock.getInstance().getUserManager().getUser(player);
Optional<Island> island = user.getIsland();
if (island.isPresent()) {
if (IridiumSkyblock.getInstance().getConfiguration().islandMenu) {
player.openInventory(new InventoryConfigGUI(IridiumSkyblock.getInstance().getInventories().islandMenu, player.getOpenInventory().getTopInventory()).getInventory());
} else {
IridiumSkyblock.getInstance().getCommands().helpCommand.execute(player, new String[] {});
}
} else {
IridiumSkyblock.getInstance().getCommands().createCommand.execute(player, new String[] {});
}
} else {
IridiumSkyblock.getInstance().getCommands().helpCommand.execute(commandSender, new String[] {});
}
return true;
}
for (Command command : commands) {
// We don't want to execute other commands or ones that are disabled
if (!(command.aliases.contains(args[0]))) {
continue;
}
Command executingCommand = findExecutingCommand(command, args);
if (executionBlocked(executingCommand, commandSender)) {
return false;
}
boolean success = executingCommand.execute(commandSender, args);
if (success)
executingCommand.getCooldownProvider().applyCooldown(commandSender);
return true;
}
// Unknown command message
commandSender.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().unknownCommand.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return false;
}
Aggregations