• Q&A
  • 怎样添加禁言功能

如题,mirai文档写支持禁言功能,但是本人太菜…不懂java,有无大佬指点一下或者给个思路,谢谢啦!!

  • 建立在你已经读过文档且已经创立了一个mirai插件工程
    你首先需要获取群成员对象(Member),之后调用Member.mute(times)方法即可
    在群消息监听中使用event.sender即可获取到消息发送者
    event.sender.mute(600) //禁言消息发送者10分钟

    虽然但是,还是先对JVM语言有所了解比较好

    实际上,这个功能可以通过Lua插件实现
    eventMsg(".group ban " .. QQ .. " " .. time, msg.fromGroup, <发送该禁言命令的QQ>)
    即通过eventMsg构造一条虚拟指令,视为通过最后一个参数的QQ发送了一条禁言命令

    顺带一提,编写mirai插件时,先使用event.group.botPermission>Member.permission判断bot权限是否足够
    而Lua插件中,最后一个参数的QQ应为bot管理员,且bot具有权限

建立在你已经读过文档且已经创立了一个mirai插件工程
你首先需要获取群成员对象(Member),之后调用Member.mute(times)方法即可
在群消息监听中使用event.sender即可获取到消息发送者
event.sender.mute(600) //禁言消息发送者10分钟

虽然但是,还是先对JVM语言有所了解比较好

实际上,这个功能可以通过Lua插件实现
eventMsg(".group ban " .. QQ .. " " .. time, msg.fromGroup, <发送该禁言命令的QQ>)
即通过eventMsg构造一条虚拟指令,视为通过最后一个参数的QQ发送了一条禁言命令

顺带一提,编写mirai插件时,先使用event.group.botPermission>Member.permission判断bot权限是否足够
而Lua插件中,最后一个参数的QQ应为bot管理员,且bot具有权限

    RainChain 谢谢大佬!看了开发文档,已实现功能!也感谢大佬的指导分享!

    RainChain 大佬,lua脚本的api在哪里看呀?还是说要去看源码?Dice的开发手册好像并没写 “ban” 这个功能(粗略看了一遍。。)

    eventMsg用于构造虚拟指令,而.group ban这个指令是原本Dice!就有的,你可以查看用户手册的.group群管理操作

      9 天 后

      试了一下RainChain大佬提供的lua脚本思路来实现禁言功能,代码如下:
      `msg_order = {}

      function drawtab(tab)
      return tab[ranint(1, #tab)]
      end

      msg_order[“禁言”]=“shut”
      function shut(msg)
      local banq = msg.fromMsg
      local time = {1, 2, 3, 4, 5}
      eventMsg(“.group ban ” .. banq .. drawtab(
      time), msg.fromGroup, msg.fromQQ)
      end`

      说点什么吧...