FunGame-Core/Interface/Base/IServerModel.cs
milimoe 5c89bafffd
完善插件模组系统 (#68)
* 添加GameModeServer

* Addon系列大修改

* RuntimeController添加发送结束游戏反馈的方法

* 将GamingMessageHandler返回值修改为Hashtable

* 添加马甲方法,隐藏委托

* 更新AddonController注释

---------

Co-authored-by: yeziuku <53083103+yeziuku@users.noreply.github.com>
Co-authored-by: yeziuku <yezi@wrss.org>
2023-12-09 01:40:46 +08:00

75 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Interface.Base
{
public interface IServerModel
{
/// <summary>
/// 服务器实例是否在运行
/// </summary>
public abstract bool Running { get; }
/// <summary>
/// 客户端的套接字实例
/// </summary>
public abstract ClientSocket? Socket { get; }
/// <summary>
/// 客户端的用户实例,在用户登录后有效
/// </summary>
public abstract User User { get; }
/// <summary>
/// 客户端的名称默认是客户端的IP地址
/// </summary>
public abstract string ClientName { get; }
/// <summary>
/// 客户端是否启动了开发者模式
/// </summary>
public bool IsDebugMode { get; }
/// <summary>
/// 向客户端发送消息
/// </summary>
/// <param name="socket"></param>
/// <param name="type"></param>
/// <param name="objs"></param>
/// <returns></returns>
public bool Send(ClientSocket socket, SocketMessageType type, params object[] objs);
/// <summary>
/// 向客户端发送系统消息
/// </summary>
/// <param name="showtype"></param>
/// <param name="msg"></param>
/// <param name="title"></param>
/// <param name="autoclose"></param>
/// <param name="usernames"></param>
public void SendSystemMessage(ShowMessageType showtype, string msg, string title, int autoclose, params string[] usernames);
/// <summary>
/// 获取客户端的名称通常未登录时显示为客户端的IP地址登录后显示为账号名
/// </summary>
/// <returns></returns>
public string GetClientName();
/// <summary>
/// 开始接收客户端消息
/// <para>请勿在 <see cref="GameModeServer"/> 中调用此方法</para>
/// </summary>
/// <param name="socket"></param>
/// <returns></returns>
public bool Read(ClientSocket socket);
/// <summary>
/// 启动对客户端的监听
/// <para>请勿在 <see cref="GameModeServer"/> 中调用此方法</para>
/// </summary>
public void Start();
}
}