public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { Player player = null; switch (cmd.getName()) { case "stp": if (args[0].equals("time")) { int r_time = 0; if (args.length == 1) { sender.sendMessage(ChatColor.RED + "時間(分)を入力してください"); return false; } try { r_time = Integer.parseInt(args[1]); } catch (NumberFormatException nfex) { sender.sendMessage(ChatColor.RED + "時間を正しく入力してください"); doError(sender, nfex); return false; } if (r_time < 0 || r_time > 60) { sender.sendMessage(ChatColor.RED + "時間(分)は0~60の間で設定してください"); return false; } getConfig().set("reload_time", r_time); saveConfig(); sender.sendMessage(ChatColor.AQUA + "更新時間を" + args[1] + "分に設定しました"); } else { int tp_number; player = (Player) sender; // get player of do command try { tp_number = Integer.parseInt(args[0]); } catch (NumberFormatException nfex) { sender.sendMessage(ChatColor.RED + "TPナンバーを正しく入力してください"); doError(sender, nfex); return false; } if (tp_number < 0 || tp_number > 9) { sender.sendMessage(ChatColor.RED + "TPナンバーは0〜9で入力してください"); return true; } Location tplocset = player.getLocation(); getConfig().set("at.X" + tp_number, tplocset.getX()); getConfig().set("at.Y" + tp_number, tplocset.getY()); getConfig().set("at.Z" + tp_number, tplocset.getZ()); saveConfig(); sender.sendMessage(ChatColor.AQUA + "TP" + args[0] + "を設定しました"); } break; case "ctp": if ((sender instanceof Player) == false && args.length == 0) { sender.sendMessage(ChatColor.RED + "ゲーム内から実行するか、TP対象のプレイヤーを指定してください"); return false; } Calendar now = Calendar.getInstance(); if (args.length != 0) { try { player = getPlayer(args[0]); } catch (Exception e) { doError(sender, e); return false; } if (player == null) { sender.sendMessage(ChatColor.RED + args[0] + "さんはオフラインです"); return true; } } else if ((sender instanceof Player)) { player = (Player) sender; // get player of do command } // Init if (tp_number_ctp == -1) { tp_number_ctp = 0; minute = now.get(now.MINUTE); } if (now.get(now.MINUTE) - minute > getConfig().getInt("reload_time") - 1 || now.get(now.MINUTE) - minute < 0) { minute = now.get(now.MINUTE); tp_number_ctp++; } if (tp_number_ctp < 0) tp_number_ctp = 9; else if (tp_number_ctp > 9) tp_number_ctp = 0; Location tplocset1 = player.getLocation(); tplocset1.setX(getConfig().getDouble("at.X" + tp_number_ctp)); tplocset1.setY(getConfig().getDouble("at.Y" + tp_number_ctp)); tplocset1.setZ(getConfig().getDouble("at.Z" + tp_number_ctp)); if (tplocset1 == null) { sender.sendMessage(ChatColor.RED + "TP" + tp_number_ctp + "が設定されていません"); return true; } player.teleport(tplocset1); getLogger().info(player.toString() + "をTP" + tp_number_ctp + "にTPしました"); break; } return true; }
@Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("cfrtp")) { if (sender instanceof Player) { Player player = (Player) sender; World tpWorld; if (!teleportOnSpecificWorld.isEmpty()) { tpWorld = getServer().getWorld(teleportOnSpecificWorld); if (tpWorld == null) { log.severe( String.format( "The world '%1$s' set in the config option 'teleport-on-specific-world' doesn't exist on the server. Unable to randomly teleport %2$s!", teleportOnSpecificWorld, player.getName())); sender.sendMessage( ChatColor.RED + "Unable to find a suitable location to teleport to!"); return true; } } else { tpWorld = player.getWorld(); } Location location = findSuitableLocationWB(tpWorld); if (location == null) { sender.sendMessage(ChatColor.RED + "Unable to find a suitable location to teleport to!"); return true; } boolean success = player.teleport(location, TeleportCause.COMMAND); if (success) { player.sendMessage( new String[] { String.format( "%1$sYou have been teleported to a random location!", ChatColor.GREEN), String.format( "%1$sWorld: %2$s%3$s", ChatColor.AQUA, ChatColor.YELLOW, location.getWorld().getName()), String.format( "%1$sX: %2$s%3$f%1$s, Y: %2$s%4$f%1$s, Z: %2$s%5$f%1$s", ChatColor.AQUA, ChatColor.YELLOW, location.getX(), location.getY(), location.getZ()), String.format( "%1$sBiome: %2$s%3$s", ChatColor.AQUA, ChatColor.YELLOW, location.getBlock().getBiome()) }); } else { player.sendMessage( ChatColor.RED + "Unable to teleport you to the random location! Seek the server staff for assistance."); log.severe( String.format( ChatColor.RED + "Unable to randomly teleport %1$s to %2$s ! Maybe another plugin blocked the teleport?", player.toString(), location.toString())); } return true; } else { sender.sendMessage(ChatColor.RED + "You must be a player to use this command!"); return true; } } return false; }