未解决 原生java开发,使用mirai-console的内置权限系统,如何给用户设置默认的插件权限?
-
环境
目前用的mirai-console:2.9.2版本开发,最新版因为原来的内置mirai-console启动方法无法正常使用,所以回退了版本开发
查阅资料
转了一圈官方文档和示例项目,好像都没有看到有相关的Java示例。在源码按相关类查了一下方法,应该是使用
PermissionService.getInstance().permit(PermitteeId,Permission);
来赋予权限
但PermitteeId
找不到具体的创建方法,查阅官方文档有说明,但一直创建不出来。
尝试的方式:
CommandSender.getPermitteeId()
只有创建具体实例才能使用- 使用
AbstractPermitteeId.AnyUser.INSTANCE
提示方法不接受此参数
github也按
AbstractPermitteeId
关键词搜了一下,没有什么能参考的,只有特定用户群体的才可用new AbstractPermitteeId.Exact***
实例化,对于全体用户的无法使用。
希望能有个具体示例可以参考 -
-
我在kt里用过
AbstractPermitteeId.AnyContact.permit(SomeCommand.permission)
-
@Samarium150 目前看来原生Java用不了
-
PermissionService.permit0(PermitteeId,Permission); PermissionService.permit(PermitteeId,PermissionId);
不要用 getInstance(),这个会拿到内部实现
-
@cssxsh 原来是参数不同,我之前也试过使用直接使用类静态方法,但参数没改,IDE还是给我匹配到内部方法去了。
感谢,我尝试一下是否能生效 -
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); } }