1.7.0 beta 4
This commit is contained in:
parent
37b3840ca1
commit
0f1d49ba80
30 changed files with 255 additions and 136 deletions
|
@ -212,6 +212,8 @@ public class Main extends JavaPlugin implements Listener {
|
||||||
|
|
||||||
public EntityHider getEntityHider() { return entityHider; }
|
public EntityHider getEntityHider() { return entityHider; }
|
||||||
|
|
||||||
|
public CommandGroup getCommandGroup() { return commandGroup; }
|
||||||
|
|
||||||
public boolean supports(int v){
|
public boolean supports(int v){
|
||||||
return version >= v;
|
return version >= v;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,22 +19,72 @@
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package net.tylermurphy.hideAndSeek.command;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.tylermurphy.hideAndSeek.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.Command;
|
import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.CommandGroup;
|
import net.tylermurphy.hideAndSeek.util.Pair;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
||||||
|
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
||||||
|
|
||||||
public class Help extends Command {
|
public class Help extends Command {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
// StringBuilder message = new StringBuilder();
|
final int pageSize = 4;
|
||||||
// for(Command command : CommandGroup.COMMAND_REGISTER.values()) {
|
List<Pair<String, Command>> commands = Main.getInstance().getCommandGroup().getCommands();
|
||||||
// message.append(String.format("%s/hs %s%s %s%s\n %s%s%s", ChatColor.AQUA, ChatColor.WHITE, command.getLabel().toLowerCase(), ChatColor.BLUE, command.getUsage(), ChatColor.GRAY, ChatColor.ITALIC, command.getDescription() + "\n"));
|
int pages = (commands.size() - 1) / pageSize + 1;
|
||||||
// }
|
int page;
|
||||||
// message = new StringBuilder(message.substring(0, message.length() - 1));
|
try {
|
||||||
// sender.sendMessage(message.toString());
|
if(args.length < 1) {
|
||||||
|
page = 1;
|
||||||
|
} else {
|
||||||
|
page = Integer.parseInt(args[0]);
|
||||||
|
if (page < 1) {
|
||||||
|
throw new IllegalArgumentException("Inavlid Input");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[0]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String spacer = ChatColor.GRAY + "?" + ChatColor.WHITE;
|
||||||
|
StringBuilder message = new StringBuilder();
|
||||||
|
message.append(String.format("%s================ %sHelp: Page (%s/%s) %s================",
|
||||||
|
ChatColor.AQUA, ChatColor.WHITE, page, pages, ChatColor.AQUA));
|
||||||
|
int lines = 0;
|
||||||
|
for(Pair<String, Command> pair : commands.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList())) {
|
||||||
|
Command command = pair.getRight();
|
||||||
|
String label = pair.getLeft();
|
||||||
|
String start = label.substring(0, label.indexOf(" "));
|
||||||
|
String invoke = label.substring(label.indexOf(" ")+1);
|
||||||
|
message.append(String.format("\n%s %s/%s %s%s %s%s\n%s %s%s%s",
|
||||||
|
spacer,
|
||||||
|
ChatColor.AQUA,
|
||||||
|
start,
|
||||||
|
ChatColor.WHITE,
|
||||||
|
invoke,
|
||||||
|
ChatColor.BLUE,
|
||||||
|
command.getUsage(),
|
||||||
|
spacer,
|
||||||
|
ChatColor.GRAY,
|
||||||
|
ChatColor.ITALIC,
|
||||||
|
command.getDescription()
|
||||||
|
));
|
||||||
|
lines += 2;
|
||||||
|
}
|
||||||
|
if(lines / 2 < pageSize) {
|
||||||
|
for(int i = 0; i < pageSize * 2 - lines; i++) {
|
||||||
|
message.append("\n").append(spacer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
message.append("\n").append(ChatColor.AQUA).append("===============================================");
|
||||||
|
sender.sendMessage(message.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
|
@ -42,15 +92,15 @@ public class Help extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUsage() {
|
public String getUsage() {
|
||||||
return "";
|
return "<*page>";
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Get the commands for the plugin";
|
return "Get the commands for the plugin";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return Collections.singletonList(parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ import net.tylermurphy.hideAndSeek.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.Command;
|
import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ public class Join extends Command {
|
||||||
return "Joins the lobby if game is set to manual join/leave";
|
return "Joins the lobby if game is set to manual join/leave";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import net.tylermurphy.hideAndSeek.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.Command;
|
import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -60,7 +61,7 @@ public class Leave extends Command {
|
||||||
return "Leaves the lobby if game is set to manual join/leave";
|
return "Leaves the lobby if game is set to manual join/leave";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.*;
|
import net.tylermurphy.hideAndSeek.configuration.*;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -66,7 +67,7 @@ public class Reload extends Command {
|
||||||
return "Reloads the config";
|
return "Reloads the config";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -57,8 +58,8 @@ public class Send extends Command {
|
||||||
return "Set the current lobby to another map";
|
return "Set the current lobby to another map";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().filter(map -> !map.isNotSetup()).map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().filter(map -> !map.isNotSetup()).map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -51,10 +52,10 @@ public class SetExitLocation extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Sets hide and seeks exit location to current position and world";
|
return "Sets the plugins exit location";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -89,8 +90,8 @@ public class Start extends Command {
|
||||||
return "Starts the game either with a random seeker or chosen one";
|
return "Starts the game either with a random seeker or chosen one";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("player")) {
|
if(parameter.equals("player")) {
|
||||||
return Main.getInstance().getBoard().getPlayers().stream().map(Player::getName).collect(Collectors.toList());
|
return Main.getInstance().getBoard().getPlayers().stream().map(Player::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import net.tylermurphy.hideAndSeek.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.Command;
|
import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -57,7 +58,7 @@ public class Stop extends Command {
|
||||||
return "Stops the game";
|
return "Stops the game";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -83,7 +84,7 @@ public class Top extends Command {
|
||||||
return "Gets the top players in the server.";
|
return "Gets the top players in the server.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return Collections.singletonList(parameter);
|
return Collections.singletonList(parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -80,7 +81,7 @@ public class Wins extends Command {
|
||||||
return "Get the win information for yourself or another player.";
|
return "Get the win information for yourself or another player.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return Collections.singletonList(parameter);
|
return Collections.singletonList(parameter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -44,8 +45,8 @@ public class Add extends Command {
|
||||||
return "Add a map to the plugin!";
|
return "Add a map to the plugin!";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("name")) {
|
if(parameter.equals("name")) {
|
||||||
return Collections.singletonList("name");
|
return Collections.singletonList("name");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -38,7 +39,7 @@ public class Debug extends Command {
|
||||||
|
|
||||||
private Inventory createMenu(net.tylermurphy.hideAndSeek.configuration.Map map, Player sender){
|
private Inventory createMenu(net.tylermurphy.hideAndSeek.configuration.Map map, Player sender){
|
||||||
Map<Integer, Consumer<Player>> functions = new HashMap<>();
|
Map<Integer, Consumer<Player>> functions = new HashMap<>();
|
||||||
Inventory debugMenu = Main.getInstance().getServer().createInventory(null, 18, "Debug Menu");
|
Inventory debugMenu = Main.getInstance().getServer().createInventory(null, 9, "Debug Menu");
|
||||||
debugMenu.setItem(0, createOption(functions, 0, XMaterial.LEATHER_CHESTPLATE.parseMaterial(), "&6Become a &lHider", 1, player -> {
|
debugMenu.setItem(0, createOption(functions, 0, XMaterial.LEATHER_CHESTPLATE.parseMaterial(), "&6Become a &lHider", 1, player -> {
|
||||||
if(mapSaveEnabled) {
|
if(mapSaveEnabled) {
|
||||||
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
||||||
|
@ -75,10 +76,10 @@ public class Debug extends Command {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
if(map.isBlockHuntEnabled()) {
|
if(map.isBlockHuntEnabled()) {
|
||||||
debugMenu.setItem(9, createOption(functions, 7, XMaterial.GLASS.parseMaterial(), "&dEnable Disguise", 1, player -> {
|
debugMenu.setItem(7, createOption(functions, 7, XMaterial.GLASS.parseMaterial(), "&dEnable Disguise", 1, player -> {
|
||||||
PlayerLoader.openBlockHuntPicker(player, map);
|
PlayerLoader.openBlockHuntPicker(player, map);
|
||||||
}));
|
}));
|
||||||
debugMenu.setItem(10, createOption(functions, 8, XMaterial.PLAYER_HEAD.parseMaterial(), "&dDisable Disguise", 1, player -> Main.getInstance().getDisguiser().reveal(player)));
|
debugMenu.setItem(8, createOption(functions, 8, XMaterial.PLAYER_HEAD.parseMaterial(), "&dDisable Disguise", 1, player -> Main.getInstance().getDisguiser().reveal(player)));
|
||||||
}
|
}
|
||||||
debugMenuFunctions.put(sender, functions);
|
debugMenuFunctions.put(sender, functions);
|
||||||
return debugMenu;
|
return debugMenu;
|
||||||
|
@ -112,8 +113,8 @@ public class Debug extends Command {
|
||||||
return "Run debug commands";
|
return "Run debug commands";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -48,13 +49,13 @@ public class GoTo extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Get the commands for the plugin";
|
return "Teleport to a map spawn zone";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter != null && parameter.equals("spawn")) {
|
} else if(parameter.equals("spawn")) {
|
||||||
return Arrays.asList("spawn","lobby","seekerlobby","exit");
|
return Arrays.asList("spawn","lobby","seekerlobby","exit");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
@ -39,7 +40,7 @@ public class List extends Command {
|
||||||
return "List all maps in the plugin";
|
return "List all maps in the plugin";
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.List<String> autoComplete(String parameter) {
|
public java.util.List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -43,8 +44,8 @@ public class Remove extends Command {
|
||||||
return "Remove a map from the plugin!";
|
return "Remove a map from the plugin!";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -27,6 +27,7 @@ import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -89,11 +90,11 @@ public class Save extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Saves current map for the game. May lag server.";
|
return "Saves the map to its own separate playable map";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import net.tylermurphy.hideAndSeek.command.util.Command;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -84,11 +85,11 @@ public class Status extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Shows what needs to be setup";
|
return "Shows what needs to be setup on a map";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -47,11 +48,11 @@ public class Enabled extends Command {
|
||||||
return "Sets blockhunt enabled or disabled in a current map";
|
return "Sets blockhunt enabled or disabled in a current map";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
if(parameter != null && parameter.equals("bool")) {
|
if(parameter.equals("bool")) {
|
||||||
return Arrays.asList("true", "false");
|
return Arrays.asList("true", "false");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -56,11 +57,15 @@ public class Add extends Command {
|
||||||
return "Add a blockhunt block to a map!";
|
return "Add a blockhunt block to a map!";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter != null && parameter.equals("block")) {
|
} else if(parameter.equals("block")) {
|
||||||
return Arrays.stream(Material.values()).filter(Material::isBlock).map(Material::toString).collect(Collectors.toList());
|
return Arrays.stream(Material.values())
|
||||||
|
.filter(Material::isBlock)
|
||||||
|
.map(Material::toString)
|
||||||
|
.filter(s -> s.toUpperCase().startsWith(typed.toUpperCase()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -45,8 +46,8 @@ public class List extends Command {
|
||||||
return "List all blockhunt blocks in a map";
|
return "List all blockhunt blocks in a map";
|
||||||
}
|
}
|
||||||
|
|
||||||
public java.util.List<String> autoComplete(String parameter) {
|
public java.util.List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -56,11 +57,15 @@ public class Remove extends Command {
|
||||||
return "Remove a blockhunt block from a map!";
|
return "Remove a blockhunt block from a map!";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter != null && parameter.equals("block")) {
|
} else if(parameter.equals("block")) {
|
||||||
return Arrays.stream(Material.values()).filter(Material::isBlock).map(Material::toString).collect(Collectors.toList());
|
return Arrays.stream(Material.values())
|
||||||
|
.filter(Material::isBlock)
|
||||||
|
.map(Material::toString)
|
||||||
|
.filter(s -> s.toUpperCase().startsWith(typed.toUpperCase()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -99,11 +100,11 @@ public class Border extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Sets worldboarder's center location, size in blocks, and delay in minutes per shrink. Add no arguments to disable.";
|
return "Sets a maps world border information";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return Collections.singletonList(parameter);
|
return Collections.singletonList(parameter);
|
||||||
|
|
|
@ -25,6 +25,7 @@ import net.tylermurphy.hideAndSeek.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import net.tylermurphy.hideAndSeek.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -102,8 +103,8 @@ public class Bounds extends Command {
|
||||||
return "Sets the map bounds for the game.";
|
return "Sets the map bounds for the game.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -45,11 +46,11 @@ public class Lobby extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Sets hide and seeks lobby location to current position";
|
return "Sets the maps lobby location";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -34,11 +35,11 @@ public class SeekerLobby extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Sets hide and seeks seeker lobby location to current position";
|
return "Sets the maps seeker lobby location";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -26,6 +26,7 @@ import net.tylermurphy.hideAndSeek.configuration.Maps;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -66,11 +67,11 @@ public class Spawn extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Sets hide and seeks spawn location to current position";
|
return "Sets the maps game spawn location";
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> autoComplete(String parameter) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter != null && parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.util;
|
package net.tylermurphy.hideAndSeek.command.util;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -34,10 +34,6 @@ public abstract class Command {
|
||||||
|
|
||||||
public abstract String getDescription();
|
public abstract String getDescription();
|
||||||
|
|
||||||
public abstract List<String> autoComplete(@Nullable String parameter);
|
public abstract List<String> autoComplete(@NotNull String parameter, @NotNull String typed);
|
||||||
|
|
||||||
public boolean hasPermission(Player sender, String permission) {
|
|
||||||
return sender.hasPermission(permission+"."+getLabel());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.command.util;
|
package net.tylermurphy.hideAndSeek.command.util;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.*;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.map.Save;
|
import net.tylermurphy.hideAndSeek.command.map.Save;
|
||||||
|
import net.tylermurphy.hideAndSeek.util.Pair;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -62,12 +62,12 @@ public class CommandGroup {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean handleCommand(Player player, String permission, String[] args) {
|
public boolean handleCommand(Player player, String permission, String[] args) {
|
||||||
if (args.length < 1 && permission.equals("hs") || !commandRegister.containsKey(args[0].toLowerCase()) ) {
|
if (args.length < 1 || !commandRegister.containsKey(args[0].toLowerCase()) ) {
|
||||||
if (permissionsRequired && !player.hasPermission("hs.about")) {
|
if (permissionsRequired && !player.hasPermission("hs.about")) {
|
||||||
player.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
|
player.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
String.format("%s%sHide and Seek %s(%s1.7.0 BETA%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
|
String.format("%s%sKenshin's Hide and Seek %s(%s1.7.0 BETA%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
|
||||||
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
|
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
|
||||||
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
|
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
|
||||||
);
|
);
|
||||||
|
@ -76,20 +76,29 @@ public class CommandGroup {
|
||||||
String invoke = args[0].toLowerCase();
|
String invoke = args[0].toLowerCase();
|
||||||
if (!invoke.equals("about") && !invoke.equals("help") && Save.runningBackup) {
|
if (!invoke.equals("about") && !invoke.equals("help") && Save.runningBackup) {
|
||||||
player.sendMessage(errorPrefix + message("MAPSAVE_INPROGRESS"));
|
player.sendMessage(errorPrefix + message("MAPSAVE_INPROGRESS"));
|
||||||
} else if (permissionsRequired && !player.hasPermission(permission+"."+invoke)) {
|
|
||||||
player.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
|
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
Object object = commandRegister.get(invoke);
|
Object object = commandRegister.get(invoke);
|
||||||
if(object instanceof CommandGroup) return ((CommandGroup) object).handleCommand(player, permission+"."+this.label, Arrays.copyOfRange(args, 1, args.length));
|
|
||||||
Command command = (Command) object;
|
|
||||||
|
|
||||||
int parameters = (int) Arrays.stream(command.getUsage().split(" ")).filter(p -> p.startsWith("<") && !p.startsWith("<*")).count();
|
if(object instanceof CommandGroup) {
|
||||||
if(args.length - 1 < parameters) {
|
CommandGroup group = (CommandGroup) object;
|
||||||
player.sendMessage(errorPrefix + message("ARGUMENT_COUNT"));
|
return group.handleCommand(player, permission+"."+group.getLabel(), Arrays.copyOfRange(args, 1, args.length));
|
||||||
return true;
|
} else if(object instanceof Command) {
|
||||||
|
Command command = (Command) object;
|
||||||
|
|
||||||
|
if (permissionsRequired && !player.hasPermission(permission+"."+command.getLabel())) {
|
||||||
|
player.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int parameterCount = (int) Arrays.stream(command.getUsage().split(" ")).filter(p -> p.startsWith("<") && !p.startsWith("<*")).count();
|
||||||
|
if(args.length - 1 < parameterCount) {
|
||||||
|
player.sendMessage(errorPrefix + message("ARGUMENT_COUNT"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
command.execute(player,Arrays.copyOfRange(args, 1, args.length));
|
||||||
}
|
}
|
||||||
command.execute(player,Arrays.copyOfRange(args, 1, args.length));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
player.sendMessage(errorPrefix + "An error has occurred.");
|
player.sendMessage(errorPrefix + "An error has occurred.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -109,67 +118,75 @@ public class CommandGroup {
|
||||||
.filter(handle -> handle.toLowerCase().startsWith(invoke))
|
.filter(handle -> handle.toLowerCase().startsWith(invoke))
|
||||||
.filter(handle -> {
|
.filter(handle -> {
|
||||||
Object object = commandRegister.get(handle);
|
Object object = commandRegister.get(handle);
|
||||||
if (object instanceof Command) return ((Command) object).hasPermission(player, this.label);
|
if (object instanceof Command) {
|
||||||
if (object instanceof CommandGroup)
|
Command command = (Command) object;
|
||||||
return ((CommandGroup) object).hasPermission(player, this.label);
|
return player.hasPermission(command.getLabel());
|
||||||
|
} else if (object instanceof CommandGroup) {
|
||||||
|
CommandGroup group = (CommandGroup) object;
|
||||||
|
return group.hasPermission(player, group.getLabel());
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
|
||||||
return commandRegister.keySet().stream().filter(handle -> handle.toLowerCase().startsWith(invoke)).collect(Collectors.toList());
|
|
||||||
} else {
|
|
||||||
if (!commandRegister.containsKey(invoke)) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
} else {
|
} else {
|
||||||
Object object = commandRegister.get(invoke);
|
return commandRegister.keySet()
|
||||||
if(object instanceof CommandGroup) return ((CommandGroup) object).handleTabComplete(sender, Arrays.copyOfRange(args, 1, args.length));
|
.stream()
|
||||||
Command command = (Command) object;
|
.filter(handle -> handle.toLowerCase().startsWith(invoke))
|
||||||
String[] usage = command.getUsage().split(" ");
|
.collect(Collectors.toList());
|
||||||
List<String> complete;
|
|
||||||
if (args.length - 2 < usage.length) {
|
|
||||||
String parameter = usage[args.length-2];
|
|
||||||
String name = parameter.replace("<", "").replace(">", "");
|
|
||||||
complete = command.autoComplete(name);
|
|
||||||
} else {
|
|
||||||
complete = command.autoComplete(null);
|
|
||||||
}
|
|
||||||
if(complete == null) return new ArrayList<>();
|
|
||||||
else return complete;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (commandRegister.containsKey(invoke)) {
|
||||||
|
Object object = commandRegister.get(invoke);
|
||||||
|
if (object instanceof CommandGroup) {
|
||||||
|
CommandGroup group = (CommandGroup) object;
|
||||||
|
return group.handleTabComplete(sender, Arrays.copyOfRange(args, 1, args.length));
|
||||||
|
} else if (object instanceof Command) {
|
||||||
|
Command command = (Command) object;
|
||||||
|
String[] usage = command.getUsage().split(" ");
|
||||||
|
if (args.length - 2 < usage.length) {
|
||||||
|
String parameter = usage[args.length - 2];
|
||||||
|
String name = parameter.replace("<", "").replace(">", "");
|
||||||
|
List<String> list = command.autoComplete(name, args[args.length - 1]);
|
||||||
|
if (list != null) {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasPermission(Player player, String permission) {
|
private boolean hasPermission(Player player, String permission) {
|
||||||
for(Object object : commandRegister.values()) {
|
for(Object object : commandRegister.values()) {
|
||||||
if(object instanceof Command) if(((Command) object).hasPermission(player, this.label)) return true;
|
if(object instanceof Command) {
|
||||||
if(object instanceof CommandGroup) if (((CommandGroup) object).hasPermission(player, permission+"."+this.label)) return true;
|
Command command = (Command) object;
|
||||||
|
if(player.hasPermission(permission+"."+command.getLabel())) return true;
|
||||||
|
} else if(object instanceof CommandGroup) {
|
||||||
|
CommandGroup group = (CommandGroup) object;
|
||||||
|
if (group.hasPermission(player, permission+"."+group.getLabel())) return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static void registerCommands() {
|
public List<Pair<String, Command>> getCommands() {
|
||||||
// registerCommand(new About());
|
return getCommands(this.getLabel());
|
||||||
// registerCommand(new Help());
|
}
|
||||||
// registerCommand(new Setup());
|
|
||||||
// registerCommand(new Start());
|
private List<Pair<String, Command>> getCommands(String prefix) {
|
||||||
// registerCommand(new Stop());
|
List<Pair<String, Command>> commands = new LinkedList<>();
|
||||||
// registerCommand(new SetSpawnLocation());
|
for(Object object : commandRegister.values()) {
|
||||||
// registerCommand(new SetLobbyLocation());
|
if(object instanceof Command) {
|
||||||
// registerCommand(new SetSeekerLobbyLocation());
|
Command command = (Command) object;
|
||||||
// registerCommand(new SetExitLocation());
|
commands.add(new Pair<>(prefix+" "+command.getLabel(), command));
|
||||||
// registerCommand(new SetBorder());
|
} else if(object instanceof CommandGroup) {
|
||||||
// registerCommand(new Reload());
|
CommandGroup group = (CommandGroup) object;
|
||||||
// registerCommand(new SaveMap());
|
commands.addAll(group.getCommands(prefix+" "+group.getLabel()));
|
||||||
// registerCommand(new SetBounds());
|
}
|
||||||
// registerCommand(new Join());
|
}
|
||||||
// registerCommand(new Leave());
|
return commands;
|
||||||
// registerCommand(new Top());
|
}
|
||||||
// registerCommand(new Wins());
|
|
||||||
// registerCommand(new Debug());
|
|
||||||
// registerCommand(new AddMap());
|
|
||||||
// registerCommand(new RemoveMap());
|
|
||||||
// registerCommand(new ListMaps());
|
|
||||||
// registerCommand(new SetMap());
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
21
src/main/java/net/tylermurphy/hideAndSeek/util/Pair.java
Normal file
21
src/main/java/net/tylermurphy/hideAndSeek/util/Pair.java
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
package net.tylermurphy.hideAndSeek.util;
|
||||||
|
|
||||||
|
public class Pair<L, R> {
|
||||||
|
|
||||||
|
private final L left;
|
||||||
|
private final R right;
|
||||||
|
|
||||||
|
public Pair(L left, R right) {
|
||||||
|
this.left = left;
|
||||||
|
this.right = right;
|
||||||
|
}
|
||||||
|
|
||||||
|
public L getLeft() {
|
||||||
|
return left;
|
||||||
|
}
|
||||||
|
|
||||||
|
public R getRight() {
|
||||||
|
return right;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue