diff --git a/build.gradle b/build.gradle index 1b4c4d8..c89ac02 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ allprojects { apply plugin: 'maven-publish' group = 'com.mysteryworlds.crucio' - version = '1.0.2' + version = '1.0.3' sourceCompatibility = '11' targetCompatibility = '11' diff --git a/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameMode.java b/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameMode.java index 7f2c531..6e6a9a0 100644 --- a/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameMode.java +++ b/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameMode.java @@ -15,7 +15,7 @@ public enum GameMode { CREATIVE( org.bukkit.GameMode.CREATIVE, org.bukkit.GameMode.SURVIVAL, - List.of("adventure", "1") + List.of("creative", "1") ), ADVENTURE( org.bukkit.GameMode.ADVENTURE, diff --git a/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameModeCommand.java b/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameModeCommand.java index 4dc7bc0..c753644 100644 --- a/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameModeCommand.java +++ b/crucio-bukkit/src/main/java/com/mysteryworlds/crucio/gamemode/GameModeCommand.java @@ -1,14 +1,18 @@ package com.mysteryworlds.crucio.gamemode; import com.mysteryworlds.crucio.i18n.I18n; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.inject.Inject; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; +import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; +import org.bukkit.util.StringUtil; public final class GameModeCommand implements CommandExecutor, TabCompleter { private final I18n i18n; @@ -74,9 +78,10 @@ private boolean changeGameMode( } private boolean changeGameModeOther( - Command command, CommandSender sender, - String targetName, - String gameMode + Command command, + CommandSender sender, + String gameMode, + String targetName ) { if (!sender.hasPermission("crucio.command.gamemode.other")) { sender.sendMessage(command.getPermissionMessage()); @@ -89,6 +94,7 @@ private boolean changeGameModeOther( } var mode = GameMode.fromString(gameMode); mode.apply(player); + sender.sendMessage(i18n.translatePrefixedMessage("command-gamemode-changed-other", targetName, mode.name())); return true; } @@ -99,6 +105,26 @@ public List onTabComplete( String alias, String[] args ) { - return null; + switch (args.length) { + case 1: { + return StringUtil.copyPartialMatches( + args[0], + List.copyOf(GameMode.gameModeAliases()), + new ArrayList<>() + ); + } + case 2: { + var playerNames = Bukkit.getOnlinePlayers().stream() + .map(HumanEntity::getName) + .collect(Collectors.toUnmodifiableList()); + return StringUtil.copyPartialMatches( + args[1], + List.copyOf(playerNames), + new ArrayList<>() + ); + } + default: + return List.of(); + } } }