using System.Text; using Fantasy; using Fantasy.Async; using Fantasy.Network; using Fantasy.Network.Interface; using NBC; using Log = NBC.Log; namespace NBF { // public class Chat2C_MessageHandler : Message // { // protected override async FTask Run(Session session, S2C_Message message) // { // Log.Info($"收到一条消息推送,message={message.Msg}"); // var chatTestPanel = UI.Inst.GetUI(); // if (chatTestPanel != null) // { // chatTestPanel.Message(message.Msg.Content); // } // await FTask.CompletedTask; // } // } public sealed class Chat2C_MessageHandler : Message { protected override async FTask Run(Session session, Chat2C_Message message) { ChatTreeParser.Parse(session.Scene,message.ChatInfoTree); Log.Info("收到聊天信息:"); await FTask.CompletedTask; } } public static class ChatTreeParser { public static void Parse(Scene scene, ChatInfoTree tree) { // var entryComponent = scene.GetComponent(); var chatTestPanel = UI.Inst.GetUI(); if (chatTestPanel != null) { chatTestPanel.Message(tree); } // var sb = new StringBuilder(); // foreach (var chatInfoNode in tree.Node) // { // // 这里只是演示一下处理事件的效果,实际使用时,需要根据实际情况处理事件 // // 明显我现在这样做的方式不是对的,应该是自己拼接一个聊天信息,然后调用这个接口来处理事件 // entryComponent.Entry.ChatNodeEventButton.onClick.RemoveAllListeners(); // entryComponent.Entry.ChatNodeEventButton.onClick.AddListener(() => // { // ChatNodeEventHelper.Handler(scene, chatInfoNode); // }); // sb.Append(chatInfoNode.Content); // } // entryComponent.Entry.MessageText.text = sb.ToString(); } } }