Clan packet rework.
Contributed by rocknowx.
This commit is contained in:
@ -22,7 +22,6 @@ import com.l2jserver.gameserver.model.L2Clan;
|
||||
|
||||
public class ManagePledgePower extends L2GameServerPacket
|
||||
{
|
||||
|
||||
private final int _action;
|
||||
private final L2Clan _clan;
|
||||
private final int _rank;
|
||||
@ -37,12 +36,9 @@ public class ManagePledgePower extends L2GameServerPacket
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
if (_action == 1)
|
||||
{
|
||||
writeC(0x2A);
|
||||
writeD(_rank);
|
||||
writeD(_action);
|
||||
writeD(_clan.getRankPrivs(_rank).getBitmask());
|
||||
}
|
||||
writeC(0x2A);
|
||||
writeD(_rank);
|
||||
writeD(_action);
|
||||
writeD(_clan.getRankPrivs(_rank).getBitmask());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J Server
|
||||
*
|
||||
* This file is part of L2J Server.
|
||||
*
|
||||
* L2J Server is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J Server is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class PledgeReceiveUpdatePower extends L2GameServerPacket
|
||||
{
|
||||
private final int _level;
|
||||
|
||||
public PledgeReceiveUpdatePower(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0xFE);
|
||||
writeH(0x43);
|
||||
writeD(_level);
|
||||
}
|
||||
}
|
@ -24,45 +24,71 @@ import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2Clan.SubPledge;
|
||||
import com.l2jserver.gameserver.model.L2ClanMember;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
public class PledgeShowMemberListAll extends L2GameServerPacket
|
||||
{
|
||||
private final L2Clan _clan;
|
||||
private final SubPledge _subPledge;
|
||||
private final Collection<L2ClanMember> _members;
|
||||
private int _pledgeType;
|
||||
|
||||
public PledgeShowMemberListAll(L2Clan clan)
|
||||
{
|
||||
_clan = clan;
|
||||
_subPledge = null;
|
||||
_members = _clan.getMembers();
|
||||
}
|
||||
|
||||
public PledgeShowMemberListAll(L2Clan clan, SubPledge subPledge)
|
||||
{
|
||||
_clan = clan;
|
||||
_subPledge = subPledge;
|
||||
_members = _clan.getMembers();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
// write main Clan
|
||||
writePledge(null, _clan.getLeaderName());
|
||||
|
||||
for (SubPledge subPledge : _clan.getAllSubPledges())
|
||||
if (_subPledge == null)
|
||||
{
|
||||
L2PcInstance pLeader = L2World.getInstance().getPlayer(subPledge.getLeaderId());
|
||||
writePledge(subPledge, (pLeader == null ? "" : pLeader.getName()));
|
||||
// write main Clan
|
||||
writePledge(null, _clan.getName(), _clan.getLeaderName());
|
||||
|
||||
for (SubPledge subPledge : _clan.getAllSubPledges())
|
||||
{
|
||||
getClient().sendPacket(new PledgeShowMemberListAll(_clan, subPledge));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
writePledge(_subPledge, _subPledge.getName(), getLeaderName());
|
||||
}
|
||||
}
|
||||
|
||||
private void writePledge(SubPledge pledge, String name)
|
||||
private void writePledge(SubPledge pledge, String name, String ldname)
|
||||
{
|
||||
final int pledgeId = (pledge == null ? 0x00 : pledge.getId());
|
||||
_pledgeType = (pledge == null ? 0x00 : pledge.getId());
|
||||
writeC(0x5a);
|
||||
|
||||
writeD(pledge == null ? 0 : 1);
|
||||
String _name = "";
|
||||
for (SubPledge subPledge : _clan.getAllSubPledges())
|
||||
{
|
||||
_name = subPledge.getName();
|
||||
}
|
||||
if ((_name == "") || (_name == name))
|
||||
{
|
||||
writeD(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
writeD(1);
|
||||
}
|
||||
writeD(_clan.getId());
|
||||
writeD(Config.SERVER_ID);
|
||||
writeD(pledgeId);
|
||||
writeS(_clan.getName());
|
||||
writeS(_clan.getLeaderName());
|
||||
writeD(_pledgeType);
|
||||
writeS(name);
|
||||
writeS(ldname);
|
||||
|
||||
writeD(_clan.getCrestId()); // crest id .. is used again
|
||||
writeD(_clan.getLevel());
|
||||
@ -103,6 +129,25 @@ public class PledgeShowMemberListAll extends L2GameServerPacket
|
||||
}
|
||||
writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline
|
||||
writeD(m.getSponsor() != 0 ? 1 : 0);
|
||||
writeC(0x00);
|
||||
}
|
||||
}
|
||||
|
||||
private String getLeaderName()
|
||||
{
|
||||
int LeaderId = _subPledge.getLeaderId();
|
||||
if ((_subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) || (LeaderId == 0))
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else if (_clan.getClanMember(LeaderId) == null)
|
||||
{
|
||||
_log.warning("SubPledgeLeader: " + LeaderId + " is missing from clan: " + _clan.getName() + "[" + _clan.getId() + "]");
|
||||
return "";
|
||||
}
|
||||
else
|
||||
{
|
||||
return _clan.getClanMember(LeaderId).getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -98,5 +98,6 @@ public final class PledgeShowMemberListUpdate extends L2GameServerPacket
|
||||
writeD(0);
|
||||
}
|
||||
writeD(_hasSponsor);
|
||||
writeC(0);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user