Esempio n. 1
0
 public void run() {
   int id = ((StorageMinecart) inventory.getHolder()).getEntityId();
   try {
     UpdaterContentFactory.createRoutingTableExchange(
         inventory, region, level, player, isfullreset, isnew);
   } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   if (!ByteCartUpdaterMoveListener.isExist()) {
     Listener updatermove = new ByteCartUpdaterMoveListener();
     ByteCart.myPlugin
         .getServer()
         .getPluginManager()
         .registerEvents(updatermove, ByteCart.myPlugin);
     ByteCartUpdaterMoveListener.setExist(true);
   }
   ByteCartUpdaterMoveListener.addUpdater(id);
   LogUtil.sendError(player, ByteCart.myPlugin.getConfig().getString("Info.SetUpdater"));
 }
Esempio n. 2
0
  /* (non-Javadoc)
   * @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.CommandSender, org.bukkit.command.Command, java.lang.String, java.lang.String[])
   */
  @Override
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("mego")) {
      if (!(sender instanceof Player)) {
        sender.sendMessage("This command can only be run by a player.");
      } else {
        Player player = (Player) sender;

        if (args.length == 0
            || args.length >= 3
            || !AddressString.isResolvableAddressOrName(args[0])) return false;

        Address address = new AddressString(args[0]);

        boolean isTrain = false;
        if (args.length == 2 && args[1].equalsIgnoreCase("train")) isTrain = true;

        (new BC7010(player.getLocation().getBlock(), player)).setAddress(address, null, isTrain);
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("sendto")) {
      if (!(sender instanceof Player)) {
        sender.sendMessage("This command can only be run by a player.");
      } else {
        Player player = (Player) sender;

        if (args.length == 0
            || args.length >= 3
            || !AddressString.isResolvableAddressOrName(args[0])) return false;

        Address address = new AddressString(args[0]);

        boolean isTrain = false;
        if (args.length == 2 && args[1].equalsIgnoreCase("train")) isTrain = true;

        final class Execute implements ModifiableRunnable<Inventory> {

          private final Player player;
          private final Address address;
          private Inventory inventory;
          private boolean istrain;

          public Execute(Player player, Address address, boolean isTrain) {
            this.player = player;
            this.address = address;
            this.istrain = isTrain;
          }

          public void run() {
            if ((new BC7011(
                    player.getLocation().getBlock(),
                    ((org.bukkit.entity.Vehicle) inventory.getHolder())))
                .setAddress(address, null, this.istrain)) {
              LogUtil.sendSuccess(
                  player,
                  ByteCart.myPlugin.getConfig().getString("Info.SetAddress") + " " + address);
              LogUtil.sendSuccess(
                  player,
                  ByteCart.myPlugin.getConfig().getString("Info.GetTTL")
                      + AddressFactory.<AddressRouted>getAddress(inventory).getTTL());
            } else
              LogUtil.sendError(
                  player, ByteCart.myPlugin.getConfig().getString("Error.SetAddress"));
          }

          /**
           * @param inventory
           * @param inventory the inventory to set
           */
          @Override
          public void SetParam(Inventory inventory) {
            this.inventory = inventory;
          }
        }

        player.sendMessage(
            ChatColor.DARK_GREEN
                + "[Bytecart] "
                + ChatColor.YELLOW
                + ByteCart.myPlugin.getConfig().getString("Info.RightClickCart"));
        new ByteCartInventoryListener(
            ByteCart.myPlugin, player, new Execute(player, address, isTrain), false);
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("bcreload")) {
      ByteCart.myPlugin.reloadConfig();
      ByteCart.myPlugin.loadConfig();

      String s = "Configuration file reloaded.";

      if (!(sender instanceof Player)) {
        sender.sendMessage(s);
      } else {
        Player player = (Player) sender;
        LogUtil.sendError(player, s);
      }

      return true;
    }

    if (cmd.getName().equalsIgnoreCase("bcticket")) {
      return bcticket(sender, cmd, label, args);
    }

    if (cmd.getName().equalsIgnoreCase("bcback")) {
      if (!(sender instanceof Player)) {
        sender.sendMessage("This command can only be run by a player.");
        return true;
      }

      Player player = (Player) sender;

      (new BC7017(player.getLocation().getBlock(), player)).trigger();

      LogUtil.sendSuccess(player, "Return back");

      return true;
    }

    if (cmd.getName().equalsIgnoreCase("bcupdater")) {
      if (!(sender instanceof Player)) {
        sender.sendMessage("This command can only be run by a player.");
      } else {
        Player player = (Player) sender;

        if (args.length == 1 && args[0].equalsIgnoreCase("remove")) {
          ByteCart.myPlugin.getWandererManager().unregister("Updater");
          ByteCartUpdaterMoveListener.clearUpdaters();
          return true;
        }

        int region = 0;

        if (args.length == 0 || args.length > 4 || !Wanderer.Level.isMember(args[0].toLowerCase()))
          return false;

        if (args.length == 1
            && !args[0].equalsIgnoreCase("backbone")
            && !args[0].equalsIgnoreCase("reset_backbone")) return false;

        boolean full_reset = false;
        boolean isnew = false;

        if (!ByteCart.myPlugin.getWandererManager().isWandererType("Updater"))
          ByteCart.myPlugin.getWandererManager().register(new UpdaterFactory(), "Updater");

        if (args.length >= 2) {

          if (!args[0].equalsIgnoreCase("region")
              && !args[0].equalsIgnoreCase("local")
              && !args[0].equalsIgnoreCase("reset_region")
              && !args[0].equalsIgnoreCase("reset_local")) return false;

          region = Integer.parseInt(args[1]);

          if (region < 1 || region > 2047) return false;

          if (args.length == 3) {
            if (args[0].startsWith("reset")) {
              if (args[2].equalsIgnoreCase("full")) full_reset = true;
              else return false;
            } else if (args[2].equalsIgnoreCase("new")) isnew = true;
            else return false;
          }
        }

        final class Execute implements ModifiableRunnable<Inventory> {

          private final Player player;
          private final Wanderer.Level level;
          private final int region;
          private Inventory inventory;
          private boolean isfullreset;
          private boolean isnew;

          public Execute(
              Player player, Wanderer.Level level, int region, boolean isfullreset, boolean isnew) {
            this.player = player;
            this.level = level;
            this.region = region;
            this.isfullreset = isfullreset;
            this.isnew = isnew;
          }

          public void run() {
            int id = ((StorageMinecart) inventory.getHolder()).getEntityId();
            try {
              UpdaterContentFactory.createRoutingTableExchange(
                  inventory, region, level, player, isfullreset, isnew);
            } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            if (!ByteCartUpdaterMoveListener.isExist()) {
              Listener updatermove = new ByteCartUpdaterMoveListener();
              ByteCart.myPlugin
                  .getServer()
                  .getPluginManager()
                  .registerEvents(updatermove, ByteCart.myPlugin);
              ByteCartUpdaterMoveListener.setExist(true);
            }
            ByteCartUpdaterMoveListener.addUpdater(id);
            LogUtil.sendError(player, ByteCart.myPlugin.getConfig().getString("Info.SetUpdater"));
          }

          /**
           * @param inventory
           * @param inventory the inventory to set
           */
          @Override
          public void SetParam(Inventory inventory) {
            this.inventory = inventory;
          }
        }

        LogUtil.sendSuccess(player, ByteCart.myPlugin.getConfig().getString("Info.RightClickCart"));

        new ByteCartInventoryListener(
            ByteCart.myPlugin,
            player,
            new Execute(
                player, Wanderer.Level.valueOf(args[0].toUpperCase()), region, full_reset, isnew),
            true);
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("bcdmapsync")) {
      BCDynmapPlugin.removeObsoleteMarkers();
      return true;
    }

    return false;
  }