Skip to content

GameSystemUI.ChatSystem ​

ChatMessage 双端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public class ChatMessage

构造函数 ​

ChatMessage 双端 ​

csharp
public ChatMessage()

属性 ​

MessageId 双端 ​

csharp
public Guid MessageId { get; set; }

消息唯一标识符 - 由服务端生成 用途:

  1. 防止重复接收(客户端去重)
  2. 消息引用(回复、转发)
  3. 消息编辑/删除的定位
  4. 已读回执追踪

SenderID 双端 ​

csharp
public int? SenderID { get; set; }

ReceiverID 双端 ​

csharp
public int? ReceiverID { get; set; }

Type 双端 ​

csharp
public ChatMessageType Type { get; set; }

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

消息时间戳(UTC) - 由服务端设置 客户端显示时需转换为本地时区

Content 双端 ​

csharp
public string Content { get; set; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

ChatMessageType 双端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public readonly struct ChatMessageType : IGameClass, IExtendableEnum<ChatMessageType>, IExtendableEnum, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 双端 ​

csharp
public override string? ToString()

operator == 双端 ​

csharp
public static bool operator ==(ChatMessageType left, ChatMessageType right)

operator != 双端 ​

csharp
public static bool operator !=(ChatMessageType left, ChatMessageType right)

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

OnRegisterGameClass 双端 ​

csharp
public static void OnRegisterGameClass()

字段 ​

InnerValue 双端 ​

csharp
public readonly Enum InnerValue

Private 双端 ​

csharp
public static readonly ChatMessageType Private

Team 双端 ​

csharp
public static readonly ChatMessageType Team

All 双端 ​

csharp
public static readonly ChatMessageType All

World 双端 ​

csharp
public static readonly ChatMessageType World

System 双端 ​

csharp
public static readonly ChatMessageType System

ChatSystemClient 仅客户端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public static class ChatSystemClient

方法 ​

OnRegisterGameClass 仅客户端 ​

csharp
public static void OnRegisterGameClass()

SendMessage 仅客户端 ​

csharp
public static Task SendMessage(ChatMessage message)

统一的消息发送方法

  • message — 要发送的聊天消息

SendMessagePrivate 仅客户端 ​

csharp
public static Task SendMessagePrivate(Player player, string message)

发送私聊消息(便捷方法)

SendMessageTeam 仅客户端 ​

csharp
public static Task SendMessageTeam(string message)

发送队伍消息(便捷方法)

SendMessageAll 仅客户端 ​

csharp
public static Task SendMessageAll(string message)

发送全体消息(便捷方法)

SendMessageWorld 仅客户端 ​

csharp
public static Task SendMessageWorld(string message)

发送世界消息(便捷方法)

字段 ​

OnChatMessageReceived 仅客户端 ​

csharp
public static EventHandler<ChatMessage>? OnChatMessageReceived

OnLocalSystemMessageSent 仅客户端 ​

csharp
public static EventHandler<ChatMessage>? OnLocalSystemMessageSent

OnServerMessageReceived 仅客户端 ​

csharp
public static Trigger<EventServerMessage>? OnServerMessageReceived

ChatSystemServer 仅服务端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public static class ChatSystemServer

方法 ​

OnRegisterGameClass 仅服务端 ​

csharp
public static void OnRegisterGameClass()

IsValidMessage 仅服务端 ​

csharp
public static bool IsValidMessage(ChatMessage message)

验证消息是否有效

SendMessagePrivate 仅服务端 ​

csharp
public static void SendMessagePrivate(ChatMessage message)

SendMessageTeam 仅服务端 ​

csharp
public static void SendMessageTeam(ChatMessage message)

SendMessageAll 仅服务端 ​

csharp
public static void SendMessageAll(ChatMessage message)

SendMessageSystem 仅服务端 ​

csharp
public static void SendMessageSystem(ChatMessage message, Func<Player, bool> filter)

字段 ​

OnChatMessageReceived 仅服务端 ​

csharp
public static EventHandler<ChatMessage>? OnChatMessageReceived

聊天消息接收事件 - 服务端 在消息处理完成、转发之前触发 可用于:消息日志记录、统计、审核等扩展功能

EChatMessageType 双端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public enum EChatMessageType

枚举值 ​

  • Private
  • Team
  • All
  • World
  • System

ScopeData 仅客户端 ​

命名空间 GameSystemUI.ChatSystem

csharp
public class ScopeData : IGameClass

构造函数 ​

ScopeData 仅客户端 ​

csharp
public ScopeData()

方法 ​

OnRegisterGameClass 仅客户端 ​

csharp
public static void OnRegisterGameClass()

ChatEntrance 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class ChatEntrance : Panel

构造函数 ​

ChatEntrance 仅客户端 ​

csharp
public ChatEntrance(ChatWindow chatWindow)

字段 ​

chatWindow 仅客户端 ​

csharp
public ChatWindow chatWindow

ChatInputPanel 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class ChatInputPanel : Panel

构造函数 ​

ChatInputPanel 仅客户端 ​

csharp
public ChatInputPanel()

创建输入面板,使用默认频道配置

ChatInputPanel 仅客户端 ​

csharp
public ChatInputPanel(Dictionary<ChatMessageType, string>? customChannelConfig)

创建输入面板,使用自定义频道配置

  • customChannelConfig — 自定义频道配置,如果为 null 则使用默认配置

属性 ​

HasValidInput 仅客户端 ​

csharp
public bool HasValidInput { get; }

CurrentChannel 仅客户端 ​

csharp
public ChatMessageType CurrentChannel { set; }

方法 ​

ClearInput 仅客户端 ​

csharp
public void ClearInput()

事件 ​

OnChannelChanged 仅客户端 ​

csharp
public event Action<ChatMessageType>? OnChannelChanged

OnSendMessage 仅客户端 ​

csharp
public event EventHandler? OnSendMessage

字段 ​

InputText 仅客户端 ​

csharp
public string InputText

ChatMessageUI 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class ChatMessageUI : Panel

构造函数 ​

ChatMessageUI 仅客户端 ​

csharp
public ChatMessageUI()

属性 ​

Message 仅客户端 ​

csharp
public string? Message { get; set; }

ChatRecord 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class ChatRecord : PanelScrollable

构造函数 ​

ChatRecord 仅客户端 ​

csharp
public ChatRecord()

方法 ​

AddMessage 仅客户端 ​

csharp
public void AddMessage(string message)

ChatWindow 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class ChatWindow : Panel, IGameObject<GameDataControlChatWindow>, IGameObject

构造函数 ​

ChatWindow 仅客户端 ​

csharp
public ChatWindow()

无参构造函数 - 用于直接创建(不使用 GameData)

ChatWindow 仅客户端 ​

csharp
public ChatWindow(IGameLink<GameDataControlChatWindow> link)

GameData 构造函数 - 通过 GameData 创建时使用

属性 ​

ChannelConfig 仅客户端 ​

csharp
public Dictionary<ChatMessageType, string>? ChannelConfig { get; set; }
csharp
public new IGameLink<GameDataControlChatWindow> Link { get; }

Cache 仅客户端 ​

csharp
public new GameDataControlChatWindow Cache { get; }

字段 ​

DefaultTemplate 仅客户端 ​

csharp
public new static readonly IGameLink<GameDataControlChatWindow> DefaultTemplate

BackgroundImage 仅客户端 ​

csharp
public Image BackgroundImage

PlayerItem 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class PlayerItem : Panel, IGameObject<GameDataPlayerItem>, IGameObject

构造函数 ​

PlayerItem 仅客户端 ​

csharp
public PlayerItem()

PlayerItem 仅客户端 ​

csharp
public PlayerItem(IGameLink<GameDataPlayerItem> link)

属性 ​

AvatarFrame 仅客户端 ​

csharp
public Image AvatarFrame { get; set; }

Avatar 仅客户端 ​

csharp
public Image Avatar { get; set; }

NameplateBackground 仅客户端 ​

csharp
public Image NameplateBackground { get; set; }

MuteButtonImage 仅客户端 ​

csharp
public Image MuteButtonImage { get; set; }

TeamNumber 仅客户端 ​

csharp
public string? TeamNumber { get; set; }

Nickname 仅客户端 ​

csharp
public string? Nickname { get; set; }

UnitDisplayName 仅客户端 ​

csharp
public string? UnitDisplayName { get; set; }

ShowDivider 仅客户端 ​

csharp
public bool ShowDivider { get; set; }
csharp
public new IGameLink<GameDataPlayerItem> Link { get; }

Cache 仅客户端 ​

csharp
public new GameDataPlayerItem Cache { get; }

方法 ​

UpdateBlockStatus 仅客户端 ​

csharp
public void UpdateBlockStatus(bool isBlocked)

字段 ​

DefaultTemplate 仅客户端 ​

csharp
public new static readonly IGameLink<GameDataPlayerItem> DefaultTemplate

OnMuteButtonClick 仅客户端 ​

csharp
public Action<Panel>? OnMuteButtonClick

PlayerList 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class PlayerList : PanelScrollable

构造函数 ​

PlayerList 仅客户端 ​

csharp
public PlayerList()

属性 ​

IsBlockAllPlayersEnabled 仅客户端 ​

csharp
public bool IsBlockAllPlayersEnabled { get; }

方法 ​

Update 仅客户端 ​

csharp
public void Update()

IsPlayerBlocked 仅客户端 ​

csharp
public bool IsPlayerBlocked(int playerId)

ToggleBlockAllPlayers 仅客户端 ​

csharp
public void ToggleBlockAllPlayers()

CheckMessageBlocked 仅客户端 ​

csharp
public bool CheckMessageBlocked(ChatMessage message)

PlayerListTitle 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public class PlayerListTitle : Panel

构造函数 ​

PlayerListTitle 仅客户端 ​

csharp
public PlayerListTitle()

属性 ​

Title 仅客户端 ​

csharp
public string? Title { get; set; }

TabType 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Advanced

csharp
public enum TabType

枚举值 ​

  • ChatRecord
  • PlayerList

GameDataControlChatWindow 双端 ​

命名空间 GameSystemUI.ChatSystem.Data

csharp
public class GameDataControlChatWindow : GameDataControlPanel, IGameData<GameDataControlChatWindow>, IGameData

ChatWindow 的 GameData 配置类 双端通用的数据配置

构造函数 ​

GameDataControlChatWindow 双端 ​

csharp
public GameDataControlChatWindow(GameLink<GameDataControl, GameDataControlChatWindow> link)

GameDataControlChatWindow 双端 ​

csharp
public GameDataControlChatWindow(IGameLink<GameDataControlChatWindow> link)

属性 ​

ChannelConfig 双端 ​

csharp
public Dictionary<ChatMessageType, string>? ChannelConfig { get; set; }

频道配置字典 示例:{ { ChatMessageType.All, "全体" }, { ChatMessageType.Team, "队伍" } }

csharp
public new IGameLink<GameDataControlChatWindow> Link { get; }

方法 ​

CreateControl 仅客户端 ​

csharp
public override Control CreateControl()

ApplyTo 仅客户端 ​

csharp
public override void ApplyTo(Control control)

GameDataPlayerItem 仅客户端 ​

命名空间 GameSystemUI.ChatSystem.Data

csharp
public class GameDataPlayerItem : GameDataControlPanel, IGameData<GameDataPlayerItem>, IGameData

构造函数 ​

GameDataPlayerItem 仅客户端 ​

csharp
public GameDataPlayerItem(GameLink<GameDataControl, GameDataPlayerItem> link)

GameDataPlayerItem 仅客户端 ​

csharp
public GameDataPlayerItem(IGameLink<GameDataPlayerItem> link)

属性 ​

AvatarFrame 仅客户端 ​

csharp
public Image AvatarFrame { get; set; }

Avatar 仅客户端 ​

csharp
public Image Avatar { get; set; }

NameplateBackground 仅客户端 ​

csharp
public Image NameplateBackground { get; set; }
csharp
public new IGameLink<GameDataPlayerItem> Link { get; }

方法 ​

CreateControl 仅客户端 ​

csharp
public override Control CreateControl()

CreatePlayerItem 仅客户端 ​

csharp
public PlayerItem CreatePlayerItem()