@Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (cmd.getName().equalsIgnoreCase("dmarker")) { return MarkerAPIImpl.onCommand(this, sender, cmd, commandLabel, args); } if (!cmd.getName().equalsIgnoreCase("dynmap")) return false; Player player = null; if (sender instanceof Player) player = (Player) sender; /* Re-parse args - handle doublequotes */ args = parseArgs(args, sender); if (args == null) return false; if (args.length > 0) { String c = args[0]; if (!commands.contains(c)) { return false; } if (c.equals("render") && checkPlayerPermission(sender, "render")) { if (player != null) { int invalidates = mapManager.touch(player.getLocation(), "render"); sender.sendMessage( "Queued " + invalidates + " tiles" + (invalidates == 0 ? " (world is not loaded?)" : "...")); } else { sender.sendMessage("Command can only be issued by player."); } } else if (c.equals("radiusrender") && checkPlayerPermission(sender, "radiusrender")) { if (player != null) { int radius = 0; String mapname = null; if (args.length > 1) { radius = Integer.parseInt(args[1]); /* Parse radius */ if (radius < 0) radius = 0; if (args.length > 2) mapname = args[2]; } Location loc = player.getLocation(); if (loc != null) mapManager.renderWorldRadius(loc, sender, mapname, radius); } else { sender.sendMessage("Command can only be issued by player."); } } else if (c.equals("hide")) { if (args.length == 1) { if (player != null && checkPlayerPermission(sender, "hide.self")) { playerList.setVisible(player.getName(), false); sender.sendMessage("You are now hidden on Dynmap."); } } else if (checkPlayerPermission(sender, "hide.others")) { for (int i = 1; i < args.length; i++) { playerList.setVisible(args[i], false); sender.sendMessage(args[i] + " is now hidden on Dynmap."); } } } else if (c.equals("show")) { if (args.length == 1) { if (player != null && checkPlayerPermission(sender, "show.self")) { playerList.setVisible(player.getName(), true); sender.sendMessage("You are now visible on Dynmap."); } } else if (checkPlayerPermission(sender, "show.others")) { for (int i = 1; i < args.length; i++) { playerList.setVisible(args[i], true); sender.sendMessage(args[i] + " is now visible on Dynmap."); } } } else if (c.equals("fullrender") && checkPlayerPermission(sender, "fullrender")) { String map = null; if (args.length > 1) { for (int i = 1; i < args.length; i++) { int dot = args[i].indexOf(":"); DynmapWorld w; String wname = args[i]; if (dot >= 0) { wname = args[i].substring(0, dot); map = args[i].substring(dot + 1); } w = mapManager.getWorld(wname); if (w != null) { Location spawn = w.world.getSpawnLocation(); Location loc = new Location( w.world, w.configuration.getDouble("center/x", spawn.getX()), w.configuration.getDouble("center/y", spawn.getY()), w.configuration.getDouble("center/z", spawn.getZ())); mapManager.renderFullWorld(loc, sender, map); } else sender.sendMessage("World '" + wname + "' not defined/loaded"); } } else if (player != null) { Location loc = player.getLocation(); if (args.length > 1) map = args[1]; if (loc != null) mapManager.renderFullWorld(loc, sender, map); } else { sender.sendMessage("World name is required"); } } else if (c.equals("cancelrender") && checkPlayerPermission(sender, "cancelrender")) { if (args.length > 1) { for (int i = 1; i < args.length; i++) { World w = getServer().getWorld(args[i]); if (w != null) mapManager.cancelRender(w, sender); else sender.sendMessage("World '" + args[i] + "' not defined/loaded"); } } else if (player != null) { Location loc = player.getLocation(); if (loc != null) mapManager.cancelRender(loc.getWorld(), sender); } else { sender.sendMessage("World name is required"); } } else if (c.equals("purgequeue") && checkPlayerPermission(sender, "purgequeue")) { mapManager.purgeQueue(sender); } else if (c.equals("reload") && checkPlayerPermission(sender, "reload")) { sender.sendMessage("Reloading Dynmap..."); reload(); sender.sendMessage("Dynmap reloaded"); } else if (c.equals("stats") && checkPlayerPermission(sender, "stats")) { if (args.length == 1) mapManager.printStats(sender, null); else mapManager.printStats(sender, args[1]); } else if (c.equals("triggerstats") && checkPlayerPermission(sender, "stats")) { mapManager.printTriggerStats(sender); } else if (c.equals("resetstats") && checkPlayerPermission(sender, "resetstats")) { if (args.length == 1) mapManager.resetStats(sender, null); else mapManager.resetStats(sender, args[1]); } else if (c.equals("sendtoweb") && checkPlayerPermission(sender, "sendtoweb")) { String msg = ""; for (int i = 1; i < args.length; i++) { msg += args[i] + " "; } this.sendBroadcastToWeb("dynmap", msg); } return true; } return false; }