diff --git a/src/main/java/us/tastybento/bskyblock/api/commands/CompositeCommand.java b/src/main/java/us/tastybento/bskyblock/api/commands/CompositeCommand.java index 6148490ae..4ebe1676a 100644 --- a/src/main/java/us/tastybento/bskyblock/api/commands/CompositeCommand.java +++ b/src/main/java/us/tastybento/bskyblock/api/commands/CompositeCommand.java @@ -6,11 +6,13 @@ import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.logging.Logger; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.PluginIdentifiableCommand; @@ -271,16 +273,12 @@ public abstract class CompositeCommand extends Command implements PluginIdentifi * @return CompositeCommand or null if none found */ public Optional getSubCommand(String label) { - for (Map.Entry entry : subCommands.entrySet()) { - if (entry.getKey().equalsIgnoreCase(label)) { - return Optional.of(subCommands.get(label)); - } + if (subCommands.containsKey(label.toLowerCase())) { + return Optional.ofNullable(subCommands.get(label)); } // Try aliases - for (Map.Entry entry : subCommandAliases.entrySet()) { - if (entry.getKey().equalsIgnoreCase(label)) { - return Optional.of(subCommandAliases.get(label)); - } + if (subCommandAliases.containsKey(label.toLowerCase())) { + return Optional.ofNullable(subCommandAliases.get(label)); } return Optional.empty(); } diff --git a/src/main/java/us/tastybento/bskyblock/commands/IslandCommand.java b/src/main/java/us/tastybento/bskyblock/commands/IslandCommand.java index f9e84878e..56043406c 100755 --- a/src/main/java/us/tastybento/bskyblock/commands/IslandCommand.java +++ b/src/main/java/us/tastybento/bskyblock/commands/IslandCommand.java @@ -6,7 +6,14 @@ import java.util.List; import us.tastybento.bskyblock.Constants; import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.User; -import us.tastybento.bskyblock.commands.island.*; +import us.tastybento.bskyblock.commands.island.IslandAboutCommand; +import us.tastybento.bskyblock.commands.island.IslandCreateCommand; +import us.tastybento.bskyblock.commands.island.IslandGoCommand; +import us.tastybento.bskyblock.commands.island.IslandResetCommand; +import us.tastybento.bskyblock.commands.island.IslandResetnameCommand; +import us.tastybento.bskyblock.commands.island.IslandSethomeCommand; +import us.tastybento.bskyblock.commands.island.IslandSetnameCommand; +import us.tastybento.bskyblock.commands.island.IslandSettingsCommand; import us.tastybento.bskyblock.commands.island.teams.IslandTeamCommand; public class IslandCommand extends CompositeCommand { @@ -43,12 +50,14 @@ public class IslandCommand extends CompositeCommand { @Override public boolean execute(User user, List args) { // If this player does not have an island, create one + if (!getPlugin().getIslands().hasIsland(user.getUniqueId())) { - getSubCommand("create").ifPresent(createCmd -> execute(user, new ArrayList<>())); + getSubCommand("create").ifPresent(createCmd -> createCmd.execute(user, new ArrayList<>())); return true; } + // Otherwise, currently, just go home - getSubCommand("go").ifPresent(goCmd -> execute(user, new ArrayList<>())); + getSubCommand("go").ifPresent(goCmd -> goCmd.execute(user, new ArrayList<>())); return true; }