mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-07-23 11:05:56 +02:00
Started implementing LS management. Rank change works.
This commit is contained in:
parent
68772a2011
commit
61e4effd74
10 changed files with 258 additions and 7 deletions
|
@ -149,6 +149,20 @@ namespace FFXIVClassic_World_Server
|
|||
return null;
|
||||
}
|
||||
|
||||
public Session GetSession(string targetSessionName)
|
||||
{
|
||||
lock (mZoneSessionList)
|
||||
{
|
||||
foreach (Session s in mZoneSessionList.Values)
|
||||
{
|
||||
if (s.characterName != null && s.characterName.Equals(targetSessionName))
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void OnReceiveSubPacketFromZone(ZoneServer zoneServer, SubPacket subpacket)
|
||||
{
|
||||
uint sessionId = subpacket.header.targetId;
|
||||
|
@ -235,9 +249,15 @@ namespace FFXIVClassic_World_Server
|
|||
PartyInvitePacket partyInvitePacket = new PartyInvitePacket(subpacket.data);
|
||||
if (partyInvitePacket.command == 1)
|
||||
mWorldManager.ProcessPartyInvite(GetSession(subpacket.header.sourceId), partyInvitePacket.actorId);
|
||||
else if (partyInvitePacket.command == 0)
|
||||
else if (partyInvitePacket.command == 0)
|
||||
{
|
||||
|
||||
Session inviteeByNamesSession = GetSession(partyInvitePacket.name);
|
||||
if (inviteeByNamesSession != null)
|
||||
mWorldManager.ProcessPartyInvite(GetSession(subpacket.header.sourceId), inviteeByNamesSession.sessionId);
|
||||
else
|
||||
{
|
||||
//Show not found msg
|
||||
}
|
||||
}
|
||||
break;
|
||||
//Group Invite Result
|
||||
|
@ -295,6 +315,21 @@ namespace FFXIVClassic_World_Server
|
|||
LinkshellInviteCancelPacket linkshellInviteCancelPacket = new LinkshellInviteCancelPacket(subpacket.data);
|
||||
mWorldManager.ProcessLinkshellInviteCancel(GetSession(subpacket.header.sourceId));
|
||||
break;
|
||||
//Linkshell resign/disband
|
||||
case 0x1031:
|
||||
LinkshellLeavePacket linkshellLeavePacket = new LinkshellLeavePacket(subpacket.data);
|
||||
Linkshell lsLeave = mWorldManager.GetLinkshellManager().GetLinkshell(linkshellLeavePacket.lsName);
|
||||
if (linkshellLeavePacket.isDisband)
|
||||
lsLeave.DisbandRequest(GetSession(subpacket.header.sourceId));
|
||||
else
|
||||
lsLeave.LeaveRequest(GetSession(subpacket.header.sourceId));
|
||||
break;
|
||||
//Linkshell rank change
|
||||
case 0x1032:
|
||||
LinkshellRankChangePacket linkshellRankChangePacket = new LinkshellRankChangePacket(subpacket.data);
|
||||
Linkshell lsRankChange = mWorldManager.GetLinkshellManager().GetLinkshell(linkshellRankChangePacket.lsName);
|
||||
lsRankChange.RankChangeRequest(GetSession(subpacket.header.sourceId), linkshellRankChangePacket.name, linkshellRankChangePacket.rank);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (mZoneSessionList.ContainsKey(sessionId))
|
||||
|
@ -460,5 +495,6 @@ namespace FFXIVClassic_World_Server
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue