One more clan issue fixed.

Contributed by rocknowx.
This commit is contained in:
MobiusDev
2015-11-26 20:27:01 +00:00
parent 20e11faffc
commit faf7e56f47
4 changed files with 32 additions and 24 deletions

View File

@@ -544,6 +544,19 @@ public class L2Clan implements IIdentifiable, INamable
return result; return result;
} }
public int getPowerGradeParty(int grade)
{
int result = 0;
for (L2ClanMember temp : _members.values())
{
if (temp.getPowerGrade() == grade)
{
result++;
}
}
return result;
}
/** /**
* @param pledgeType the Id of the pledge type. * @param pledgeType the Id of the pledge type.
* @return the maximum number of members allowed for a given {@code pledgeType}. * @return the maximum number of members allowed for a given {@code pledgeType}.
@@ -1736,20 +1749,17 @@ public class L2Clan implements IIdentifiable, INamable
public static class RankPrivs public static class RankPrivs
{ {
private final int _rankId; private final int _rankId;
private final int _party;// TODO find out what this stuff means and implement it
private final EnumIntBitmask<ClanPrivilege> _rankPrivs; private final EnumIntBitmask<ClanPrivilege> _rankPrivs;
public RankPrivs(int rank, int party, int privs) public RankPrivs(int rank, int privs)
{ {
_rankId = rank; _rankId = rank;
_party = party;
_rankPrivs = new EnumIntBitmask<>(ClanPrivilege.class, privs); _rankPrivs = new EnumIntBitmask<>(ClanPrivilege.class, privs);
} }
public RankPrivs(int rank, int party, EnumIntBitmask<ClanPrivilege> rankPrivs) public RankPrivs(int rank, EnumIntBitmask<ClanPrivilege> rankPrivs)
{ {
_rankId = rank; _rankId = rank;
_party = party;
_rankPrivs = rankPrivs; _rankPrivs = rankPrivs;
} }
@@ -1758,11 +1768,6 @@ public class L2Clan implements IIdentifiable, INamable
return _rankId; return _rankId;
} }
public int getParty()
{
return _party;
}
public EnumIntBitmask<ClanPrivilege> getPrivs() public EnumIntBitmask<ClanPrivilege> getPrivs()
{ {
return _rankPrivs; return _rankPrivs;
@@ -2005,7 +2010,7 @@ public class L2Clan implements IIdentifiable, INamable
{ {
for (int i = 1; i < 10; i++) for (int i = 1; i < 10; i++)
{ {
_privs.put(i, new RankPrivs(i, 0, new EnumIntBitmask<>(ClanPrivilege.class, false))); _privs.put(i, new RankPrivs(i, new EnumIntBitmask<>(ClanPrivilege.class, false)));
} }
} }
@@ -2058,7 +2063,7 @@ public class L2Clan implements IIdentifiable, INamable
} }
else else
{ {
_privs.put(rank, new RankPrivs(rank, 0, privs)); _privs.put(rank, new RankPrivs(rank, privs));
try (Connection con = ConnectionFactory.getInstance().getConnection(); try (Connection con = ConnectionFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO clan_privs (clan_id,rank,party,privs) VALUES (?,?,?,?)")) PreparedStatement ps = con.prepareStatement("INSERT INTO clan_privs (clan_id,rank,party,privs) VALUES (?,?,?,?)"))

View File

@@ -19,7 +19,6 @@
package com.l2jserver.gameserver.network.clientpackets; package com.l2jserver.gameserver.network.clientpackets;
import com.l2jserver.gameserver.model.L2Clan; import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Clan.RankPrivs;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.PledgePowerGradeList; import com.l2jserver.gameserver.network.serverpackets.PledgePowerGradeList;
@@ -40,12 +39,11 @@ public final class RequestPledgePowerGradeList extends L2GameClientPacket
@Override @Override
protected void runImpl() protected void runImpl()
{ {
L2PcInstance player = getClient().getActiveChar(); final L2PcInstance player = getClient().getActiveChar();
L2Clan clan = player.getClan(); final L2Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
RankPrivs[] privs = clan.getAllRankPrivs(); player.sendPacket(new PledgePowerGradeList(clan));
player.sendPacket(new PledgePowerGradeList(privs));
} }
} }

View File

@@ -81,7 +81,11 @@ public final class RequestPledgeSetMemberPowerGrade extends L2GameClientPacket
} }
member.setPowerGrade(_powerGrade); member.setPowerGrade(_powerGrade);
member.getPlayerInstance().sendPacket(new PledgeReceiveUpdatePower(member.getClan().getRankPrivs(_powerGrade).getBitmask())); L2PcInstance player = member.getPlayerInstance();
if (player != null)
{
player.sendPacket(new PledgeReceiveUpdatePower(member.getClan().getRankPrivs(_powerGrade).getBitmask()));
}
clan.broadcastToOnlineMembers(new PledgeReceiveMemberInfo(member)); clan.broadcastToOnlineMembers(new PledgeReceiveMemberInfo(member));
} }

View File

@@ -18,15 +18,16 @@
*/ */
package com.l2jserver.gameserver.network.serverpackets; package com.l2jserver.gameserver.network.serverpackets;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Clan.RankPrivs; import com.l2jserver.gameserver.model.L2Clan.RankPrivs;
public class PledgePowerGradeList extends L2GameServerPacket public class PledgePowerGradeList extends L2GameServerPacket
{ {
private final RankPrivs[] _privs; private final L2Clan _clan;
public PledgePowerGradeList(RankPrivs[] privs) public PledgePowerGradeList(L2Clan clan)
{ {
_privs = privs; _clan = clan;
} }
@Override @Override
@@ -34,11 +35,11 @@ public class PledgePowerGradeList extends L2GameServerPacket
{ {
writeC(0xFE); writeC(0xFE);
writeH(0x3D); writeH(0x3D);
writeD(_privs.length); writeD(_clan.getAllRankPrivs().length);
for (RankPrivs temp : _privs) for (RankPrivs temp : _clan.getAllRankPrivs())
{ {
writeD(temp.getRank()); writeD(temp.getRank());
writeD(temp.getParty()); writeD(_clan.getPowerGradeParty(temp.getRank()));
} }
} }
} }