Ejemplo n.º 1
0
  @Override
  public void runCommand(L2PcInstance admin, String... params) {
    if (admin == null) return;

    final String command = params[0];

    if (command.equals("vis") || command.equals("visible")) {
      admin.getAppearance().setVisible();
      admin.broadcastUserInfo(true);
      return;
    } else if (command.equals("invis") || command.equals("invisible")) {
      admin.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
      admin.setTarget(admin);
      admin.disableAllSkills();
      admin.getAppearance().setInvisible();
      admin.updateInvisibilityStatus();
      admin.enableAllSkills();
      return;
    } else if (command.equals("earthquake")) {
      try {
        int intensity = Integer.parseInt(params[1]);
        int duration = Integer.parseInt(params[2]);
        Earthquake eq =
            new Earthquake(admin.getX(), admin.getY(), admin.getZ(), intensity, duration);
        admin.broadcastPacket(eq);
      } catch (Exception e) {
        admin.sendMessage("Используйте: //earthquake <intensity> <duration>");
      }
      sendHtml(admin, "effects");
      return;
    } else if (command.equals("atmosphere")) {
      try {
        String type = params[1];
        String state = params[2];
        adminAtmosphere(type, state, admin);
      } catch (Exception ex) {
      }
      sendHtml(admin, "effects");
      return;
    } else if (command.equals("sounds")) {
      methods.showHelpPage(admin, "songs/songs.htm");
      return;
    } else if (command.equals("play_sounds")) {
      try {
        String cmd = "";
        for (int x = 1; x < params.length; x++) cmd += (" " + params[x]);
        methods.showHelpPage(admin, "songs/songs" + cmd + ".htm");
      } catch (StringIndexOutOfBoundsException e) {
      }
      return;
    } else if (command.startsWith("play_sound")) {
      try {
        String cmd = "";
        for (int x = 1; x < params.length; x++) cmd += (" " + params[x]);
        playAdminSound(admin, cmd);
      } catch (StringIndexOutOfBoundsException e) {
      }
      return;
    } else if (command.equals("para")) {
      String type = "1";
      if (params.length > 1) type = params[1];
      try {
        L2Object target = admin.getTarget();
        L2Character player = null;
        if (target instanceof L2Character) {
          player = (L2Character) target;
          if (type.equals("1")) player.startAbnormalEffect(AbnormalEffect.HOLD_1);
          else player.startAbnormalEffect(AbnormalEffect.HOLD_2);
          player.setIsParalyzed(true);
          StopMove sm = new StopMove(player);
          player.sendPacket(sm);
          player.broadcastPacket(sm);
        }
      } catch (Exception e) {
      }
    } else if (command.equals("unpara")) {
      try {
        L2Object target = admin.getTarget();
        L2Character player = null;
        if (target instanceof L2Character) {
          player = (L2Character) target;
          player.stopAbnormalEffect(AbnormalEffect.HOLD_1);
          player.stopAbnormalEffect(AbnormalEffect.HOLD_2);
          player.setIsParalyzed(false);
        }
      } catch (Exception e) {
      }
    } else if (command.equals("para_all") || command.equals("unpara_all")) {
      boolean para = command.equals("para_all");
      try {
        for (L2PcInstance player : admin.getKnownList().getKnownPlayers().values()) {
          if (!player.isGM()) {
            if (para) {
              player.startAbnormalEffect(AbnormalEffect.HOLD_1);
              player.setIsParalyzed(true);
              player.broadcastPacket(new StopMove(player));
            } else {
              player.stopAbnormalEffect(AbnormalEffect.HOLD_1);
              player.setIsParalyzed(false);
            }
          }
        }
      } catch (Exception e) {
      }
      sendHtml(admin, "effects");
      return;
    } else if (command.equals("bighead") || command.equals("shrinkhead")) {
      try {
        L2Object target = admin.getTarget();
        if (target == null) target = admin;
        if (target != null && target instanceof L2Character) {
          if (command.equals("shrinkhead"))
            ((L2Character) target).stopAbnormalEffect(AbnormalEffect.BIG_HEAD);
          else ((L2Character) target).startAbnormalEffect(AbnormalEffect.BIG_HEAD);
        }
      } catch (Exception e) {
      }
      sendHtml(admin, "effects");
      return;
    } else if (command.equals("gmspeed")) {
      try {
        int val = Integer.parseInt(params[1]);
        admin.stopSkillEffects(7029);
        if (val == 0 && admin.getFirstEffect(7029) != null)
          admin.sendPacket(
              new SystemMessage(SystemMessageId.EFFECT_S1_DISAPPEARED).addSkillName(7029));
        else if ((val >= 1) && (val <= 4)) {
          L2Skill gmSpeedSkill = SkillTable.getInstance().getInfo(7029, val);
          admin.doSimultaneousCast(gmSpeedSkill);
        }
      } catch (Exception e) {
        admin.sendMessage("Используйте: //gmspeed [0-4]");
      } finally {
        admin.updateEffectIcons();
      }
      return;
    } else if (command.equals("social") || command.equals("social_menu")) {
      if (command.equals("social_menu")) {
        sendHtml(admin, "submenus/social_menu");
        return;
      }

      try {
        if (params.length == 3) {
          int social = Integer.parseInt(params[1]);
          int radius = Integer.parseInt(params[2]);

          for (L2PcInstance pl : admin.getKnownList().getKnownPlayersInRadius(radius)) {
            if (pl == null
                || pl.isAlikeDead()
                || pl.isOfflineTrade()
                || pl.isTeleporting()
                || pl.inPrivateMode()) continue;
            performSocial(social, pl, admin);
          }
          admin.sendMessage("Социальное дествие отправлено всем в радиусе " + radius);
        } else if (params.length == 2) {
          int social = Integer.parseInt(params[1]);
          L2Object obj = admin.getTarget();
          if (obj == null) obj = admin;

          performSocial(social, obj, admin);
        }
      } catch (Exception e) {
        admin.sendMessage("Используйте: //social [id]");
      }
      sendHtml(admin, "submenus/social_menu");
      return;
    } else if (command.equals("abnormal") || command.equals("abnormal_menu")) {
      if (command.equals("abnormal_menu")) {
        sendHtml(admin, "submenus/abnormal_menu");
        return;
      }

      try {
        if (params.length == 3) {
          int abnormal = Integer.decode("0x" + params[1]);
          int radius = Integer.parseInt(params[2]);

          for (L2PcInstance pl : admin.getKnownList().getKnownPlayersInRadius(radius)) {
            if (pl == null
                || pl.isAlikeDead()
                || pl.isOfflineTrade()
                || pl.isTeleporting()
                || pl.inPrivateMode()) continue;
            performAbnormal(abnormal, pl);
          }
          admin.sendMessage("Эффект отправлен всем в радиусе " + radius);
        } else if (params.length == 2) {
          int abnormal = Integer.decode("0x" + params[1]);
          L2Object obj = admin.getTarget();
          if (obj == null) obj = admin;

          performAbnormal(abnormal, obj);
        }
      } catch (Exception e) {
        admin.sendMessage("Используйте: //social [id]");
      }
      sendHtml(admin, "submenus/abnormal_menu");
      return;
    }
  }