public void loadWarps() { synchronized (warpLock) { warps = new ArrayList<Warp>(); String location = etc.getInstance().getWarpLocation(); if (new File(location).exists()) try { Scanner scanner = new Scanner(new File(location)); while (scanner.hasNextLine()) { String line = scanner.nextLine(); if (line.startsWith("#") || line.equals("")) continue; String[] split = line.split(":"); if (split.length < 4) continue; Location loc = new Location(); loc.x = Double.parseDouble(split[1]); loc.y = Double.parseDouble(split[2]); loc.z = Double.parseDouble(split[3]); if (split.length == 6) { loc.rotX = Float.parseFloat(split[4]); loc.rotY = Float.parseFloat(split[5]); } Warp warp = new Warp(); warp.Name = split[0]; warp.Location = loc; if (split.length >= 7) warp.Group = split[6]; else warp.Group = ""; warps.add(warp); } scanner.close(); } catch (Exception e) { log.log(Level.SEVERE, "Exception while reading " + location, e); } } }
public Warp getWarp(String name) { for (Warp warp : warps) { if (warp.getName().equalsIgnoreCase(name)) { return warp; } } return null; }
public static void removeWarp(final Warp warp) { WARPS.remove(warp.getName()); }
public static void addWarp(final Warp warp) { WARPS.put(warp.getName(), warp); }
@Override public boolean onCommand( final CommandSender sender, final Command command, final String label, final String[] args) { if (command.getName().equalsIgnoreCase("setpos")) { if (sender.hasPermission("commandtp.admin")) { if (args.length >= 2) // setpos nome=1 comando=2 { String msg = ""; for (final String s : args) { if (!msg.isEmpty()) { msg += " "; } msg += s; } final Matcher m = Main.regex.matcher(msg); if (m.find()) { final String nome = m.group(1); final String comando = m.group(2).replaceAll("[^a-zá-úÁ-ÚA-Z0-9_-]", "").toLowerCase().trim(); if (comando.isEmpty()) { comando.isEmpty(); sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.heltopic_empty"))); return false; } else { final int id = Main.data.getConfigurationSection("poses").getKeys(false).size(); for (final String key : Main.data.getConfigurationSection("poses").getKeys(false)) { final String n = Main.data.getString("poses." + key + ".nome"); final String c = Main.data.getString("poses." + key + ".cmd"); if (n.toLowerCase().equalsIgnoreCase(nome) || c.toLowerCase().trim().equalsIgnoreCase(comando.toLowerCase().trim())) { Main.data.set("poses." + key, null); sender.sendMessage("§7Removendo valor obsoleto.."); try { Main.warps.get(Integer.parseInt(key)).unregister(Warp.cmap); } catch (final Exception e) { } } } final Location pos = ((Player) sender).getLocation(); final Warp warp = new Warp(nome, Framework.fromLocation(pos), comando); warp.register(); Main.warps.put(id + 1, warp); Main.data.set("poses." + (id + 1) + ".nome", warp.nome); Main.data.set("poses." + (id + 1) + ".pos", warp.pos); Main.data.set("poses." + (id + 1) + ".cmd", warp.cmd); try { Main.data.save(new File(this.getDataFolder(), "data.yml")); } catch (final IOException e) { e.printStackTrace(); } sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.pos_added").replace("{nome}", nome))); this.getLogger().info("Registrando teleporte ['" + nome + "']: /" + comando); return true; } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.helptopic"))); return false; } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.helptopic"))); return false; } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.permissão_admin"))); } } else if (command.getName().equalsIgnoreCase("delpos")) { if (sender.hasPermission("commandtp.admin")) { if (args.length == 1) // delpos id { try { final int id = Integer.parseInt(args[0]); Main.data.set("poses." + id, null); try { Main.data.save(new File(this.getDataFolder(), "data.yml")); sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.pos_removed"))); } catch (final IOException e) { e.printStackTrace(); } } catch (final NumberFormatException nfe) { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.pos_remove_nfe"))); } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.pos_remove_nfe"))); } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.permissão_admin"))); } } else if (command.getName().equalsIgnoreCase("poses")) { if (sender.hasPermission("commandtp.admin")) { boolean empty = true; for (final String s : Main.data.getConfigurationSection("poses").getKeys(false)) { empty = false; sender.sendMessage( "§7» Nome: \"§6" + Main.data.getString("poses." + s + ".nome") + "§7\" Comando: \"§6" + Main.data.getString("poses." + s + ".cmd") + "§7\" ID: §6" + s); } if (empty) { sender.sendMessage("§7Não há nenhuma posição marcada."); } } else { sender.sendMessage( ChatColor.translateAlternateColorCodes( '&', Main.data.getString("mensagens.permissão_admin"))); } } return false; }