本篇教程适合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方面的权限
权限组配置
这一方面就很简单了,只需要导入权限节点就行.
在README.txt中列出权限节点为`command.rtp`,在插件中使用时我们要添加上前缀:`minecraft.`
以GroupManager插件为例子使用的命令为:`/mangaddp Default minecraft.command.rtp`
即为默认组添加minecraft.command.rtp权限,这时候在游戏里就可以正常使用我们的命令了
另外,Ranks模组配置是必须的,如果不配置FTB Ranks或者将FTB Ranks的配置中的命令改为false,就会出现找不到命令的情况
你需要明白,大部分指令会被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`刷新配置
在服务器右下角可以看到
代表配置成功
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>"
}
}