/**
   * @see
   *     de.willuhn.jameica.messaging.MessageConsumer#handleMessage(de.willuhn.jameica.messaging.Message)
   */
  public void handleMessage(Message message) throws Exception {
    SystemMessage m = (SystemMessage) message;
    if (m.getStatusCode() != SystemMessage.SYSTEM_STARTED) return;

    // Machen wir im Hintergrund, dann blockiert es die UI nicht.
    Thread t =
        new Thread("bookmark-preload") {
          public void run() {
            try {
              BeanService service = Application.getBootLoader().getBootable(BeanService.class);
              BookmarkService bs = service.get(BookmarkService.class);
              bs.getBookmarks();
            } catch (Exception e) {
              Logger.error("unable to preload bookmarks", e);
            }
          }
        };
    t.start();
  }
  /**
   * this displays PledgeSkillList to the player.
   *
   * @param player
   */
  public void showPledgeSkillList(L2PcInstance player) {
    if (Config.DEBUG) {
      _log.info("PledgeSkillList activated on: " + getObjectId());
    }
    if (player.getClan() == null) return;

    L2PledgeSkillLearn[] skills = SkillTreeTable.getInstance().getAvailablePledgeSkills(player);
    AquireSkillList asl = new AquireSkillList(AquireSkillList.skillType.Clan);
    int counts = 0;

    for (L2PledgeSkillLearn s : skills) {
      int cost = s.getRepCost();
      counts++;

      asl.addSkill(s.getId(), s.getLevel(), s.getLevel(), cost, 0);
    }
    skills = null;

    if (counts == 0) {
      NpcHtmlMessage html = new NpcHtmlMessage(1);

      if (player.getClan().getLevel() < 8) {
        SystemMessage sm = new SystemMessage(SystemMessageId.DO_NOT_HAVE_FURTHER_SKILLS_TO_LEARN);
        sm.addNumber(player.getClan().getLevel() + 1);
        player.sendPacket(sm);
        sm = null;
      } else {
        TextBuilder sb = new TextBuilder();
        sb.append("<html><body>");
        sb.append("You've learned all skills available for your Clan.<br>");
        sb.append("</body></html>");
        html.setHtml(sb.toString());
        player.sendPacket(html);
        html = null;
        sb = null;
      }
    } else {
      player.sendPacket(asl);
    }

    asl = null;
    player.sendPacket(ActionFailed.STATIC_PACKET);
  }
  public static SystemMessage convert(BuildMessage buildMessage) {

    SystemMessage systemMessage = new SystemMessage();

    systemMessage.setMessageType(BUILD_SYSTEM_MESSAGE);
    systemMessage.setId(buildMessage.getId());
    systemMessage.setLevel(convert(buildMessage.getLevel()));
    systemMessage.setColumn(buildMessage.getColumn());
    systemMessage.setLine(buildMessage.getLine());
    systemMessage.setText(buildMessage.getText());
    systemMessage.setPath(buildMessage.getPath());
    return systemMessage;
  }
  public void assignSubPledgeLeader(L2PcInstance player, String clanName, String leaderName) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested to assign sub clan"
              + clanName
              + "leader "
              + "("
              + leaderName
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    if (leaderName.length() > 16) {
      player.sendPacket(new SystemMessage(SystemMessageId.NAMING_CHARNAME_UP_TO_16CHARS));
      return;
    }

    if (player.getName().equals(leaderName)) {
      player.sendPacket(
          new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
      return;
    }

    L2Clan clan = player.getClan();
    SubPledge subPledge = player.getClan().getSubPledge(clanName);
    if (null == subPledge) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (clan.getClanMember(leaderName) == null
        || clan.getClanMember(leaderName).getPledgeType() != 0) {
      if (subPledge.getId() >= L2Clan.SUBUNIT_KNIGHT1) {
        player.sendPacket(
            new SystemMessage(SystemMessageId.CAPTAIN_OF_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED));
      } else if (subPledge.getId() >= L2Clan.SUBUNIT_ROYAL1) {
        player.sendPacket(
            new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
      }
      return;
    }

    L2ClanMember leaderSubPledge = clan.getClanMember(leaderName);
    subPledge.setLeaderId(leaderSubPledge.getObjectId());
    clan.updateSubPledgeInDB(subPledge.getId());
    L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance();
    if (leaderPlayer != null) {
      leaderPlayer.setPledgeClass(leaderSubPledge.calculatePledgeClass(leaderPlayer));
      leaderPlayer.sendPacket(new UserInfo(leaderPlayer));
    }
    clan.broadcastClanStatus();
    SystemMessage sm = new SystemMessage(SystemMessageId.S1_HAS_BEEN_SELECTED_AS_CAPTAIN_OF_S2);
    sm.addString(leaderName);
    sm.addString(clanName);
    clan.broadcastToOnlineMembers(sm);
    sm = null;
    clan = null;
    subPledge = null;
    leaderPlayer = null;
    leaderSubPledge = null;
  }
  public void createSubPledge(
      L2PcInstance player, String clanName, String leaderName, int pledgeType, int minClanLvl) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested sub clan creation from "
              + getObjectId()
              + "("
              + getName()
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    L2Clan clan = player.getClan();
    if (clan.getLevel() < minClanLvl) {
      if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
        player.sendPacket(
            new SystemMessage(
                SystemMessageId.YOU_DO_NOT_MEET_CRITERIA_IN_ORDER_TO_CREATE_A_CLAN_ACADEMY));
      } else {
        player.sendPacket(
            new SystemMessage(
                SystemMessageId.YOU_DO_NOT_MEET_CRITERIA_IN_ORDER_TO_CREATE_A_MILITARY_UNIT));
      }
      return;
    }

    if (!Util.isAlphaNumeric(clanName) || 2 > clanName.length()) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (clanName.length() > 16) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_TOO_LONG));
      return;
    }
    for (L2Clan tempClan : ClanTable.getInstance().getClans()) {
      if (tempClan.getSubPledge(clanName) != null) {
        if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
          SystemMessage sm = new SystemMessage(SystemMessageId.S1_ALREADY_EXISTS);
          sm.addString(clanName);
          player.sendPacket(sm);
          sm = null;
        } else {
          player.sendPacket(
              new SystemMessage(SystemMessageId.ANOTHER_MILITARY_UNIT_IS_ALREADY_USING_THAT_NAME));
        }
        return;
      }
    }

    if (pledgeType != L2Clan.SUBUNIT_ACADEMY)
      if (clan.getClanMember(leaderName) == null
          || clan.getClanMember(leaderName).getPledgeType() != 0) {
        if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) {
          player.sendPacket(
              new SystemMessage(SystemMessageId.CAPTAIN_OF_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED));
        } else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) {
          player.sendPacket(
              new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
        }
        return;
      }

    int leaderId =
        clan.getClanMember(leaderName) != null ? clan.getClanMember(leaderName).getObjectId() : 0;

    if (clan.createSubPledge(player, pledgeType, leaderId, clanName) == null) return;

    SystemMessage sm;
    if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
      sm = new SystemMessage(SystemMessageId.THE_S1S_CLAN_ACADEMY_HAS_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) {
      sm = new SystemMessage(SystemMessageId.THE_KNIGHTS_OF_S1_HAVE_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) {
      sm = new SystemMessage(SystemMessageId.THE_ROYAL_GUARD_OF_S1_HAVE_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else {
      sm = new SystemMessage(SystemMessageId.CLAN_CREATED);
    }

    player.sendPacket(sm);
    if (pledgeType != L2Clan.SUBUNIT_ACADEMY) {
      L2ClanMember leaderSubPledge = clan.getClanMember(leaderName);
      if (leaderSubPledge.getPlayerInstance() == null) return;

      leaderSubPledge
          .getPlayerInstance()
          .setPledgeClass(
              leaderSubPledge.calculatePledgeClass(leaderSubPledge.getPlayerInstance()));
      leaderSubPledge
          .getPlayerInstance()
          .sendPacket(new UserInfo(leaderSubPledge.getPlayerInstance()));
    }
    clan = null;
    sm = null;
  }
  public void changeClanLeader(L2PcInstance player, String target) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested change a clan leader from "
              + getObjectId()
              + "("
              + getName()
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    if (player.isFlying()) {
      player.sendMessage("Get off the Wyvern first.");
      return;
    }

    if (player.getName().equalsIgnoreCase(target)) return;

    L2Clan clan = player.getClan();
    L2ClanMember member = clan.getClanMember(target);
    if (member == null) {
      SystemMessage sm = new SystemMessage(SystemMessageId.S1_DOES_NOT_EXIST);
      sm.addString(target);
      player.sendPacket(sm);
      sm = null;
      return;
    }

    if (!member.isOnline()) {
      player.sendPacket(new SystemMessage(SystemMessageId.INVITED_USER_NOT_ONLINE));
      return;
    }

    if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) {
      player.sendMessage("Can`t give to academy member.");
      return;
    }

    for (Siege siege : SiegeManager.getInstance().getSieges()) {
      if (!siege.getIsInProgress()) {
        continue;
      }

      if (siege.checkIsAttacker(clan) || siege.checkIsDefender(clan)) {
        player.sendMessage("You are not authorized to do that during the siege.");
        return;
      }
    }

    clan.setNewLeader(member);

    clan = null;
    member = null;
  }
Beispiel #7
0
  public void render() {
    this.map.update();
    stage.act(Gdx.graphics.getDeltaTime());
    stage.draw();

    this.mapInputListener.update();

    while (Client.getCurrentState() == this) {
      TopPacket packet = Network.getInstance().pollPacket();
      if (packet == null) break;

      if (packet.getType() == TopPacket.CHARACTER) {
        if (((CharacterPacket) packet).getType2() == CharacterPacket.Add) {
          Character entity = new Character(this, (CharacterPacket) packet);
          this.map.addEntity(entity);
        } else if (((CharacterPacket) packet).getType2() == CharacterPacket.Del) {
          Entity entity = getEntityByEntityId(((CharacterPacket) packet).getEntityId());
          this.map.removeEntity(entity);
        }
      } else if (packet.getType() == TopPacket.MONSTER) {
        if (((MonsterPacket) packet).getType2() == MonsterPacket.Add) {
          Monster monster = new Monster(this, (MonsterPacket) packet);
          this.map.addEntity(monster);
        } else if (((MonsterPacket) packet).getType2() == MonsterPacket.Del) {
          Entity entity = getEntityByEntityId(((MonsterPacket) packet).getEntityId());
          this.map.removeEntity(entity);
        }
      } else if (packet.getType() == TopPacket.MOVE) {
        Entity target = getEntityByEntityId(((MovePacket) packet).getEntityId());
        if (target == null) break;

        int src_x = ((MovePacket) packet).getSx();
        int src_y = ((MovePacket) packet).getSy();
        int dest_x = ((MovePacket) packet).getDx();
        int dest_y = ((MovePacket) packet).getDy();

        target.move(src_x, src_y, dest_x, dest_y);
      } else if (packet.getType() == TopPacket.UPDATE) {
        Entity target = getEntityByEntityId(((UpdatePacket) packet).getEntityId());
        if (target == null) break;

        target.update((UpdatePacket) packet);
      } else if (packet.getType() == TopPacket.CHAT) {
        chattingDialog.append((ChatPacket) packet);
      } else if (packet.getType() == TopPacket.PARTY) {
        PartyPacket p = (PartyPacket) packet;
        if (p.getType2() == PartyPacket.info) {
          centerCharacterParty = new Party();
          int[] entityIds = p.getPartyMemberEntityIds();
          for (int i = 0; i < p.getPartyNumber(); i++) {
            Character c = (Character) getEntityByEntityId(entityIds[i]);
            centerCharacterParty.addMember(c);
          }
        } else if (p.getType2() == PartyPacket.withdraw) {
          centerCharacterParty = null;
        } else if (p.getType2() == PartyPacket.add) {
          centerCharacterParty.addMember((Character) getEntityByEntityId(p.getTargetEntityId()));
        } else if (p.getType2() == PartyPacket.del) {
          centerCharacterParty.removeMember(p.getTargetEntityId());
        } else if (p.getType2() == PartyPacket.invite) {
          stage.addActor(new ServerMsgDialog("", skin, p));
        }
      } else if (packet.getType() == TopPacket.MESSAGE) {
        MessagePacket p = (MessagePacket) packet;
        MessageDialog m = getMessageDialogByTarget(p.getName());
        if (m == null) {
          m = new MessageDialog("", skin, p.getName());
          messages.add(m);
          stage.addActor(m);
        }
        m.append(p);
      } else if (packet.getType() == TopPacket.SERVER) {
        SystemMessage.getInstance()
            .show(((ServerMsg) packet).getMsg(), 2000, 1.0f, 1.0f, 1.0f, 1.0f);
      }
    }
  }