本篇教程适合bukkit系插件与Forge模组混合服务器端(例如:Mohist,LoliServer等),如果你是只含模组的服务器端可以不用看,默认直接有效

以 'Mohist-1.16.5-963' & 'ftb-essentials-1605.1.5-build.32' & 'ftb-ranks-forge-1605.1.5-build.16' 作为示例


预先准备

服务器端必须安装基本的权限插件(EssentialsX,GroupManager或LuckPerms等)

并且安装[FTBR]FTB Ranks与前置与[FTBC]FTB Chunks[FTBE]FTB Essentials

([FTBC]FTB Chunks[FTBE]FTB Essentials两个你需要哪个用哪个,也可以两个都选)

服务器端必须配置FTB Ranks才能让FTB Essentials正常工作


模组命令权限配置

默认生成文件如下(world/serverconfig/ftbranks/ranks.snbt):其实我觉得原来的json文件挺好的

{
    member: {
        name: "Member"
        power: 1
        condition: "always_active"
        ftbranks.name_format: "<{name}>"
    }
    vip: {
        name: "VIP"
        power: 50
        ftbranks.name_format: "<&bVIP {name}&r>"
    }
    admin: {
        name: "Admin"
        power: 1000
        condition: "op"
        ftbranks.name_format: "<&2{name}&r>"
    }
}

同目录下的README.txt中列出了所有的命令权限节点(没了可以用命令/ftbranks refresh_readme 重新生成一个)


接下来使用权限节点进行配置命令

> 本教程只说明配置权限问题,其他[FTBR]配置请见配置和指令教程, 不再重复教导


比如,我们为默认组添加一个允许使用随机传送(rtp)的指令


将默认文件中的member组进行调整

添加一行代码:

command.rtp: true


整个member组就变成下面这样:

member: {
        name: "Member"
        power: 1
        condition: "always_active"
        ftbranks.name_format: "<{name}>"
        command.rtp: true
    }


这时候我们在服务器里面运行命令,可以看到无法运行,因为缺失了bukkit方面的权限

服务器端的配置-第1张图片



权限组配置

这一方面就很简单了,只需要导入权限节点就行.


README.txt中列出权限节点为`command.rtp`,在插件中使用时我们要添加上前缀:`minecraft.`


以GroupManager插件为例子使用的命令为:`/mangaddp Default minecraft.command.rtp`

即为默认组添加minecraft.command.rtp权限,这时候在游戏里就可以正常使用我们的命令了

服务器端的配置-第2张图片


另外,Ranks模组配置是必须的,如果不配置FTB Ranks或者将FTB Ranks的配置中的命令改为false,就会出现找不到命令的情况

服务器端的配置-第3张图片

你需要明白,大部分指令会被EssentialsX权限覆盖,所以很多不必要配置

一般配置rtp与trashcan即可

其他FTB Essentials配置

比如你想配置rtp的冷却时间


可以添加一行

ftbessentials.rtp.cooldown: 0

rtp的冷却变为0


诸如此类,我们还可以设置其他的功能,具体放在最后面了

配置FTB Chunks

跟上面的配置相似,也是添加几行代码:

ftbchunks.max_claimed: 500
ftbchunks.max_force_loaded: 25

第一行代表最大可声明区块数量为500

第二行代表最大强制加载区块数量为25


配置完使用`/ftbranks reload`刷新配置

在服务器右下角可以看到

服务器端的配置-第4张图片

代表配置成功


FTB Essentials配置表

fly开关(ture/false) command.fly: true

god开关(ture/false) command.god: true

heal开关(ture/false) command.heal: true

invsee开关(ture/false) command.invsee: true

mute开关(ture/false) command.mute: true


enderchest开关(ture/false) command.enderchest: true

hat开关(ture/false) command.hat: true

kickme开关(ture/false) command.kickme: true

nick开关(ture/false) command.nick: true

rec开关(ture/false) command.rec: true

trashcan开关(ture/false) command.trashcan: true


随机传送开关(ture/false) command.rtp: true

随机传送冷却 (范围: 0 ~ 604800) ftbessentials.rtp.cooldown: 600

随机传送最远距离 (范围: 0 ~ 30000000) ftbessentials.rtp.max_distance: 100000

随机传送放弃之前的准备时间(范围: 1 ~ 1000) ftbessentials.rtp.max_tries: 100

随机传送最短距离(范围: 0 ~ 30000000) ftbessentials.rtp.min_distance: 1000


home开关(ture/false) command.home: true

home冷却 (范围: 0 ~ 604800) ftbessentials.home.cooldown: 10

home最大数量(范围: 0 ~ 2147483647)  ftbessentials.home.max: 1


back开关(ture/false) command.back: true

back冷却 (范围: 0 ~ 604800) ftbessentials.back.cooldown: 10

back最大次数(范围: 0 ~ 2147483647)  ftbessentials.back.max: 10


spawn开关(ture/false) command.spawn: true

spawn冷却 (范围: 0 ~ 604800) ftbessentials.spawn.cooldown: 10


tpa开关(ture/false) command.tpa: true

tpa冷却 (范围: 0 ~ 604800) ftbessentials.tpa.cooldown: 10


tpl开关(ture/false) command.tpl: true

tpx开关(ture/false) command.tpx: true


warp开关(ture/false) command.warp: true

warp冷却 (范围: 0 ~ 604800) ftbessentials.warp.cooldown: 10


示例配置(自用)

{
member: {
name: "Member"
power: 1
condition: "always_active"
ftbranks.name_format: "<{name}>"
        ftbchunks.max_claimed: 500
        ftbchunks.max_force_loaded: 25
        command.nick: true
        command.hat: true
        command.trashcan: true
command.rtp: true
ftbessentials.rtp.cooldown: 60
command.home: true
        ftbessentials.home.max: 25
        command.back: true
        command.spawn: true
        command.tpa: true
        command.warp: true
}
vip: {
name: "VIP"
power: 50
ftbranks.name_format: "<&bVIP {name}&r>"
}
admin: {
name: "Admin"
power: 1000
condition: "op"
ftbranks.name_format: "<&2{name}&r>"
}
}