Core/PacketIO: Updated to 11.0.0
Port From (https://github.com/TrinityCore/TrinityCore/commit/e59eef5432c7b70679d33f4911c88d0f7d75fd39)
This commit is contained in:
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user