diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2024-02-17 00:12:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-16 23:12:40 +0100 |
commit | 985a6c94cae0cb895a09ef06c85ec7759132a06c (patch) | |
tree | 34beeec33a7dbe00c6791e214eec3ebb0f5ee003 /src/main/java/gregtech/common/misc/spaceprojects/commands | |
parent | d827dad0a671b79b1c42915b23d365398fd63733 (diff) | |
download | GT5-Unofficial-985a6c94cae0cb895a09ef06c85ec7759132a06c.tar.gz GT5-Unofficial-985a6c94cae0cb895a09ef06c85ec7759132a06c.tar.bz2 GT5-Unofficial-985a6c94cae0cb895a09ef06c85ec7759132a06c.zip |
Change over wireless teams to use SP teams (#2493)
* Change over wireless teams to use SP teams
* spotless
* null checks
* fix unit test being wrong
* update
* add tab autocomplete
* spotless
* make sure teams are transfered over correctly
* spotless
* do not delete space teams data when two world saves put something into it
* spotless
* go away from a stream
* make wireless networks load later
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/common/misc/spaceprojects/commands')
-rw-r--r-- | src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java b/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java index c1d965fb22..3c4ad00932 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/commands/SP_Command.java @@ -1,12 +1,18 @@ package gregtech.common.misc.spaceprojects.commands; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; +import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.WeakHashMap; +import java.util.stream.Collectors; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.server.MinecraftServer; import net.minecraft.util.EnumChatFormatting; import org.apache.commons.lang3.tuple.Pair; @@ -113,4 +119,48 @@ public class SP_Command extends CommandBase { } } + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] arguments) { + List<String> autoComplete = new ArrayList<>(); + String filter = arguments.length == 0 ? "" : arguments[0].trim(); + switch (arguments.length) { + case 1 -> autoComplete.addAll(Arrays.asList(getSubCommands())); + case 2 -> { + filter = arguments[1].trim(); + if (arguments[0].equals(INVITE)) { + autoComplete.addAll(Arrays.asList(getPlayers())); + break; + } + + if (arguments[0].equals(CONFIRM)) { + Optional<Pair<EntityPlayerMP, EntityPlayerMP>> pairOpt = invite.stream() + .filter( + (e) -> e.getKey() + .getUniqueID() == getCommandSenderAsPlayer(sender).getUniqueID()) + .findFirst(); + if (pairOpt.isPresent()) { + autoComplete.add( + SpaceProjectManager.getPlayerNameFromUUID( + pairOpt.get() + .getRight() + .getUniqueID())); + } + } + } + } + String finalFilter = filter; + return autoComplete.stream() + .filter(s -> finalFilter.isEmpty() || s.startsWith(finalFilter)) + .collect(Collectors.toList()); + } + + private String[] getPlayers() { + return MinecraftServer.getServer() + .getAllUsernames(); + } + + private String[] getSubCommands() { + return new String[] { INVITE, ACCEPT, LEAVE, CONFIRM }; + } + } |