Skip to content

Commit

Permalink
Replace Guava Iterables (#158)
Browse files Browse the repository at this point in the history
Goes under #120

After this, only MultiMaps remain.
  • Loading branch information
mikroskeem authored and aikar committed Aug 3, 2018
1 parent 8fda944 commit 65ff5a5
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
3 changes: 1 addition & 2 deletions bukkit/src/main/java/co/aikar/commands/ACFBukkitUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

package co.aikar.commands;

import com.google.common.collect.Iterables;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
Expand Down Expand Up @@ -281,7 +280,7 @@ public static Player findPlayerSmart(CommandIssuer issuer, String search) {
"{search}", name);
return null;
} else {
Player player = Iterables.getOnlyElement(confirmList);
Player player = ACFUtil.getFirstElement(confirmList);
issuer.sendInfo(MinecraftMessageKeys.PLAYER_IS_VANISHED_CONFIRM, "{vanished}", player.getName());
return null;
}
Expand Down
11 changes: 11 additions & 0 deletions core/src/main/java/co/aikar/commands/ACFUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.function.Consumer;
Expand Down Expand Up @@ -588,6 +589,16 @@ public static <T> List<T> preformOnImmutable(List<T> list, Consumer<List<T>> act
return list;
}

public static <T> T getFirstElement(Iterable<T> iterable) {
Iterator<T> iterator = iterable.iterator();
T first = iterator.next();
if (!iterator.hasNext()) {
return first;
}

throw new IllegalArgumentException("Expected one element in iterable");
}

private static class ApplyModifierToNumber {
private String num;
private boolean suffixes;
Expand Down
7 changes: 3 additions & 4 deletions core/src/main/java/co/aikar/commands/BaseCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import co.aikar.commands.annotation.UnknownHandler;
import co.aikar.commands.apachecommonslang.ApacheCommonsLangUtil;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Iterables;
import com.google.common.collect.SetMultimap;
import org.jetbrains.annotations.Nullable;

Expand Down Expand Up @@ -614,7 +613,7 @@ private CommandSearch findSubCommand(String[] args, boolean completion) {
if (!cmds.isEmpty()) {
RegisteredCommand cmd = null;
if (cmds.size() == 1) {
cmd = Iterables.getOnlyElement(cmds);
cmd = ACFUtil.getFirstElement(cmds);
} else {
Optional<RegisteredCommand> optCmd = cmds.stream().filter(c -> {
int required = c.requiredResolvers;
Expand Down Expand Up @@ -718,9 +717,9 @@ public List<String> tabComplete(CommandIssuer issuer, String commandLabel, Strin
if (search != null) {
cmds.addAll(completeCommand(issuer, search.cmd, Arrays.copyOfRange(args, search.argIndex, args.length), commandLabel, isAsync));
} else if (subCommands.get(CATCHUNKNOWN).size() == 1) {
cmds.addAll(completeCommand(issuer, Iterables.getOnlyElement(subCommands.get(CATCHUNKNOWN)), args, commandLabel, isAsync));
cmds.addAll(completeCommand(issuer, ACFUtil.getFirstElement(subCommands.get(CATCHUNKNOWN)), args, commandLabel, isAsync));
} else if (subCommands.get(DEFAULT).size() == 1) {
cmds.addAll(completeCommand(issuer, Iterables.getOnlyElement(subCommands.get(DEFAULT)), args, commandLabel, isAsync));
cmds.addAll(completeCommand(issuer, ACFUtil.getFirstElement(subCommands.get(DEFAULT)), args, commandLabel, isAsync));
}

return filterTabComplete(args[args.length - 1], cmds);
Expand Down
3 changes: 1 addition & 2 deletions sponge/src/main/java/co/aikar/commands/ACFSpongeUtil.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package co.aikar.commands;

import com.google.common.collect.Iterables;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandSource;
import org.spongepowered.api.entity.living.player.Player;
Expand Down Expand Up @@ -45,7 +44,7 @@ public static Player findPlayerSmart(CommandIssuer issuer, String search) {
"{search}", name);
return null;
} else {
Player player = Iterables.getOnlyElement(confirmList);
Player player = ACFUtil.getFirstElement(confirmList);
issuer.sendInfo(MinecraftMessageKeys.PLAYER_IS_VANISHED_CONFIRM, "{vanished}", player.getName());
return null;
}
Expand Down

0 comments on commit 65ff5a5

Please sign in to comment.