MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    【小白求教】如何在群成员触发命令时向群内发送一张本地图片?

    开发交流
    4
    5
    482
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • N
      N70_ 最后由 N70_ 编辑

      rt,我使用上传本地图片为Image的方法发送图片,但在uploadAsImage时不知道该如何调用要发送的Contact。
      顺便求问 一下大佬们,可否有相关的插件代码适合于帮助理解命令触发时的Contact、Event、CommandSender、User、Message这些东西的工作原理、工作方式?对如何使用它们不甚理解……经常在需要的时候不会调用

      1 条回复 最后回复 回复 引用 0
      • Karlatemp
        Karlatemp 最后由 编辑

        善于翻相关源码定义

        public interface CommandSender : CoroutineScope, Permittee {
            /**
             * 与这个 [CommandSender] 相关的 [Contact].
             *
             * - 当一个群员执行指令时, [subject] 为所在 [群][Group]
             * - 当通过控制台执行时为 `null`.
             */
            public val subject: Contact?
        }
        
        N 1 条回复 最后回复 回复 引用 0
        • N
          N70_ @Karlatemp 最后由 编辑

          @Karlatemp 谢谢您,但是还是有个问题
          我把sender.subject写到uploadAsImage时,显示类型不匹配,它需要一个contact,但是sender.subject返回的是Contact?
          感觉还是自己没整明白其中一些原理性的东西……

          I H 2 条回复 最后回复 回复 引用 0
          • I
            ISevenVEN @N70_ 最后由 ISevenVEN 编辑

            @N70_ 先感谢某位大佬对我的指点
            uploadImage(event.getGroup(),ExternalResource.create(fis));
            可以把,第一个参数理解为java中传递this,你这是在群里发 所以是getGroup,如果是个人的话 event.getSender
            然后推荐链式调用
            Image img = event.getGroup().uploadImage(ExternalResource.create(fis));

            1 条回复 最后回复 回复 引用 1
            • H
              hundun000 ⭐2021⭐ @N70_ 最后由 hundun000 编辑

              @N70_ Contact?涉及null-safety相关特性

              我一般会对控制台执行时也给个text反馈:

              if (commandSender.subject != null) {
                var image = externalResource.uploadAsImage(commandSender.subject!!)
                // send
              } else {
                var plainText = PlainText("已收到指令,但该接收者暂不支持图片")
                // send
              }
              
              1 条回复 最后回复 回复 引用 1
              • 1 / 1
              • First post
                Last post
              Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact