Newbe.Mahua 1.13 支持撤回消息


感谢kotoneme开发者的PR。为本框架添加了消息撤回的支持。

版本亮点

支持消息撤回

此版本添加了消息撤回的支持。详细的用法分为两类。

撤回自己的消息

样例代码如下:

using Newbe.Mahua.MahuaEvents;

namespace Newbe.Mahua.Plugins.Parrot.MahuaEvents
{
    /// <summary>
    ///     来自好友的私聊消息接收事件
    /// </summary>
    public class PrivateMessageFromFriendReceivedMahuaEvent
        : IPrivateMessageFromFriendReceivedMahuaEvent
    {
        private readonly IMahuaApi _mahuaApi;

        public PrivateMessageFromFriendReceivedMahuaEvent(
            IMahuaApi mahuaApi)
        {
            _mahuaApi = mahuaApi;
        }

        public void ProcessFriendMessage(PrivateMessageFromFriendReceivedContext context)
        {
            // 普通的 Fluent API 发送消息
            _mahuaApi.SendPrivateMessage(context.FromQq)
                .Text("嘤嘤嘤:")
                .Text(context.Message)
                .Done();

            // 支持撤回的 Fluent API 发送消息
            var token = _mahuaApi.SendPrivateMessage(context.FromQq)
                .Text("嘤嘤嘤:")
                .Text(context.Message)
                .DoneWithToken();

            // 撤回消息
            token.Cancel();

            // 普通 API 发送消息
            _mahuaApi.SendPrivateMessage(context.FromQq, context.Message);

            // 支持撤回的 API 发送消息
            var token2 = _mahuaApi.SendPrivateMessageWithCancelToken(context.FromQq, context.Message);

            // 撤回消息
            token2.Cancel();
        }
    }
}

撤回群成员消息

样例代码如下:

using Newbe.Mahua.MahuaEvents;

namespace Newbe.Mahua.Plugins.Parrot.MahuaEvents
{
    /// <summary>
    ///     处理群成员消息
    /// </summary>
    public class GroupMessageReceivedMahuaEvent
        : IGroupMessageReceivedMahuaEvent
    {
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            // 获取用于撤回消息的 token
            var token = context.MessageCancelToken;

            // 撤回消息
            token.Cancel();
        }
    }
}

各平台支持情况

消息撤回功能各平台的支持力度各不相同。详情点击此处进行了解

升级注意

从 1.12 版本直接更新全部的 Newbe.Mahua.* nuget 包,重新生成便可以。

升级过程中需要覆盖 build.bat 和 build.ps1 文件。若有自行定制的内容,请提前保留备份。

VS插件更新只需要按照VS提示进行操作即可。

教程链接

发布说明


文章作者: newbe36524
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 newbe36524 !
评论
 上一篇
Newbe.Pct-Web E2E 自动化测试脚手架 Newbe.Pct-Web E2E 自动化测试脚手架
本项目为测试工作者提供了一套“简易的 Web E2E 自动化测试脚手架”。测试工作者可以通过该脚手架,实现编写一些简单的 Web E2E 自动化测试。简介E2E(End To End)即端对端测试,属于黑盒测试,通过编写测试用例,自动化模拟
2018-12-03 newbe36524
下一篇 
在C#中使用依赖注入-生命周期控制 在C#中使用依赖注入-生命周期控制
在使用依赖注入的过程当中,除了应用设计模式注意代码的变化隔离之外,另外一个重要的内容就是生命周期控制。每次获取都是新的实例前文中用到的方式都是这样的效果。在容器中每次获取同一个接口的实现,每次获取到的都是不同的实例。读者可以翻阅一下先前的示
2018-09-25 newbe36524
  目录