1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-13 05:57:45 +00:00

Added packethandler for linkshell leave / invite decline

This commit is contained in:
Mordred 2021-12-05 00:04:11 +01:00
parent 47df62f0b4
commit 55f9b0219f
5 changed files with 54 additions and 1 deletions

View file

@ -415,6 +415,49 @@ struct FFXIVIpcLinkshellJoin : FFXIVIpcBasePacket< LinkshellJoin >
char MemberCharacterName[32]; char MemberCharacterName[32];
}; };
struct FFXIVIpcLinkshellLeave : FFXIVIpcBasePacket< LinkshellLeave >
{
uint64_t LinkshellID;
};
struct FFXIVIpcLinkshellJoinOfficial : FFXIVIpcBasePacket< LinkshellJoinOfficial >
{
uint64_t LinkshellID;
};
struct FFXIVIpcLinkshellChangeMaster : FFXIVIpcBasePacket< LinkshellChangeMaster >
{
uint64_t LinkshellID;
uint64_t NextMasterCharacterID;
char NextMasterCharacterName[32];
};
struct FFXIVIpcLinkshellKick : FFXIVIpcBasePacket< LinkshellKick >
{
uint64_t LinkshellID;
uint64_t LeaveCharacterID;
char LeaveCharacterName[32];
};
struct FFXIVIpcLinkshellAddLeader : FFXIVIpcBasePacket< LinkshellAddLeader >
{
uint64_t LinkshellID;
uint64_t MemberCharacterID;
char MemberCharacterName[32];
};
struct FFXIVIpcLinkshellRemoveLeader : FFXIVIpcBasePacket< LinkshellRemoveLeader >
{
uint64_t LinkshellID;
uint64_t MemberCharacterID;
char MemberCharacterName[32];
};
struct FFXIVIpcLinkshellDeclineLeader : FFXIVIpcBasePacket< LinkshellDeclineLeader >
{
uint64_t LinkshellID;
};
struct FFXIVIpcShopEventHandler : FFXIVIpcBasePacket< StartUIEvent > struct FFXIVIpcShopEventHandler : FFXIVIpcBasePacket< StartUIEvent >
{ {
/* 0000 */ uint32_t eventId; /* 0000 */ uint32_t eventId;

View file

@ -143,6 +143,8 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
setZoneHandler( FriendlistRemove, "FriendlistRemove", &GameConnection::friendlistRemoveHandler ); setZoneHandler( FriendlistRemove, "FriendlistRemove", &GameConnection::friendlistRemoveHandler );
setZoneHandler( SetFriendlistGroup, "SetFriendlistGroup", &GameConnection::setFriendlistGroupHandler ); setZoneHandler( SetFriendlistGroup, "SetFriendlistGroup", &GameConnection::setFriendlistGroupHandler );
setZoneHandler( LinkshellLeave, "LinkshellLeave", &GameConnection::linkshellLeaveHandler );
} }
Sapphire::Network::GameConnection::~GameConnection() = default; Sapphire::Network::GameConnection::~GameConnection() = default;

View file

@ -219,6 +219,8 @@ namespace Sapphire::Network
DECLARE_HANDLER( friendlistRemoveHandler ); DECLARE_HANDLER( friendlistRemoveHandler );
DECLARE_HANDLER( setFriendlistGroupHandler ); DECLARE_HANDLER( setFriendlistGroupHandler );
DECLARE_HANDLER( linkshellLeaveHandler );
}; };
} }

View file

@ -60,4 +60,4 @@ void Sapphire::Network::GameConnection::setFriendlistGroupHandler( const Packets
return; return;
flMgr.onAssignGroup( player, *target, data.group ); flMgr.onAssignGroup( player, *target, data.group );
} }

View file

@ -30,4 +30,10 @@ void Sapphire::Network::GameConnection::linkshellJoinHandler( const Packets::FFX
auto& lsMgr = Common::Service< LinkshellMgr >::ref(); auto& lsMgr = Common::Service< LinkshellMgr >::ref();
auto charName = std::string( lsJoinPacket.data().MemberCharacterName ); auto charName = std::string( lsJoinPacket.data().MemberCharacterName );
lsMgr.invitePlayer( charName, lsJoinPacket.data().LinkshellID ); lsMgr.invitePlayer( charName, lsJoinPacket.data().LinkshellID );
}
void Sapphire::Network::GameConnection::linkshellLeaveHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )
{
const auto lsLeavePacket = ZoneChannelPacket< Client::FFXIVIpcLinkshellLeave >( inPacket );
} }