simple-robot / simbot-component-mirai

simple-robot下的mirai组件
https://component-mirai.simbot.forte.love/
GNU Affero General Public License v3.0
20 stars 0 forks source link

为「转发消息」提供simbot层面的封装 #62

Closed ForliyScarlet closed 2 years ago

ForliyScarlet commented 2 years ago

提供了新的类型:

具体的使用说明请参考它们各自的文档注释

基本应用

直接转化ForwardMessage

// mirai原生的类型:ForwardMessage
val forwardMessage: ForwardMessage = ...
val miraiForwardMessage: MiraiForwardMessage = forwardMessage.asSimbot()

定制化构建

通过 buildMiraiForwardMessage { ... } 函数构建一个 MiraiSendOnlyForwardMessage 类型实例。

val sendOnlyForwardMessage = buildMiraiForwardMessage(displayStrategy = ...) {
    add(114514, "用户名", "你好".toText(), Timestamp.now())
    add(114514, "用户名", At(810.ID) + "你好".toText())

    add(fooMessageEvent)
    add(fooEMessagevent, 12345678)
    add(fooMessageEvent, Timestamp.now())

    // bot的类型需要为 OrganizationBot 而不是基础的 Bot 。
    bot.says("最近如何".toText() + Face(5.ID))
    user.says("感觉不错".toText())
    // ....
}

对于 Java 开发者,直接构建并使用 MiraiForwardMessageBuilder 即可。

MiraiForwardMessageBuilder builder = new MiraiForwardMessageBuilder(ForwardMessage.DisplayStrategy.Default);
builder.add(123456, "forte", Text.of("早上好"));
builder.add(bot)

builder.add(event);
builder.add(event.getBot(), Text.of("早上好"));

// 在 Java 中,基本所有的API都叫 'add'。包括在Kotlin中被成为 'says' 的那些。

MiraiSendOnlyForwardMessage message = builder.build();