using System.Net.Http; using System.Net.Http.Json; using System.Text; using System.Text.Json.Nodes; using static System.Net.Mime.MediaTypeNames; using static System.Runtime.InteropServices.JavaScript.JSType; using Newtonsoft.Json; using Amazon.Runtime.Internal.Endpoints.StandardLibrary; using Amazon.Runtime.Internal.Transform; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Crypto.Signers; using ServerCore; using ServerBase; using ServerCommon; using static ServerCommon.MetaHelper; using static ServerCommon.BusinessLogDomain.MailLogData; using GameServer.PacketHandler; namespace GameServer { public class AdvertisementAction : EntityActionBase { public AdvertisementAction(Player owner) : base(owner) { } public override Task onInit() { var result = new Result(); return Task.FromResult(result); } public override void onClear() { } public async Task<(Result, int)> selectAdvertisement(int interiorId) { await Task.CompletedTask; var result = new Result(); var err_msg = string.Empty; var player = getOwner() as Player; NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!"); var server_logic = GameServerApp.getServerLogic(); if (MetaData.Instance._InteriorMetaTable.TryGetValue(interiorId, out var interiorMeta) == false) { result.setFail(ServerErrorCode.InteriorMetaDataNotFound, err_msg); return (result, -1); } int index = Random.Shared.Next(interiorMeta.AdPath.Count); return (result, index); } } }