Fixed clan entry invitations.

This commit is contained in:
MobiusDev
2018-09-09 23:52:36 +00:00
parent 870d0c2726
commit 3efc7c11df
12 changed files with 462 additions and 174 deletions

View File

@ -17,17 +17,20 @@
package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.instancemanager.CastleManager;
import com.l2jmobius.gameserver.instancemanager.ClanEntryManager;
import com.l2jmobius.gameserver.instancemanager.FortManager;
import com.l2jmobius.gameserver.model.L2Clan;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.clan.entry.PledgeRecruitInfo;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.ExPledgeCount;
import com.l2jmobius.gameserver.network.serverpackets.JoinPledge;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAdd;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
/**
* @author Mobius
@ -59,16 +62,37 @@ public class RequestPledgeSignInForOpenJoiningMethod implements IClientIncomingP
final L2Clan clan = pledgeRecruitInfo.getClan();
if ((clan != null) && (activeChar.getClan() == null))
{
clan.addClanMember(activeChar);
activeChar.sendPacket(new JoinPledge(_clanId));
activeChar.sendPacket(new UserInfo(activeChar));
activeChar.broadcastInfo();
activeChar.sendPacket(new JoinPledge(clan.getId()));
// update clan list
clan.broadcastToOnlineMembers(new PledgeShowMemberListUpdate(activeChar));
PledgeShowMemberListAll.sendAllTo(activeChar);
// activeChar.setPowerGrade(9); // academy
activeChar.setPowerGrade(5); // New member starts at 5, not confirmed.
clan.addClanMember(activeChar);
activeChar.setClanPrivileges(activeChar.getClan().getRankPrivs(activeChar.getPowerGrade()));
activeChar.sendPacket(SystemMessageId.ENTERED_THE_CLAN);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HAS_JOINED_THE_CLAN);
sm.addString(activeChar.getName());
clan.broadcastToOnlineMembers(sm);
if (clan.getCastleId() > 0)
{
CastleManager.getInstance().getCastleByOwner(clan).giveResidentialSkills(activeChar);
}
if (clan.getFortId() > 0)
{
FortManager.getInstance().getFortByOwner(clan).giveResidentialSkills(activeChar);
}
activeChar.sendSkillList();
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListAdd(activeChar), activeChar);
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
activeChar.sendPacket(new PledgeSkillList(clan));
// This activates the clan tab on the new member.
PledgeShowMemberListAll.sendAllTo(activeChar);
activeChar.setClanJoinExpiryTime(0);
activeChar.broadcastUserInfo();
}
}
}

View File

@ -17,18 +17,20 @@
package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.enums.UserInfoType;
import com.l2jmobius.gameserver.instancemanager.CastleManager;
import com.l2jmobius.gameserver.instancemanager.ClanEntryManager;
import com.l2jmobius.gameserver.instancemanager.FortManager;
import com.l2jmobius.gameserver.model.L2Clan;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.ExPledgeCount;
import com.l2jmobius.gameserver.network.serverpackets.JoinPledge;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAdd;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
/**
* @author Sdw
@ -63,20 +65,42 @@ public class RequestPledgeWaitingUserAccept implements IClientIncomingPacket
if ((player != null) && (player.getClan() == null))
{
final L2Clan clan = activeChar.getClan();
clan.addClanMember(player);
player.sendPacket(new JoinPledge(_clanId));
final UserInfo ui = new UserInfo(player);
ui.addComponentType(UserInfoType.CLAN);
player.sendPacket(ui);
player.broadcastInfo();
if (clan != null)
{
player.sendPacket(new JoinPledge(clan.getId()));
// activeChar.setPowerGrade(9); // academy
player.setPowerGrade(5); // New member starts at 5, not confirmed.
clan.addClanMember(player);
player.setClanPrivileges(player.getClan().getRankPrivs(player.getPowerGrade()));
player.sendPacket(SystemMessageId.ENTERED_THE_CLAN);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HAS_JOINED_THE_CLAN);
sm.addString(player.getName());
clan.broadcastToOnlineMembers(sm);
if (clan.getCastleId() > 0)
{
CastleManager.getInstance().getCastleByOwner(clan).giveResidentialSkills(player);
}
if (clan.getFortId() > 0)
{
FortManager.getInstance().getFortByOwner(clan).giveResidentialSkills(player);
}
player.sendSkillList();
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListAdd(player), player);
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
// This activates the clan tab on the new member.
PledgeShowMemberListAll.sendAllTo(player);
player.setClanJoinExpiryTime(0);
player.broadcastUserInfo();
}
// update clan list
clan.broadcastToOnlineMembers(new PledgeShowMemberListUpdate(player));
PledgeShowMemberListAll.sendAllTo(player);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
player.sendPacket(new PledgeSkillList(clan));
ClanEntryManager.getInstance().removePlayerApplication(clan.getId(), _playerId);
ClanEntryManager.getInstance().removePlayerApplication(_clanId, _playerId);
}
}
else