mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-30 16:17:46 +00:00
Improved chat channel join calles.
This commit is contained in:
parent
c5ed71325b
commit
b7ad7965a7
5 changed files with 16 additions and 16 deletions
|
@ -994,13 +994,13 @@ namespace Sapphire::Common
|
||||||
|
|
||||||
namespace Ls
|
namespace Ls
|
||||||
{
|
{
|
||||||
enum LinkshellHierarchyShifted : int32_t
|
enum LinkshellHierarchy : int32_t
|
||||||
{
|
{
|
||||||
None1 = 0x0,
|
None1 = 0x0,
|
||||||
Master = 0x900,
|
Master = 0x1,
|
||||||
Leader = 0xa00,
|
Leader = 0x2,
|
||||||
Member = 0xb00,
|
Member = 0x3,
|
||||||
Invite = 0xc00,
|
Invite = 0x4,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,7 @@ Sapphire::LinkshellPtr Sapphire::World::Manager::LinkshellMgr::createLinkshell(
|
||||||
{
|
{
|
||||||
auto& chatChannelMgr = Common::Service< Manager::ChatChannelMgr >::ref();
|
auto& chatChannelMgr = Common::Service< Manager::ChatChannelMgr >::ref();
|
||||||
auto chatChannelId = chatChannelMgr.createChatChannel( Common::ChatChannelType::LinkshellChat );
|
auto chatChannelId = chatChannelMgr.createChatChannel( Common::ChatChannelType::LinkshellChat );
|
||||||
|
chatChannelMgr.addPlayerToChannel( chatChannelId, player );
|
||||||
|
|
||||||
uint64_t linkshellId = 1;
|
uint64_t linkshellId = 1;
|
||||||
|
|
||||||
|
@ -271,19 +272,23 @@ void LinkshellMgr::sendLinkshellList( Entity::Player& player )
|
||||||
|
|
||||||
auto lsVec = getPlayerLinkshells( player );
|
auto lsVec = getPlayerLinkshells( player );
|
||||||
|
|
||||||
|
uint32_t chatFlag = player.isLogin() ? 0 : 1ul << 11;
|
||||||
|
|
||||||
for( int i = 0; i < lsVec.size(); ++i )
|
for( int i = 0; i < lsVec.size(); ++i )
|
||||||
{
|
{
|
||||||
auto pLs = lsVec[ i ];
|
auto pLs = lsVec[ i ];
|
||||||
uint32_t hierarchy = 0;
|
uint32_t hierarchy = 0;
|
||||||
|
|
||||||
if( pLs->getMasterId() == player.getCharacterId() )
|
if( pLs->getMasterId() == player.getCharacterId() )
|
||||||
hierarchy = Ls::LinkshellHierarchyShifted::Master;
|
hierarchy = Ls::LinkshellHierarchy::Master << 8;
|
||||||
else if( pLs->getLeaderIdList().count( player.getCharacterId() ) )
|
else if( pLs->getLeaderIdList().count( player.getCharacterId() ) )
|
||||||
hierarchy = Ls::LinkshellHierarchyShifted::Leader;
|
hierarchy = Ls::LinkshellHierarchy::Leader << 8;
|
||||||
else if( pLs->getInviteIdList().count( player.getCharacterId() ) )
|
else if( pLs->getInviteIdList().count( player.getCharacterId() ) )
|
||||||
hierarchy = Ls::LinkshellHierarchyShifted::Invite;
|
hierarchy = Ls::LinkshellHierarchy::Invite << 8;
|
||||||
else
|
else
|
||||||
hierarchy = Ls::LinkshellHierarchyShifted::Member;
|
hierarchy = Ls::LinkshellHierarchy::Member << 8;
|
||||||
|
|
||||||
|
hierarchy |= chatFlag;
|
||||||
|
|
||||||
linkshellListPacket->data().LinkshellList[ i ].LinkshellID = pLs->getId();
|
linkshellListPacket->data().LinkshellList[ i ].LinkshellID = pLs->getId();
|
||||||
linkshellListPacket->data().LinkshellList[ i ].ChannelID = pLs->getChatChannel();
|
linkshellListPacket->data().LinkshellList[ i ].ChannelID = pLs->getChatChannel();
|
||||||
|
|
|
@ -804,12 +804,6 @@ bool Sapphire::World::Manager::TerritoryMgr::joinWorld( Sapphire::Entity::Player
|
||||||
player.setRot( 0.0f );
|
player.setRot( 0.0f );
|
||||||
}
|
}
|
||||||
|
|
||||||
auto& chatChannelMgr = Common::Service< Manager::ChatChannelMgr >::ref();
|
|
||||||
auto& linkshellMgr = Common::Service< Manager::LinkshellMgr >::ref();
|
|
||||||
auto lsList = linkshellMgr.getPlayerLinkshells( player );
|
|
||||||
for( auto& ls : lsList )
|
|
||||||
chatChannelMgr.addPlayerToChannel( ls->getChatChannel(), player );
|
|
||||||
|
|
||||||
if( !movePlayer( pCurrZone, player ) )
|
if( !movePlayer( pCurrZone, player ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,8 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
|
||||||
{
|
{
|
||||||
player.finishZoning();
|
player.finishZoning();
|
||||||
player.setLoadingComplete( true );
|
player.setLoadingComplete( true );
|
||||||
|
if( player.isLogin() )
|
||||||
|
player.setIsLogin( false );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -459,7 +459,6 @@ void Sapphire::Network::GameConnection::setLanguageHandler( const Packets::FFXIV
|
||||||
{
|
{
|
||||||
// fire the onLogin Event
|
// fire the onLogin Event
|
||||||
playerMgr.onLogin( player );
|
playerMgr.onLogin( player );
|
||||||
player.setIsLogin( false );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// spawn the player for himself
|
// spawn the player for himself
|
||||||
|
|
Loading…
Add table
Reference in a new issue