One more clan issue fixed.
Contributed by rocknowx.
This commit is contained in:
@@ -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 (?,?,?,?)"))
|
||||||
|
@@ -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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user