コード例 #1
0
  @Override
  protected void runImpl() {
    int clan = clanStatus();
    int online = onlineStatus();
    GameClient client = getClient();
    if (clan > 0 || online > 0) {
      if (clan == 2)
        sendPacket(
            new CharacterDeleteFail(CharacterDeleteFail.REASON_CLAN_LEADERS_MAY_NOT_BE_DELETED));
      else if (clan == 1)
        sendPacket(
            new CharacterDeleteFail(CharacterDeleteFail.REASON_YOU_MAY_NOT_DELETE_CLAN_MEMBER));
      else if (online > 0)
        sendPacket(new CharacterDeleteFail(CharacterDeleteFail.REASON_DELETION_FAILED));

      CharacterSelectionInfo cl =
          new CharacterSelectionInfo(client.getLogin(), client.getSessionKey().playOkID1);
      sendPacket(cl);
      client.setCharSelection(cl.getCharInfo());
      return;
    }

    try {
      if (Config.DELETE_DAYS == 0) client.deleteChar(_charSlot);
      else client.markToDeleteChar(_charSlot);
    } catch (Exception e) {
      _log.error("Error:", e);
    }

    sendPacket(new CharacterDeleteSuccess());

    CharacterSelectionInfo cl =
        new CharacterSelectionInfo(client.getLogin(), client.getSessionKey().playOkID1);
    sendPacket(cl);
    sendPacket(new ExLoginVitalityEffectInfo(client.hasBonus(), 0)); // TODO: [Bonux].
    client.setCharSelection(cl.getCharInfo());
  }