@Command( aliases = {"waypoint", "wp"}, desc = "The main waypoint command", max = 1) @NestedCommand(value = WaypointSubCommands.class, ignoreBody = false) public void waypoint(CommandSource source, CommandArguments args) throws CommandException { if (source instanceof Player && args.length() == 1) { source.processCommand("waypoint", "tpto", args.getString(0)); } }
public static Material popMaterial(String argName, CommandArguments args) throws ArgumentParseException { String arg = args.currentArgument(argName); Material mat; try { mat = VanillaMaterials.getMaterial((short) Integer.parseInt(arg)); } catch (NumberFormatException ex) { mat = MaterialRegistry.get(arg); } if (mat == null) { throw args.failure(argName, "Unknown material: " + arg, false); } return args.success(argName, mat); }
public static GameMode popGameMode(String argName, CommandArguments args) throws ArgumentParseException { String raw = args.currentArgument(argName); if (raw.length() == 1) { GameMode mode = null; if (raw.equalsIgnoreCase("s")) { mode = GameMode.SURVIVAL; } else if (raw.equalsIgnoreCase("c")) { mode = GameMode.CREATIVE; } else if (raw.equalsIgnoreCase("a")) { mode = GameMode.ADVENTURE; } if (mode != null) { return args.success(argName, mode); } } return args.popEnumValue(argName, GameMode.class); }
@Command( aliases = {"remove", "rm"}, desc = "Removes an existing waypoint", min = 1, max = 1) @Permissible("plugintest.waypoint.remove") public void remove(CommandSource source, CommandArguments args) throws CommandException { String name = args.getString(0); if (this.waypoints.containsKey(name)) { throw new CommandException("The \"" + name + "\" waypoint does not exist."); } this.waypoints.remove(name); source.sendMessage("Waypoint \"" + name + "\" has been removed."); }
@Command( aliases = {"create", "make", "mk"}, desc = "Creates a new waypoint", min = 1, max = 1) @Permissible("plugintest.waypoint.create") public void create(CommandSource source, CommandArguments args) throws CommandException { if (!(source instanceof Player)) { throw new CommandException("Only players may create waypoints."); } String name = args.getString(0); Player player = (Player) source; if (this.waypoints.containsKey(name)) { throw new CommandException("The \"" + name + "\" waypoint already exists."); } this.waypoints.put(name, player.getScene().getPosition()); player.sendMessage("Waypoint \"" + name + "\" has been created."); }
@Command( aliases = {"teleportto", "tpto"}, desc = "Teleports the player to the waypoint", min = 1, max = 1) @Permissible("plugintest.waypoint.tpto") public void tpto(CommandSource source, CommandArguments args) throws CommandException { if (!(source instanceof Player)) { throw new CommandException("Only players may teleport to waypoints, silly."); } String name = args.getString(0); Player player = (Player) source; Point destination = this.waypoints.get(name); if (destination == null) { throw new CommandException("The \"" + name + "\" waypoint does not exist."); } player.teleport(destination); player.sendMessage("Teleported to waypoint."); }