mamoe / mirai

高效率 QQ 机器人支持库
https://mirai.mamoe.net
GNU Affero General Public License v3.0
14.38k stars 2.53k forks source link

kotlin疑问 #285

Closed tghjnjvg closed 4 years ago

tghjnjvg commented 4 years ago
miraiBot.subscribeMessages {
    "你好" reply "你好!"
    case("at me") {
        reply(sender.at() + " 给爷爬 ")
    }

    (contains("舔") or contains("刘老板")) {
        "刘老板太强了".reply()
    }
}

如果我在这里加个always怎么写呢, 我获取msg与kotlin的array比较如何决定是否禁言,给他禁言这样怎么写呢

这样的demo例子太少了,能不能具体一点 源码的话也没注释怎么用,太长了不好看得懂

tghjnjvg commented 4 years ago

mBot.subscribeGroupMessages { always { Log.e("asdasdasd",message.contentToString()) val inputStream = assets.open("keyword.txt") val size: Int = inputStream.available() val buffer = ByteArray(size) inputStream.read(buffer) inputStream.read(buffer) inputStream.close() val text = String(buffer) for( tline in text.split("\n")){ if(message.contentToString().contains(tline) ){ mCallback?.get()?.onMessage("hh禁言 +++"+tline+" +++ ") mCallback?.get()?.onMessage("\n\n 禁言禁言禁言禁言禁言 ${sender.id} 的消息\n 名称 ${sender.nick} \n") // if(group.botPermission == MemberPermission.OWNER){ // sender.mute(60) // message.recall() // } Log.e("asdasdasd","hh禁言") Log.e("asdasdasd",tline) break }else{ continue } } }

        }
tghjnjvg commented 4 years ago

比如我这么写 去禁言一些触发禁言关键词(关键词在assets里) 禁言语句我不会,然后这样也没反应

Him188 commented 4 years ago

若不熟悉 Kotlin, 使用

bot.subscribeAlways<GroupMessage> {    }

而不要使用 DSL.

tghjnjvg commented 4 years ago
        mBot.subscribeAlways<FriendMessage> {
            mCallback?.get()?.onMessage("\n\n 收到来自 ${sender.id} 的消息 \n 头像 ${sender.avatarUrl} \n 名称 ${sender.nick} \n 内容 $message. \n\n")
            if(message.equals(":help")){
                reply("帮助手册:\n回复:help获取帮助\n回复:greet获取问候 \n")
            }else if (message.equals(":greet")){
                reply("大佬您好,请接受我最虔诚的膜拜")
            }
        }

        mBot.subscribeAlways<GroupMessage> {
            mCallback?.get()?.onMessage("\n\n 收到来自 ${sender.id} 的消息 \n 头像 ${sender.avatarUrl} \n 名称 ${sender.nick} \n 内容 $message. \n\n")
            if(message.equals(":help")){
                reply("帮助手册:\n回复:help获取帮助\n回复:greet获取问候 \n")
            }else if (message.equals(":greet")){
                reply("大佬您好,请接受我最虔诚的膜拜")
            }
        }
tghjnjvg commented 4 years ago

这样写啥也没收到

Him188 commented 4 years ago

这不是 mirai 问题