61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
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<S2C_Message>
|
||
// {
|
||
// protected override async FTask Run(Session session, S2C_Message message)
|
||
// {
|
||
// Log.Info($"收到一条消息推送,message={message.Msg}");
|
||
// var chatTestPanel = UI.Inst.GetUI<ChatTestPanel>();
|
||
// if (chatTestPanel != null)
|
||
// {
|
||
// chatTestPanel.Message(message.Msg.Content);
|
||
// }
|
||
// await FTask.CompletedTask;
|
||
// }
|
||
// }
|
||
|
||
public sealed class Chat2C_MessageHandler : Message<Chat2C_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<EntryComponent>();
|
||
var chatTestPanel = UI.Inst.GetUI<ChatTestPanel>();
|
||
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();
|
||
}
|
||
}
|
||
} |