@Override
  public void tick() {
    ticks++;
    if (ticks % (20 * 10) == 0) {
      warnEveryone(Localization.get(Localization.WB_FILL_STILLGOING).replaceAll("%eta", getETA()));
    }

    int i = 0;
    while (i < chunksAtick) {
      if ((rad + ModuleWorldBorder.overGenerate)
          > ModuleWorldBorder.getDistanceRound(centerX, centerZ, X, Z)) {
        i++;
        world.theChunkProviderServer.provideChunk((X >> 4), (Z >> 4));
        if (X <= maxX) {
          X += 16;
        } else {
          // New row!
          if (Z <= maxZ) {
            Z += 16;
            X = minX;
          } else {
            // Done!
            isComplete = true;
          }
        }
      }
    }
  }
Пример #2
0
  @Override
  public void processCommandPlayer(EntityPlayer sender, String[] args) {
    if (FMLCommonHandler.instance().getEffectiveSide().isClient()) return;

    boolean set = ModuleWorldBorder.set;
    // Info
    if (args.length == 0) {
      sender.sendChatToPlayer(Localization.get(Localization.WB_STATUS_HEADER));
      if (set) {
        sender.sendChatToPlayer(
            FEChatFormatCodes.GREEN + Localization.get(Localization.WB_STATUS_BORDERSET));
        sender.sendChatToPlayer("Coordinates :");
        if (ModuleWorldBorder.shape.equals(BorderShape.square)) {
          sender.sendChatToPlayer(
              "centerX:" + ModuleWorldBorder.X + "  centerZ:" + ModuleWorldBorder.Z);
          sender.sendChatToPlayer("rad:" + ModuleWorldBorder.rad + " Shape: Square");
          sender.sendChatToPlayer(
              "minX:" + ModuleWorldBorder.minX + "  maxX:" + ModuleWorldBorder.maxX);
          sender.sendChatToPlayer(
              "minZ:" + ModuleWorldBorder.minZ + "  maxZ:" + ModuleWorldBorder.maxZ);
        }
        if (ModuleWorldBorder.shape.equals(BorderShape.round)) {
          sender.sendChatToPlayer(
              "centerX:" + ModuleWorldBorder.X + "  centerZ:" + ModuleWorldBorder.Z);
          sender.sendChatToPlayer("rad:" + ModuleWorldBorder.rad + " Shape: Round");
        }
      } else {
        sender.sendChatToPlayer(
            FEChatFormatCodes.RED + Localization.get(Localization.WB_STATUS_BORDERNOTSET));
      }
      return;
    }
    // Fill
    if (args[0].equalsIgnoreCase("fill")) {
      if (args.length == 1) {
        sender.sendChatToPlayer(
            FEChatFormatCodes.RED + Localization.get(Localization.WB_LAGWARING));
        sender.sendChatToPlayer(
            FEChatFormatCodes.RED + Localization.get(Localization.WB_FILL_INFO));
        sender.sendChatToPlayer(Localization.get(Localization.WB_FILL_CONFIRM));
        return;
      }
      if (args[1].equalsIgnoreCase("start")) {
        MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
        WorldServer world = server.worldServers[sender.dimension];

        if (taskGooing != null) {
          sender.sendChatToPlayer(Localization.get(Localization.WB_FILL_ONLYONCE));
        } else {
          taskGooing = new TickTaskFill(world);
        }
        return;
      }
      if (args[1].equalsIgnoreCase("continue")) {
        MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
        WorldServer world = server.worldServerForDimension(sender.dimension);

        if (taskGooing != null) {
          sender.sendChatToPlayer(Localization.get(Localization.WB_FILL_ONLYONCE));
        } else {
          taskGooing = new TickTaskFill(world);
        }
        return;
      }
      if (args[1].equalsIgnoreCase("cancel")) {
        taskGooing.stop();
        return;
      }
      if (args[1].equalsIgnoreCase("message")) {
        if (args[2].equalsIgnoreCase("off") || args[2].equalsIgnoreCase("false")) {
          TickTaskFill.enablemsg = false;
        } else {
          TickTaskFill.enablemsg = true;
        }
        return;
      }
    }
    // Set
    if (args[0].equalsIgnoreCase("set") && args.length >= 3) {
      BorderShape shape = BorderShape.valueOf(args[1].toLowerCase());
      int rad = parseIntWithMin(sender, args[2], 0);

      if (args.length == 3) {
        ModuleWorldBorder.setCenter(rad, (int) sender.posX, (int) sender.posZ, shape, true);
        sender.sendChatToPlayer(
            Localization.get(Localization.WB_SET)
                .replaceAll("%r", "" + rad)
                .replaceAll("%x", "" + (int) sender.posX)
                .replaceAll("%z", "" + (int) sender.posZ));
        return;
      }
      if (args.length == 5) {
        int X = parseInt(sender, args[3]);
        int Z = parseInt(sender, args[4]);

        ModuleWorldBorder.setCenter(rad, X, Z, shape, true);
        sender.sendChatToPlayer(
            Localization.get(Localization.WB_SET)
                .replaceAll("%r", "" + rad)
                .replaceAll("%x", "" + X)
                .replaceAll("%z", "" + Z));
        return;
      }
    }
    // Command unknown
    OutputHandler.chatError(
        sender, Localization.get(Localization.ERROR_BADSYNTAX) + getSyntaxPlayer(sender));
  }