Search in sources :

Example 51 with User

use of com.iridium.iridiumskyblock.database.User in project IridiumSkyblock by Iridium-Development.

the class UserTableManager method getEntries.

/**
 * Gets all entries associated with an island
 *
 * @param island the specified island
 */
public List<User> getEntries(@NotNull Island island) {
    int index = Collections.binarySearch(userIslandIndex, new User(island), Comparator.comparing(user -> user.getIsland().map(Island::getId).orElse(0)));
    if (index < 0)
        return Collections.emptyList();
    int currentIndex = index - 1;
    List<User> result = new ArrayList<>();
    result.add(userIslandIndex.get(index));
    while (true) {
        if (currentIndex < 0)
            break;
        User user = userIslandIndex.get(currentIndex);
        if (island.equals(user.getIsland().orElse(null))) {
            result.add(userIslandIndex.get(currentIndex));
            currentIndex--;
        } else {
            break;
        }
    }
    currentIndex = index + 1;
    while (true) {
        if (currentIndex >= userIslandIndex.size())
            break;
        User user = userIslandIndex.get(currentIndex);
        if (island.equals(user.getIsland().orElse(null))) {
            result.add(userIslandIndex.get(currentIndex));
            currentIndex++;
        } else {
            break;
        }
    }
    return result;
}
Also used : SQLException(java.sql.SQLException) java.util(java.util) SortedList(com.iridium.iridiumcore.utils.SortedList) ConnectionSource(com.j256.ormlite.support.ConnectionSource) User(com.iridium.iridiumskyblock.database.User) Island(com.iridium.iridiumskyblock.database.Island) NotNull(org.jetbrains.annotations.NotNull) User(com.iridium.iridiumskyblock.database.User)

Example 52 with User

use of com.iridium.iridiumskyblock.database.User 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);
}
Also used : User(com.iridium.iridiumskyblock.database.User) IridiumSkyblockAPI(com.iridium.iridiumskyblock.api.IridiumSkyblockAPI) Island(com.iridium.iridiumskyblock.database.Island)

Example 53 with User

use of com.iridium.iridiumskyblock.database.User 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;
}
Also used : Player(org.bukkit.entity.Player) User(com.iridium.iridiumskyblock.database.User) Island(com.iridium.iridiumskyblock.database.Island) InventoryConfigGUI(com.iridium.iridiumskyblock.gui.InventoryConfigGUI)

Example 54 with User

use of com.iridium.iridiumskyblock.database.User in project IridiumSkyblock by Iridium-Development.

the class DeleteCommand method execute.

/**
 * Executes the command for the specified {@link CommandSender} with the provided arguments.
 * Not called when the command execution was invalid (no permission, no player or command disabled).
 * Deletes a User's Island.
 *
 * @param sender The CommandSender which executes this command
 * @param args   The arguments used with this command. They contain the sub-command
 */
@Override
public boolean execute(CommandSender sender, String[] args) {
    if (args.length == 2 && sender.hasPermission("iridiumskyblock.delete.other")) {
        Optional<Island> islandOptional = IridiumSkyblockAPI.getInstance().getUser(Bukkit.getOfflinePlayer(args[1])).getIsland();
        if (!islandOptional.isPresent()) {
            sender.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().userNoIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        } else {
            IridiumSkyblock.getInstance().getIslandManager().deleteIsland(islandOptional.get(), null);
            sender.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().otherIslandDeleted.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        }
        return false;
    }
    if (!(sender instanceof Player)) {
        sender.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().notAPlayer).replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix));
        return false;
    }
    Player player = (Player) sender;
    User user = IridiumSkyblock.getInstance().getUserManager().getUser(player);
    Optional<Island> island = user.getIsland();
    if (!island.isPresent()) {
        player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().noIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    if (!user.getIslandRank().equals(IslandRank.OWNER)) {
        player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotDeleteIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    player.openInventory(new ConfirmationGUI(() -> IridiumSkyblock.getInstance().getIslandManager().deleteIsland(island.get(), user), getCooldownProvider()).getInventory());
    // Always return false because the cooldown is set by the ConfirmationGUI
    return false;
}
Also used : Player(org.bukkit.entity.Player) User(com.iridium.iridiumskyblock.database.User) ConfirmationGUI(com.iridium.iridiumskyblock.gui.ConfirmationGUI) Island(com.iridium.iridiumskyblock.database.Island)

Example 55 with User

use of com.iridium.iridiumskyblock.database.User in project IridiumSkyblock by Iridium-Development.

the class DeleteWarpCommand method execute.

/**
 * Executes the command for the specified {@link CommandSender} with the provided arguments.
 * Not called when the command execution was invalid (no permission, no player or command disabled).
 * Shows an overview over the members of the Island and allows quick rank management.
 *
 * @param sender The CommandSender which executes this command
 * @param args   The arguments used with this command. They contain the sub-command
 */
@Override
public boolean execute(CommandSender sender, String[] args) {
    if (args.length != 2) {
        sender.sendMessage(StringUtils.color(syntax.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    Player player = (Player) sender;
    User user = IridiumSkyblock.getInstance().getUserManager().getUser(player);
    Optional<Island> island = user.getIsland();
    if (!island.isPresent()) {
        player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().noIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.MANAGE_WARPS)) {
        player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotManageWarps.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    List<IslandWarp> islandWarps = IridiumSkyblock.getInstance().getDatabaseManager().getIslandWarpTableManager().getEntries(island.get());
    Optional<IslandWarp> islandWarp = islandWarps.stream().filter(warp -> warp.getName().equalsIgnoreCase(args[1])).findFirst();
    if (!islandWarp.isPresent()) {
        player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().unknownWarp.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
        return false;
    }
    player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().deletingWarp.replace("%name%", islandWarp.get().getName()).replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
    IridiumSkyblock.getInstance().getDatabaseManager().getIslandWarpTableManager().delete(islandWarp.get());
    return true;
}
Also used : CommandSender(org.bukkit.command.CommandSender) Arrays(java.util.Arrays) User(com.iridium.iridiumskyblock.database.User) Island(com.iridium.iridiumskyblock.database.Island) Player(org.bukkit.entity.Player) Collectors(java.util.stream.Collectors) StringUtils(com.iridium.iridiumcore.utils.StringUtils) OfflinePlayer(org.bukkit.OfflinePlayer) IslandWarp(com.iridium.iridiumskyblock.database.IslandWarp) List(java.util.List) PermissionType(com.iridium.iridiumskyblock.PermissionType) Duration(java.time.Duration) Optional(java.util.Optional) Collections(java.util.Collections) IridiumSkyblock(com.iridium.iridiumskyblock.IridiumSkyblock) Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) User(com.iridium.iridiumskyblock.database.User) IslandWarp(com.iridium.iridiumskyblock.database.IslandWarp) Island(com.iridium.iridiumskyblock.database.Island)

Aggregations

User (com.iridium.iridiumskyblock.database.User)94 Island (com.iridium.iridiumskyblock.database.Island)73 Player (org.bukkit.entity.Player)66 OfflinePlayer (org.bukkit.OfflinePlayer)16 EventHandler (org.bukkit.event.EventHandler)16 IslandLog (com.iridium.iridiumskyblock.database.IslandLog)13 IridiumSkyblock (com.iridium.iridiumskyblock.IridiumSkyblock)12 List (java.util.List)12 Optional (java.util.Optional)11 Collectors (java.util.stream.Collectors)11 IslandBank (com.iridium.iridiumskyblock.database.IslandBank)10 Duration (java.time.Duration)10 StringUtils (com.iridium.iridiumcore.utils.StringUtils)9 Collections (java.util.Collections)9 CommandSender (org.bukkit.command.CommandSender)9 XMaterial (com.iridium.iridiumcore.dependencies.xseries.XMaterial)6 BankItem (com.iridium.iridiumskyblock.bank.BankItem)5 IslandBooster (com.iridium.iridiumskyblock.database.IslandBooster)5 IslandTrusted (com.iridium.iridiumskyblock.database.IslandTrusted)5 IslandWarp (com.iridium.iridiumskyblock.database.IslandWarp)5