Core/PacketIO: Updated to 11.0.0

Port From (https://github.com/TrinityCore/TrinityCore/commit/e59eef5432c7b70679d33f4911c88d0f7d75fd39)
This commit is contained in:
Hondacrx
2024-09-02 18:44:55 -04:00
parent bd0d40fa13
commit f38ad4607e
74 changed files with 4980 additions and 3595 deletions
+1 -1
View File
@@ -982,7 +982,7 @@ namespace Game
SendPacket(commodityQuoteResult);
}
public void SendAuctionHello(ObjectGuid guid, Creature unit)
public void SendAuctionHello(ObjectGuid guid, Unit unit)
{
if (GetPlayer().GetLevel() < WorldConfig.GetIntValue(WorldCfg.AuctionLevelReq))
{
+30 -6
View File
@@ -21,6 +21,9 @@ namespace Game
return;
}
if (packet.BankType != BankType.Character)
return;
Item item = GetPlayer().GetItemByPos(packet.Bag, packet.Slot);
if (item == null)
return;
@@ -45,19 +48,40 @@ namespace Game
}
[WorldPacketHandler(ClientOpcodes.BankerActivate, Processing = PacketProcessing.Inplace)]
void HandleBankerActivate(Hello packet)
void HandleBankerActivate(BankerActivate bankerActivate)
{
Creature unit = GetPlayer().GetNPCIfCanInteractWith(packet.Unit, NPCFlags.Banker, NPCFlags2.None);
if (bankerActivate.InteractionType != PlayerInteractionType.Banker)
return;
Creature unit = GetPlayer().GetNPCIfCanInteractWith(bankerActivate.Banker, NPCFlags.AccountBanker | NPCFlags.Banker, NPCFlags2.None);
if (unit == null)
{
Log.outError(LogFilter.Network, "HandleBankerActivate: {0} not found or you can not interact with him.", packet.Unit.ToString());
Log.outError(LogFilter.Network, $"HandleBankerActivate: {bankerActivate.Banker} not found or you can not interact with him.");
return;
}
switch (bankerActivate.InteractionType)
{
case PlayerInteractionType.Banker:
if (!unit.HasNpcFlag(NPCFlags.AccountBanker) || !unit.HasNpcFlag(NPCFlags.Banker))
return;
break;
case PlayerInteractionType.CharacterBanker:
if (!unit.HasNpcFlag(NPCFlags.Banker))
return;
break;
case PlayerInteractionType.AccountBanker:
if (!unit.HasNpcFlag(NPCFlags.AccountBanker))
return;
break;
default:
break;
}
if (GetPlayer().HasUnitState(UnitState.Died))
GetPlayer().RemoveAurasByType(AuraType.FeignDeath);
SendShowBank(packet.Unit);
SendShowBank(bankerActivate.Banker, bankerActivate.InteractionType);
}
[WorldPacketHandler(ClientOpcodes.AutostoreBankItem, Processing = PacketProcessing.Inplace)]
@@ -281,13 +305,13 @@ namespace Game
}
}
public void SendShowBank(ObjectGuid guid)
public void SendShowBank(ObjectGuid guid, PlayerInteractionType interactionType)
{
_player.PlayerTalkClass.GetInteractionData().Reset();
_player.PlayerTalkClass.GetInteractionData().SourceGuid = guid;
NPCInteractionOpenResult npcInteraction = new();
npcInteraction.Npc = guid;
npcInteraction.InteractionType = PlayerInteractionType.Banker;
npcInteraction.InteractionType = interactionType;
npcInteraction.Success = true;
SendPacket(npcInteraction);
}
+2 -2
View File
@@ -70,7 +70,7 @@ namespace Game
{
do
{
EnumCharactersResult.CharacterInfo charInfo = new(result.GetFields());
EnumCharactersResult.CharacterInfoBasic charInfo = new(result.GetFields());
var customizationsForChar = customizations.LookupByKey(charInfo.Guid.GetCounter());
if (!customizationsForChar.Empty())
@@ -149,7 +149,7 @@ namespace Game
{
do
{
EnumCharactersResult.CharacterInfo charInfo = new(result.GetFields());
EnumCharactersResult.CharacterInfoBasic charInfo = new(result.GetFields());
Log.outInfo(LogFilter.Network, "Loading undeleted char guid {0} from account {1}.", charInfo.Guid.ToString(), GetAccountId());
+20 -3
View File
@@ -646,8 +646,24 @@ namespace Game
if (group == null)
return false;
if (group.IsRestrictPingsToAssistants() && !group.IsLeader(player.GetGUID()) && !group.IsAssistant(player.GetGUID()))
return false;
if (group.IsLeader(player.GetGUID()))
return true;
switch (group.GetRestrictPings())
{
case RestrictPingsTo.None:
return true;
case RestrictPingsTo.Lead:
return false;
case RestrictPingsTo.Assist:
if (!group.IsAssistant(player.GetGUID()))
return false;
break;
case RestrictPingsTo.TankHealer:
if (!group.GetLfgRoles(player.GetGUID()).HasAnyFlag(LfgRoles.Tank | LfgRoles.Healer))
return false;
break;
}
return true;
}
@@ -662,7 +678,7 @@ namespace Game
if (!group.IsLeader(GetPlayer().GetGUID()))
return;
group.SetRestrictPingsToAssistants(setRestrictPingsToAssistants.RestrictPingsToAssistants);
group.SetRestrictPingsTo(setRestrictPingsToAssistants.RestrictTo);
}
[WorldPacketHandler(ClientOpcodes.SendPingUnit)]
@@ -709,6 +725,7 @@ namespace Game
broadcastPingWorldPoint.Point = pingWorldPoint.Point;
broadcastPingWorldPoint.Type = pingWorldPoint.Type;
broadcastPingWorldPoint.PinFrameID = pingWorldPoint.PinFrameID;
broadcastPingWorldPoint.Transport = pingWorldPoint.Transport;
broadcastPingWorldPoint.Write();
for (GroupReference itr = group.GetFirstMember(); itr != null; itr = itr.Next())
+7
View File
@@ -1062,6 +1062,13 @@ namespace Game
GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
}
void HandleSortAccountBankBags(SortAccountBankBags sortAccountBankBags)
{
// TODO: Implement sorting
// Placeholder to prevent completely locking out bags clientside
SendPacket(new BagCleanupFinished());
}
[WorldPacketHandler(ClientOpcodes.SortBags, Processing = PacketProcessing.Inplace)]
void HandleSortBags(SortBags sortBags)
{
+1
View File
@@ -462,6 +462,7 @@ namespace Game
packet.MapID = loc.Location.GetMapId();
packet.Loc.Pos = loc.Location;
packet.Reason = (uint)(!_player.IsBeingTeleportedSeamlessly() ? NewWorldReason.Normal : NewWorldReason.Seamless);
packet.Counter = _player.GetNewWorldCounter();
SendPacket(packet);
if (_player.IsBeingTeleportedSeamlessly())