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);
        }
    }
  }
Exemplo n.º 2
0
 public Warp getWarp(String name) {
   for (Warp warp : warps) {
     if (warp.getName().equalsIgnoreCase(name)) {
       return warp;
     }
   }
   return null;
 }
Exemplo n.º 3
0
 public static void removeWarp(final Warp warp) {
   WARPS.remove(warp.getName());
 }
Exemplo n.º 4
0
 public static void addWarp(final Warp warp) {
   WARPS.put(warp.getName(), warp);
 }
Exemplo n.º 5
0
  @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;
  }