/// <inheritdoc/>
        public void HandlePacket(Player player, Span <byte> packet)
        {
            PlayerShopItemBuyRequest message = packet;

            if (Logger.IsDebugEnabled)
            {
                Logger.DebugFormat("BuyRequest, Player=[{0}], Packet=[{1}]", player.SelectedCharacter.Name, packet.AsString());
            }

            var requestedPlayer = player.CurrentMap.GetObject(message.PlayerId) as Player;

            if (requestedPlayer == null)
            {
                Logger.DebugFormat("Player not found: {0}", message.PlayerId);
                player.ViewPlugIns.GetPlugIn <IShowMessagePlugIn>()?.ShowMessage("Open Store: Player not found.", MessageType.BlueNormal);
                return;
            }

            if (message.PlayerName != requestedPlayer.SelectedCharacter.Name)
            {
                Logger.DebugFormat("Player Names dont match: {0} != {1}", message.PlayerName, requestedPlayer.SelectedCharacter.Name);
                player.ViewPlugIns.GetPlugIn <IShowMessagePlugIn>()?.ShowMessage($"Player Names don't match. {message.PlayerName} <> {requestedPlayer.SelectedCharacter.Name}", MessageType.BlueNormal);
                return;
            }

            this.buyAction.BuyItem(player, requestedPlayer, message.ItemSlot);
        }
        /// <inheritdoc/>
        public void HandlePacket(Player player, Span <byte> packet)
        {
            using var loggerScope = player.Logger.BeginScope(this.GetType());
            PlayerShopItemBuyRequest message = packet;

            if (player.CurrentMap.GetObject(message.PlayerId) is not Player requestedPlayer)
            {
                player.Logger.LogDebug("Player not found: {0}", message.PlayerId);
                player.ViewPlugIns.GetPlugIn <IShowMessagePlugIn>()?.ShowMessage("Open Store: Player not found.", MessageType.BlueNormal);
                return;
            }

            if (message.PlayerName != requestedPlayer.SelectedCharacter.Name)
            {
                player.Logger.LogDebug("Player Names dont match: {0} != {1}", message.PlayerName, requestedPlayer.SelectedCharacter.Name);
                player.ViewPlugIns.GetPlugIn <IShowMessagePlugIn>()?.ShowMessage($"Player Names don't match. {message.PlayerName} <> {requestedPlayer.SelectedCharacter.Name}", MessageType.BlueNormal);
                return;
            }

            this.buyAction.BuyItem(player, requestedPlayer, message.ItemSlot);
        }