本帖最后由 912628490 于 2020-3-9 14:52 编辑
感谢点击进来
想问一下类似Residence、GriefPrevention等领地插件内部是如何实现对领地权限的控制 以及如何给予单个玩家权限的呢
不是问命令操作,想知道内部逻辑,或者各位是否有更好的实现办法呢
谢谢!
在Github上找到了源码 我先看一遍不懂再来问 本帖暂时关闭 谢谢大家
感谢点击进来
想问一下类似Residence、GriefPrevention等领地插件内部是如何实现对领地权限的控制 以及如何给予单个玩家权限的呢
不是问命令操作,想知道内部逻辑,或者各位是否有更好的实现办法呢
谢谢!
在Github上找到了源码 我先看一遍不懂再来问 本帖暂时关闭 谢谢大家
66666666666666666666666666666666666666
加个权限插件,推荐LuckPerms或Permissionsex
Residence使用flag控制玩家的操作权限,具体逻辑代码你可以看任意一个Residence监听
Residence的flag只有在领地里生效
res set flag,这个是领地的全局权限,存在领地的信息里面
res pset player 这个是领地内单独为玩家设置权限
flag权限搜索先后
玩家在领地内有单独的特权(pset) 返回这个特权状态
领地修改了flag状态(set) 返回领地flag状态
返回默认状态,不过这个默认状态似乎是写死在代码里面的
Residence的flag只有在领地里生效
res set flag,这个是领地的全局权限,存在领地的信息里面
res pset player 这个是领地内单独为玩家设置权限
flag权限搜索先后
玩家在领地内有单独的特权(pset) 返回这个特权状态
领地修改了flag状态(set) 返回领地flag状态
返回默认状态,不过这个默认状态似乎是写死在代码里面的
Karlatemp 发表于 2020-3-10 11:36
Residence使用flag控制玩家的操作权限,具体逻辑代码你可以看任意一个Residence监听
Residence的flag只有 ...
好的 谢谢你的回复
昨天看了源代码之后发现res也是用YAML储存的 我想用MYSQL 一直在建表上没想好
912628490 发表于 2020-3-10 12:08
好的 谢谢你的回复
昨天看了源代码之后发现res也是用YAML储存的 我想用MYSQL 一直在建表上没想好 ...
可以这样
领地数据表:
领地名 flag名 flag值
领地和flag名都是主键(双主键)
玩家领地数据
领地名 flag名 玩家uuid flag值
领地,flag名,玩家uuid三个一起形成3主键
Karlatemp 发表于 2020-3-10 12:13
可以这样
领地数据表:
非常感谢!
我打算插件启动的时候就缓存所有数据 感觉领地-Flag-玩家一条条记录的话 要重复操作HashMap 以及批量清除玩家权限的时候对数据库的压力 担心影响效率