MiraiForum

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

    未解决 原生java开发,使用mirai-console的内置权限系统,如何给用户设置默认的插件权限?

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

      环境

      目前用的mirai-console:2.9.2版本开发,最新版因为原来的内置mirai-console启动方法无法正常使用,所以回退了版本开发

      查阅资料

      转了一圈官方文档和示例项目,好像都没有看到有相关的Java示例。在源码按相关类查了一下方法,应该是使用PermissionService.getInstance().permit(PermitteeId,Permission);来赋予权限
      9a584e32-ed68-48d6-835d-0f52ad1a72ae-image.png
      但PermitteeId找不到具体的创建方法,查阅官方文档有说明,但一直创建不出来。
      559a11ab-4a94-43cc-8e44-d3258a6a4046-image.png

      尝试的方式:

      1. CommandSender.getPermitteeId()只有创建具体实例才能使用
      2. 使用AbstractPermitteeId.AnyUser.INSTANCE提示方法不接受此参数
        6bd170a6-d7fe-4a1d-976d-eeebc2d8ebb3-image.png

      github也按AbstractPermitteeId关键词搜了一下,没有什么能参考的,只有特定用户群体的才可用new AbstractPermitteeId.Exact***实例化,对于全体用户的无法使用。
      希望能有个具体示例可以参考

      1 条回复 最后回复 回复 引用 0
      • Topic has been marked as a question  C Cute_LuoBo 
      • Samarium150
        Samarium150 童心未泯 最后由 编辑

        我在kt里用过AbstractPermitteeId.AnyContact.permit(SomeCommand.permission)

        C 1 条回复 最后回复 回复 引用 0
        • C
          Cute_LuoBo @Samarium150 最后由 编辑

          @Samarium150 目前看来原生Java用不了

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

            PermissionService.permit0(PermitteeId,Permission);
            PermissionService.permit(PermitteeId,PermissionId);
            

            不要用 getInstance(),这个会拿到内部实现

            C 1 条回复 最后回复 回复 引用 0
            • C
              Cute_LuoBo @cssxsh 最后由 编辑

              @cssxsh 原来是参数不同,我之前也试过使用直接使用类静态方法,但参数没改,IDE还是给我匹配到内部方法去了。e7b9788b-f099-4e0c-be12-8019ea34247e-image.png
              感谢,我尝试一下是否能生效

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

                
                import net.mamoe.mirai.console.permission.AbstractPermitteeId;
                import net.mamoe.mirai.console.permission.Permission;
                import net.mamoe.mirai.console.permission.PermissionService;
                
                public class TestJ {
                    public static void a() {
                        PermissionService.permit0(AbstractPermitteeId.AnyContact.INSTANCE, (Permission) null);
                    }
                }
                
                
                1 条回复 最后回复 回复 引用 0
                • 1 / 1
                • First post
                  Last post
                Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact