最MC论坛

标题: minecraft服务器permissions_node权限管理插件配置基础[bukkit1.5.2] [打印本页]

作者: alecthree    时间: 2013-5-24 23:43
标题: minecraft服务器permissions_node权限管理插件配置基础[bukkit1.5.2]
[教程]minecraft服务器permissions_node权限管理插件配置基础[bukkit1.5.2]

看过很多新手服主问permissions node权限管理插件的配置.
这个,是技术硬功夫.

开bukkit作服务器核心的minecraft服必会的技术基础.这个不会.没法开服的.我这里不是说基友服,是说40人以上的公网服务器,基友服根本用不到写这种技术教程.

现在minecraft 1.5.2时代了.能跟上bukkit版本一直追新的permissions node权限管理插件基本上没几个了.
硕果仅存的YAPP也停止在了1.5.1时代.知名的permissionsex,bpermissions,根本没有进军1.5.x的迹象.
就剩zpermissions和essentials group manager还现在能上bukkit 1.5.2的原生支持.
其他都是向上兼容而已.

先开讲essentials group manager吧.然后再讲zpermissions,希望两天内能贫完这点破事儿.

-待续

作者: alecthree    时间: 2013-5-25 00:09
本帖最后由 alecthree 于 2013-5-25 01:41 编辑

essentials是一套插件,很庞大.内容太多.
不过
essentials group manager是可以当单体插件来用的.简称ess gm吧.名字太长.
现在的预览版EssentialsGroupManager-pre2.11.1.6
已经可以上bukkit 1.5.2了.

http://wiki.ess3.net/wiki/Downloads
这里是essentials的维基,下载发布页,有pre-release,预览版的下载,其中essentials-gm那个就是group manager.新版已经不需要什么GroupBridge那个东西了.

jar文件扔到服务器plugins文件夹起服,自动生成配置文件.

完了说一下文件ess gm的配置文件结构.
维基其实都有.
http://wiki.ess3.net/wiki/Group_Manager

config,不用说了吧.自己看维基好了.难点主要是
他那个权限节点的分布式结构,

感觉ess gm好像是鼓励服主配permissions node的时候,多进行模块化编写.完了呢,把permissions node写好的多条权限,分到一个模块下,完了再到实际应用permissions node的文件中直接引用模块名字.

类似这么一种逻辑.但是这对于permissions node新手有点太晕头转向了.
简单来说,就是global分多个组权限.然后实际一个世界或者多个世界自己的权限配置,继承global的组权限.
然后各个世界再自己附加的独立的权限配置.
然后如果不同世界的权限有一致的,可以世界之间的权限互相镜像,这样父权限世界配置一次,其他子镜像世界,就镜像父世界的权限就好了.

晕不晕.不晕那继续.

而且,如果不把ess gm和essentials本身其他插件搭配使用.那配置文件默认写的那么多根本没用.

所以,上来最小化.ess gm的配置.删除那些乱七八糟没用的权限.具体方法.

globalgroups.yml就写三行.
  1. groups:
  2.   g:globaldefault:
  3.     permissions: []
复制代码
那个[]表示空值.g:globaldefault,的g:开头表示这个是全局权限组,供其他世界本身权限配置文件中的权限组来继承权限的.必须这么写,不能写成不带g:开头的普通权限组.会报错.因为这是globalgroups,全局配置文件.这个是ess gm的一个死规矩.

plugins\GroupManager\worlds\world\下,groups.yml就写简单的几行
  1. groups:
  2.   default:
  3.     default: true
  4.     permissions: []
  5.     inheritance:
  6.     - g:globaldefault
  7.     info:
  8.       prefix: ''
  9.       build: false
  10.       suffix: ''
复制代码
  1. 注意那个default:true那个是这个文件下,所有的组,只有那一个可以default:true其他都是不写这行,或者有,但是写false,这个表示什么组都没有的玩家,上来就用那个组的权限.但是那个组一般要分特别特别低劣的权限,甚至禁用掉普通生存玩家的建造权限...一般给新来服务器的,或者罪犯等用的权限组.正常玩家不用default组.
复制代码
完了,还是world下,users.yml,就写
  1. users:
  2.   playernotexist:
  3.     group: default
  4.     subgroups: []
  5.     permissions: []
复制代码
这样就很简单了.
不能写的太过简单,否则,essentials group manager开始启动的时候会检查这些文件的语法.会报错.至少要写一条垃圾条目.
用户这个条目,实际上是要求,这个用户至少登录过一次服务器的.
否则,当配置发生变化的时候,添加了正常的用户,那个playernoexist条目会被删除.

另外,这个这么配是有原因的.
因为config.yml中,的settings:下已经有
  1.   mirrors:
  2.         world:
  3.           world_nether:
  4.           - users
  5.           - groups
  6.           world_the_end:
  7.           - users
  8.           - groups
复制代码
表示,地狱和末地的权限都镜像主世界overworld的,所以,改了主世界的权限,地狱和末地的权限列表也会跟着变动,不用改了.
如果有地狱和末地的权限permissions node的文件夹,可以直接删除.就留主世界的.
完了这样,就可以开始重启服务器,开始配permissions node了.

-待续.



作者: alecthree    时间: 2013-5-25 00:35
本帖最后由 alecthree 于 2013-5-25 00:38 编辑

比如我现在有几个插件,商店,
http://dev.bukkit.org/server-mods/battleshops/
经济插件.
http://dev.bukkit.org/server-mods/boseconomy/
vault api
http://dev.bukkit.org/server-mods/vault/

基本上vault没什么好配的.
battleshops这个,怎么弄.默认普通玩家无法建商店.
其实这个插件就2条权限.在他原网站上有.
shop.create
shop.admin

那么,先给玩家,比如player1,配商店权限.

一般配permissions node权限管理就需要4步.建权限组,给权限组配权限,给权限组加人,证验.
ess gm的建组命令,比如在服务器控制台,或者有权限的op也可以,但是如果在客户端登录服务器配,命令开头要加/

mangadd player
这个是建立一个名字为player的组
mangaddp player shop.create
这个是把商店建造的权限加到player组.
manuadd player1 player
这个是把player1加到player权限组中.因为player组有商店权限,player1是player组组员,那么他也有商店权限.

证验.除了进入游戏测试.
manwhois player1
可以看player1的当前组.
manudel player1
把player1从他当前的组中移除.之后可以继续manuadd重新加组.比如配错了,或者换组,都可以用这个.

具体essentials group manager命令全表,在http://wiki.ess3.net/wiki/Group_Manager/Commands

然后可以配op们的权限.
比如建一个op的组serveradm,完了把2条商店权限都配上.那就
mangadd serveradm
mangaddp serveradm shop.create
mangaddp serveradm shop.admin
manuadd oper1 serveradm
那么,oper1是一个op管理员.

不难吧.serveradm就是服务器的op权限组.这样op有商店插件的管理权限了.

-待续

作者: alecthree    时间: 2013-5-25 00:55
本帖最后由 alecthree 于 2013-5-25 01:19 编辑

然后经济插件.boseconomy.
这个插件的settings.txt中可以设置
use-permissions-plugin true
默认op也没有权限刷钱.

所以要配permissions node来获得管理权限.不过这个插件权限列表很长.原文在
http://dev.bukkit.org/server-mods/boseconomy/pages/permission-nodes/

所以这个.大概60多条,不可能我去一条条命令敲去.原插件的permissions node表也没提供通配符权限,比如aaaa.bbbb.*这种,配一条所有权限全都加,
或者什么什么.all之类的,配一个权限就全部权限都有的那种.
那怎么办呢?

这个就要用到bukkit服务器本身的permissions.yml.相关知识可以自行搜索http://wiki.bukkit.org网站,可以搜permission.
简单来说就是自己整合一条通配符或者,总和的权限.

修改permissions.yml,在bukkit服主程序的目录.
  1. bose.full:
  2.     description: complete BOSE perms node for admin
  3.     children:
  4.         BOSEconomy.accountgroup.players: true
  5.         BOSEconomy.accountgroup.banks: true
  6.         BOSEconomy.accountgroup.brackets: true
  7.         BOSEconomy.accountgroup.general.online: true
  8.         BOSEconomy.accountgroup.general.offline: true
  9.         BOSEconomy.accountgroup.general.players: true
  10.         BOSEconomy.accountgroup.general.banks: true
  11. .......一共60多条.......
  12.         BOSEconomy.admin.bank.removemember: true
  13.         BOSEconomy.admin.payday.reset: true
  14. bose.common:
  15.     description: bose perms for normal players
  16.     children:
  17.         BOSEconomy.common.wallet: true
  18.         BOSEconomy.common.income: true
  19.         BOSEconomy.common.mastry: true
  20. ....也是好多条.都是boseconomy.common.xxxx开头的
  21.         BOSEconomy.common.bank.listmembers: true
  22.         BOSEconomy.common.help: true
复制代码
注意退格不要错.标点符号也不要错!
完了其中bose.common:是给普通玩家的权限,bose.full:是给admin的,写法都可以自己写简单短小,方便输入的,每条权限最后的: true不能少.因为这是bukkit的权限定义文件.然后让插件来借用而已.
description: 是可以自己写注释.没有也没事.children:必须有.

然后实际配权限就很简单了.因为我已经自己做了2条总和权限节点.包括那么多permissions nodes.
那么ess gm直接,
mangaddp serveradm bose.full
mangaddp player bose.common
二条命令搞定.至于编辑那个列表,从插件原网站复制下来,编辑一下,比一条条敲要快好多.

配好了之后,可别忘了保存!
很多插件都要求先保存,再reload配置,否则您就欲哭无泪去吧!
mansave保存.manload是ess gm的配置重新载入.

boseconomy插件,也有这种命令, econ save保存和econ reload...重载配置
勤保存一下没坏处.

完了到游戏中证验一下吧.
op账号应该就可以用/econ add 玩家名字 金钱数
这种命令,给玩家刷钱了.

具体boseconomy命令全表可以看http://dev.bukkit.org/server-mods/boseconomy/pages/commands/

这个经济插件和iconomy都差不多1.4.x时代的牛X物,好久不更新了.不过很有名.

-待续.

作者: alecthree    时间: 2013-5-25 01:10
标题: 中间休息
本帖最后由 alecthree 于 2013-5-25 06:38 编辑

留个坑.我先睡觉了.今天讲了essentials group manager,

明天,如果没有意外,我讲
craftconomy, quickshop, zpermissions, vault,这套组合.

2套组合下来,应该就都会配permissions node了.

另外我贫一句,那个battleshops那个插件.默认牌子商店和箱子相连用的红石棒,用红石棒子左键锤一下自己的箱子,会将所有U状态的商店牌子和箱子中货品进行链接,再锤一次断开链接,可以多个牌子商店连一个箱子.
不过红石在某些服务器是禁用的.可以改为262号物品(弓箭的箭),或者别的东西.另外,牌子商店那个左键是卖东西,右键是买东西,最好手里空着,去点牌子,否则容易出问题.

另外这个是基础教程,不讲:
高级的什么权限优先级,
权限继承,
否定/负面权限写法,
权限override强制覆盖,
权限模块化编写,
前后缀与美名插件/聊天格式插件联动,
如何阅读英文文档,
如何理解原文技术文档到底哪个permissions node是玩家用的,哪个是管理员用的,
等等.

-待续

作者: alecthree    时间: 2013-5-25 06:23
本帖最后由 alecthree 于 2013-5-25 06:27 编辑

完了.刚才把组建了.权限节点加入到对应的权限组了.
第三步.
把玩家加入到对应权限组.让他们继承权限组的权限.

zpermissions的方法,也是命令.

permissions player player1 setgroup player
permissions player oper1 setgroup serveradm

这2个命令表示把player1加入到权限组player中.
把玩家oper1加入到权限组serveradm中.
这样他们应该就有权限了.

因为之前quickshop和craftconomy的权限都加到player组和serveradm组了.
所以.

普通玩家player1,应该可以在服务器内创建quickshop商店了.之前没配权限节点时候他是不能的.而且,他也可以/qs buy把自己面前的商店切换为收购商店.但是不可以/qs unlimited制作admin无限商品商店.
然后player1还可以用/money 查看自己有多少钱.
默认没有permissions node时候,是不能用这个命令的.

而oper1作为管理员,现在可以在普通quickshop商店前头,输入/qs unlimited把商店变为无限商品商店.
也可以/money give 玩家名字 金钱数额
为其他玩家刷钱/凭空增加钱币了.

这就ok了.

这样.商店和经济插件的permissions node权限节点就都配好了.

其他插件也类似是这样的逻辑,都不难.费点功夫而已.
弄完可以看看zpermissions的data.yml内部是怎么写的.如果服务器停服的时候,那个是可以手动编辑的.不过要有把握,语法别弄错了.

zpermissions全命令列表在
http://dev.bukkit.org/server-mods/zpermissions/pages/commands/

-全文完-

作者: alecthree    时间: 2013-5-25 12:19
然后现在换一套组合.
bukkit 1.5.2 r0.1 beta
网址dl.bukkit.org
加craftconomy 3.1.3
网址http://dev.bukkit.org/server-mods/craftconomy/
加quickshop 4.4
网址http://dev.bukkit.org/server-mods/quickshop/
加vault 1.2.25
http://dev.bukkit.org/server-mods/vault/
加zpermissions 0.9.19.
http://dev.bukkit.org/server-mods/zpermissions/
这个组合.

插件jar文件都扔到服务器plugins文件夹.起服,会自动生成配置文件.

完了看怎么配这个quickshop商店的permissions node.

经济插件我没用imonies,因为自己感觉有不方便的地方.这个见仁见智,你喜欢也可以试试.

craftconomy上来是setup模式,转正常模式要配.用op账号进服
按照英文提示,把这一套命令,逐条按照提示敲一遍.
/ccsetup
/ccsetup database sqlite
/ccsetup currency cc2 no
/ccsetup currency name Yuan
/ccsetup currency name Kuai
/ccsetup currency minor Jiao
/ccsetup currency minorplural Mao
/ccsetup currency sign $
/ccsetup basic
/ccsetup basic 100
/ccsetup basic 1
/ccsetup basic long
/ccsetup convert no

这样就行了.op账号就可以/money命令,看自己当前多少钱了.
但是普通玩家没权限,用不了这个命令.

而且craftconomy,默认配置文件有一条  CheckNewVersion: true
这个要改成false,否则老是起服时候检查新版本,浪费几秒.启动时间.如果有多个插件都开着查新版本的特性,这个整个bukkit启动过程慢好几十秒,很烦人.因为服务器测试时期重启频繁.老等着...

vault没什么好配的.
quickshop默认会挂上vault.
op上来就有在生存模式下建商店的权限,但是玩家没有权限建箱子商店.

zpermissions的配置文件config.yml中,
database-support: true
这个权限permissions node权限管理插件默认就是给挂数据库的大服用的.默认就上数据库.如果你喜欢flat-file模式,把玩家权限节点数据存为data.yml,可以把那条设置改为false.
并且配置文件中,默认权限组名是default,但是该组需要手动创建.
完了,在服务器控制台,

permissions group default create
命令创建default权限组.

zpermissions命令全表在
http://dev.bukkit.org/server-mods/zpermissions/pages/commands/

完了.stop命令,停止服务器.
zpermissions的data.yml才会生成.

完了.这样基本上就可以开始配permissions node了.把经济插件和商店插件的权限分给玩家.

-待续


作者: alecthree    时间: 2013-5-25 13:51
完了继续.比如我现在有2个玩家,一个player1是,普通玩家.一个oper1.是admin管理员.

那么还是4步走.
第一.创建权限组.
第二.加权限组的权限.
第三.把玩家分配到权限组.
第四.证验.

zpermissions创建权限组.
命令.如果是op用客户端进服务器,注意命令开头加/,我这就直接控制台敲命令了.
permissions group serveradm create
permissions group player create
这2个是创建serveradm,管理员权限组.player是玩家权限组.
具体这些权限组的名字,你可以按照自己服务器的需求写自己喜欢的样子.

完了.权限组加权限.

vault没什么.quickshop,这个插件权限比较多.那么还是.到permissions.yml写权限组的总集权限.

在那个yml中新起一行
  1. quickshop.all:
  2.         description: complete quickshop perms node for admin
  3.         children:
  4.                quickshop.use: true
  5.                quickshop.create.sell: true
  6.                quickshop.create.buy: true
  7.                quickshop.create.double: true
  8.                quickshop.create.changeprice: true     
  9.                quickshop.find: true
  10.                quickshop.unlimited: true
  11.                quickshop.setowner: true
  12.                quickshop.other.destroy: true
  13.                quickshop.other.open: true
  14.                quickshop.other.price: true
  15.                quickshop.refill: true
  16.                quickshop.empty: true
  17.                quickshop.clean: true
复制代码
注意每行结尾都要有: true的字样.原插件发布页,有权限列表
http://dev.bukkit.org/server-mods/quickshop/
他的permissions node列表可是不会在末尾给你写: true的,自己写一下,在其他文本上编辑好,粘贴过来.
完了.命令
permissions group serveradm set quickshop.all
就行了.表示给serveradm权限组加admin管理员的quickshop全部命令/使用权限.

然后普通玩家,不用像admin那样那么多权限.
permissions group player set quickshop.use
permissions group player set quickshop.create.sell
permissions group player set quickshop.create.buy
permissions group player set quickshop.create.double
permissions group player set quickshop.create.changeprice
permissions group player set quickshop.find
敲这6条就行了.表示把权限加到player组之下.

完了配craftconomy.这个权限permissions node比较多.30多条.

也是写到permissions.yml先,总集出简单的权限.
先说玩家的.
  1. craftconomy.player:
  2.         description: craftconomy perms node for normal players
  3.         children:
  4.                 craftconomy.currency.info: true
  5.                 craftconomy.bank.balance: true
  6.                 craftconomy.bank.deposit: true
  7.                 craftconomy.bank.perm: true
  8.                 craftconomy.bank.withdraw: true
  9.                 craftconomy.bank.list: true
  10.                 craftconomy.bank.create: true
  11.                 craftconomy.money.balance: true
  12.                 craftconomy.money.balance.others: true
  13.                 craftconomy.money.pay: true
  14.                 craftconomy.money.top: true
  15.                 craftconomy.money.log: true
  16.                 craftconomy.money.log.others: true
复制代码
这样,写入到permissions.yml
完了在配权限组权限时候,直接引用自己刚在permissions.yml中定义的总集权限节点.
命令
permissions group player set craftconomy.player
就完了.表示craftconomy的玩家权限加到玩家组player.

但是呢.admin的permissions node还没有加到admin权限组.
也是到permissions.yml去加
  1. craftconomy.all:
  2.         description: craftconomy full perms node for admin
  3.         children:
  4.                 craftconomy.money.give: true
  5.                 craftconomy.money.set: true
  6.                 craftconomy.money.take: true
  7.         ......一共30多条....
  8.                 craftconomy.money.log: true
  9.                 craftconomy.money.log.others: true
复制代码
命令.
permissions group serveradm set craftconomy.all
就ok了.
表示把serveradm组,管理员组的craftconomy插件权限节点,都加进去.
那个编辑permissions.yml中的条目的时候,可以用excel,或者wps表格都行,从原网站抓下来,然后编辑,这样省事点.再粘贴到permissions.yml中

另外,这种自定义的权限节点的写法,写成通配符wildcard也是可以的,比如craftconomy.*:
地下再一行行这样,
玩了命令配的时候就写permissions group XXXX set craftconomy.*
也是可以的.但是为什么我没用呢?*比all和full这种敲起来更容易啊.
就是,这个自定义权限节点不能和已有的插件权限节点冲突或者重名.
有些插件,他可能默认有这种 "插件名字.*"的权限节点,但是作者没公开发布到自己的插件发布页的permissoins node列表上.
所以,如果遇到这种情况,冲突时候会在服务器启动时候,提示说,这个权限节点已经定义过了.
有时,可能会遇到这问题.

craftconomy的命令全表和permissions node表在插件作者的维基百科
http://wiki.greatmancode.com/display/CRAFTCONO/Craftconomy+Home

-待续


作者: miaomiao    时间: 2013-5-31 20:30
啊,俯视啊
作者: MC用光剑杀李瑞    时间: 2013-6-2 11:22
。。。。。;。。
作者: 嘿嘿嘿丶    时间: 2013-6-4 22:09
这个简单而又实用,赞!
作者: 最高の愛信    时间: 2014-5-25 20:56
- -注册个号,干等10分钟就为了问四句话:代码后不要输入ture吗?还有完全不懂。设置这个干吗的?还有个问题玩家前面的就像:[平民][县长],那些个怎么设置?
作者: 沉默    时间: 2014-5-26 18:13
最高の愛信 发表于 2014-5-25 20:56
- -注册个号,干等10分钟就为了问四句话:代码后不要输入ture吗?还有完全不懂。设置这个干吗的?还有个问 ...

你好,如果你安装了groupmanssger 又是op你可以输入/mangaddv prefix Builder [称号]
这个指令的意思是给默认玩家添加前缀,就是称号啦!同样支持颜色代码,另外提问mc的问题,请到 你问我答专版,因为你错版了,我已经移动
作者: wq57    时间: 2014-5-28 20:25
搓板了?!
作者: 沉默    时间: 2014-5-28 22:18
此贴有咸鱼
作者: EDC    时间: 2015-2-14 17:29
@zuimc 这个搓板了。。移一下
作者: zuimc    时间: 2015-2-14 23:51
EDC 发表于 2015-2-14 17:29
@zuimc 这个搓板了。。移一下

ok了
作者: grim_fly    时间: 2015-2-18 11:12
支持原创人员  !!!!!!!!!




欢迎光临 最MC论坛 (http://www.zuimc.com/) Powered by Discuz! X3.2