using CommonAI.Zone.Instance;
using CommonLang.Protocol;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XmdsServerNode.Node.Interface
{
    public interface IPlayer : IDisposable
    {
        /// <summary>
        /// 单位全局唯一标识符
        /// </summary>
        string PlayerUUID { get; }

        /// <summary>
        /// 向此玩家发送战斗服事件
        /// </summary>
        /// <param name="msg"></param>
        void SendToClient(ArraySegment<byte> msg);

        /// <summary>
        /// 发送游戏事件给游戏服
        /// </summary>
        /// <param name="msg"></param>
        void SendToGameServer(object msg);

        /// <summary>
        /// 绑定数据
        /// </summary>
        ServerZoneNode.ZoneNodePlayer BindingObject { get; set; }

        bool IsAttribute(string key);
        void SetAttribute(string key, object value);
        object GetAttribute(string key);
    }
}