Files
MikuSB/GameServer/Command/CommandSender.cs
2026-04-27 00:40:08 +08:00

52 lines
1.2 KiB
C#

using MikuSB.Enums.Player;
using MikuSB.GameServer.Game.Player;
using MikuSB.Proto;
using MikuSB.Util;
using MikuSB.Util.Extensions;
namespace MikuSB.GameServer.Command;
public interface ICommandSender
{
public ValueTask SendMsg(string msg);
public int GetSender();
}
public class ConsoleCommandSender(Logger logger) : ICommandSender
{
public async ValueTask SendMsg(string msg)
{
logger.Info(msg);
await Task.CompletedTask;
}
public int GetSender()
{
return (int)ServerEnum.Console;
}
}
public class PlayerCommandSender(PlayerInstance player) : ICommandSender
{
public PlayerInstance Player = player;
public async ValueTask SendMsg(string msg)
{
var data = new ChatMsg
{
Type = ChatType.Friend,
Sender = (uint)ConfigManager.Config.ServerOption.ServerProfile.Uid,
Recver = (uint)Player.Uid,
Text = msg,
Profile = Player.ToServerFriendProto(),
TimeStamp = (uint)Extensions.GetUnixMs()
};
await Player.SendPacket(CmdIds.NtfFriendChat, data);
}
public int GetSender()
{
return Player.Uid;
}
}