예제 #1
0
  public static synchronized void setNewOlympiadEnd() {
    Announcements.getInstance()
        .announceToAll(
            new SystemMessage(SystemMessage.OLYMPIAD_PERIOD_S1_HAS_STARTED)
                .addNumber(Olympiad._currentCycle));

    Calendar currentTime = Calendar.getInstance();
    currentTime.set(Calendar.DAY_OF_MONTH, 1);
    currentTime.add(Calendar.MONTH, 1);
    currentTime.set(Calendar.HOUR_OF_DAY, 00);
    currentTime.set(Calendar.MINUTE, 00);
    Olympiad._olympiadEnd = currentTime.getTimeInMillis();

    Calendar nextChange = Calendar.getInstance();
    Olympiad._nextWeeklyChange = nextChange.getTimeInMillis() + Config.ALT_OLY_WPERIOD;

    Olympiad._isOlympiadEnd = false;
  }
예제 #2
0
  public static String banChat(
      Player adminChar, String adminName, String charName, int val, String reason) {
    Player player = World.getPlayer(charName);

    if (player != null) {
      charName = player.getName();
    } else if (CharacterDAO.getInstance().getObjectIdByName(charName) == 0) {
      return "Игрок " + charName + " не найден.";
    }

    if ((adminName == null || adminName.isEmpty()) && adminChar != null) {
      adminName = adminChar.getName();
    }

    if (reason == null || reason.isEmpty()) {
      reason = "не указана"; // if no args, then "не указана" default.
    }

    String result, announce = null;
    if (val == 0) // unban
    {
      if (adminChar != null && !adminChar.getPlayerAccess().CanUnBanChat) {
        return "Вы не имеете прав на снятие бана чата.";
      }
      if (Config.BANCHAT_ANNOUNCE) {
        announce =
            Config.BANCHAT_ANNOUNCE_NICK && adminName != null && !adminName.isEmpty()
                ? adminName + " снял бан чата с игрока " + charName + "."
                : "С игрока " + charName + " снят бан чата.";
      }
      Log.add(adminName + " снял бан чата с игрока " + charName + ".", "banchat", adminChar);
      result = "Вы сняли бан чата с игрока " + charName + ".";
    } else if (val < 0) {
      if (adminChar != null && adminChar.getPlayerAccess().BanChatMaxValue > 0) {
        return "Вы можете банить не более чем на "
            + adminChar.getPlayerAccess().BanChatMaxValue
            + " минут.";
      }
      if (Config.BANCHAT_ANNOUNCE) {
        announce =
            Config.BANCHAT_ANNOUNCE_NICK && adminName != null && !adminName.isEmpty()
                ? adminName
                    + " забанил чат игроку "
                    + charName
                    + " на бессрочный период, причина: "
                    + reason
                    + "."
                : "Забанен чат игроку "
                    + charName
                    + " на бессрочный период, причина: "
                    + reason
                    + ".";
      }
      Log.add(
          adminName
              + " забанил чат игроку "
              + charName
              + " на бессрочный период, причина: "
              + reason
              + ".",
          "banchat",
          adminChar);
      result = "Вы забанили чат игроку " + charName + " на бессрочный период.";
    } else {
      if (adminChar != null
          && !adminChar.getPlayerAccess().CanUnBanChat
          && (player == null || player.getNoChannel() != 0)) {
        return "Вы не имеете права изменять время бана.";
      }
      if (adminChar != null
          && adminChar.getPlayerAccess().BanChatMaxValue != -1
          && val > adminChar.getPlayerAccess().BanChatMaxValue) {
        return "Вы можете банить не более чем на "
            + adminChar.getPlayerAccess().BanChatMaxValue
            + " минут.";
      }
      if (Config.BANCHAT_ANNOUNCE) {
        announce =
            Config.BANCHAT_ANNOUNCE_NICK && adminName != null && !adminName.isEmpty()
                ? adminName
                    + " забанил чат игроку "
                    + charName
                    + " на "
                    + val
                    + " минут, причина: "
                    + reason
                    + "."
                : "Забанен чат игроку "
                    + charName
                    + " на "
                    + val
                    + " минут, причина: "
                    + reason
                    + ".";
      }
      Log.add(
          adminName
              + " забанил чат игроку "
              + charName
              + " на "
              + val
              + " минут, причина: "
              + reason
              + ".",
          "banchat",
          adminChar);
      result = "Вы забанили чат игроку " + charName + " на " + val + " минут.";
    }

    if (player != null) {
      updateNoChannel(player, val, reason);
    } else {
      AutoBan.ChatBan(charName, val, reason, adminName);
    }

    if (announce != null) {
      if (Config.BANCHAT_ANNOUNCE_FOR_ALL_WORLD) {
        Announcements.getInstance().announceToAll(announce);
      } else {
        Announcements.shout(adminChar, announce, ChatType.CRITICAL_ANNOUNCE);
      }
    }

    return result;
  }