欢迎来到Minecraft插件百科!
对百科编辑一脸懵逼?
帮助:快速入门
带您快速熟悉百科编辑!
因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
查看“PEX”的源代码
←
PEX
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于这些用户组的用户执行:
用户
、
自动确认用户
、
巡查者
您可以查看和复制此页面的源代码。
== <big>PEX</big> == '''声明''':本'''PEXWiKi'''是我('''[[用户:JACV|JACV]]''')对EN版'''PermissionsEX'''WiKi的翻译&搬运。<br /> '''原因''':个人认为MineCraft插件百科上的PermissionsEX百科搬运得非常糟糕,格式紊乱、翻译不全。在此提供方便阅读、翻译完全的PermissionsEX百科。<br /> ---- '''<big> === 介绍 === </big>''' 首先,欢迎来到PermissionsEX百科!<br /> 这一份关于Permissions1.x/2.x百科的建立过程非常艰辛!因为两个版本的PEX拥有着完全不同的文件和设置(具体查看)<br /> PermissionEX是Bukkit目前最古老、高效的权限管理插件,从2011年PermissionEX2.x版本研发开始,PEX的开发者一直坚持不懈地对这款插件进行完善和升级。直至今日,它依然在MineCraft服务器中发挥着至关重要的作用!<br /> PEX之所以能成为大家的首选,原因就在于它拥有无比优越的插件功能。它不仅支持多种不同类型的服务端/数据库,同时,也能清晰明确地为MineCraft世界提供各类权限,甚至可以为每个世界设置单独的权限!(具体参考 Modifyworld )<br /> 这一份WiKi理论上已经能够协助你完全掌控PEX。如果你仍有任何问题,欢迎加入我们翻译团队IRC channel或者直接访问PermissionsEX论坛提问!<br /> ---- === '''<big>特性</big>''' === PEX1.15版本及以后版本的特性: *原生超级权限,无需任何前置! *支持多种数据库,例如:YAML、SQL(MySQL, SQLite),甚至可能支持你自己制作的! *如果使用YAML数据库,那么所有的玩家权限、组权限都会统一于一个文件当中:permission.yml。这个文件的名字还可以自定义!(具体查看) *如果使用SQL数据库,那么更加有趣了!现在MySQL和SQLite数据库均支持PEX。但是其它的DB数据库服务端也可以支持。PEX拥有自动化适应、生成DB菜单和配置文件的功能。<br /> :也就是说,只要你能够保证PEX能与数据库进行连线,那么其他完全不在话下。 *灵活多样的设置方式:你完全可以按照自己的喜好设置权限(具体查看) *和Yeti's Permissions v2.7.4版本完全兼容,同时,PEX还兼容市面上2/3的权限插件。当你同时安装多个权限插件时,PEX会将自己与它们区分开来(具体查看) *拥有多样化的聊天窗/控制台命令。使用PEX,你几乎可以在游戏或者后台做出任何事情! *拥有一种名字叫做“ModifyWorld”的防御机制。这个机制就像是完全独立的插件一样,能够完全操作玩家的行为、模式和效果。例如破坏/建造方块,骑马/乘船、受不受怪物的攻击等等,功能根本无法一言带尽!<br /> :你甚至完全可以把它当做Residence或者WorldGuard使用(具体查看) *拥有非常方便的组继承功能!玩家可以继承于(例如)系统默认组,拥有其中所有权限;同时,还可以设置前缀/后缀(具体查看) *支持大权限输入!所谓大权限,即集中一系列小权限的命令,你可以直接将大权限放入玩家设置中,以节省空间,方便管理!(具体查看) *多世界权限管理。你可以设置统一权限管理(Global),亦可以设置单独世界的权限管理。(具体查看) *升级为PEX2.x版本时,原有的设置可以直接应用!(如果你使用PEX3.0而想换回PEX2.0,你需要将配置文件先整理成PEX2.0的格式!) :PEX2.0甚至内嵌YAML/SQL数据库 *权限高度兼容。你可以访问来查看介绍 *表现优异!即使你的服务器拥有100+的玩家,PEX也保证不会出现任何一点差错! *升级/降级系统。你可以设置出好玩的RPG服务器了! *更多特性,敬请期待…… ---- '''<big> === 基础 === </big>''' PemissionsEX,是从各种前辈权限插件中寻找灵感、不断完善的最终产物!它使用你不陌生的通用设置风格。<br /> 各类插件、PEX、Bukkit原生权限统统集中于一个文件之中。这个文档叫做permission nodes,里面包含了各种命令、特色权限,甚至是对事件的管理。 ==== '''<big>内容</big>''' ==== *'''权限术语''' *'''权限配置格式''' *'''PEX文件格式(YAML)''' ---- ===== '''<big>PEX和服务器的权限术语</big>''' ===== PS:这里我全部采用官方术语(EN),方便后面的阅读翻译;当后面出现这些术语时我将直接写EN *Server Console (AKA Console)(控制台):即控制台,服务器启动时需要的命令面板,后台记录日志、输入执行命令的地方 *Global Permissions(总权限):应用于所有世界的权限设置 *World Specific Permissions(分世界权限):单独应用于一个世界的权限设置 *Users(用户): 权限应用者 *Group(组): 权限应用组,这里,权限应用组也可以设置为所有世界的通用组或单独世界的权限组,具体看需求 *Node(权限语句): 象征命令的语句,例如Bukkit端的bukkit.command.give即是象征/give 命令的语句 *Negation(否定): 标记一条Node,设定它在什么情况下生效/失效 *Inheritance(继承): 是一种让一个组去继承另一个组权限的功能。PEX支持组继承/世界继承 *Metadata(元数据): (即小ID)元数据为各种各样的物品提供ID定义,例如同一块木头拥有不同颜色,不同形状的同一件物品,区分门到底是开的还是关的。这个功能主要用于Modifyworld ---- ===== '''<big>权限配置格式</big>''' ===== PEX支持文件通用格式和SQL的格式编译,为了更好更生动地体现格式要点,下面举出一个文件通用格式的例子: {{Hide|标题=权限格式 |内容= users: <- 用户部分 t3hk0d3: <- 玩家名称 group: <- 玩家所隶属的组 - default <- 隶属组名称 permissions: <- 玩家特制权限部分 - permissions.* <- Node worlds: <- 玩家世界设置 world: <- 指代独立世界world permissions: <- 在这个world中拥有的权限 - test.* <- Node group: <- 在这个world中隶属的组 - testers <- 组名称 prefix: '&5[YARR]&f' <- 在这个world中的名称前缀 groups: <- 组部分 default: <- 表示默认组 default: true <- 是否应用默认设置 permissions: <- 添加组权限 - -modifyworld.blocks.interact.23 <- 否定这条Node - modifyworld.* <- Node admins: inheritance: <- 组继承设置 - default <- 继承的组名称 permissions: - example.permission - -punish.noobs options: <- 组设置(数据库方面) test.test: '100500' <- 额外数据 rank: '1' <- 排位等级 worlds: nether: permissions: - nocheat.fly prefix: '&7[ADMIN FROM HELL]' testers: inheritance: - admins options: test.test: '9000' worlds: <- 世界部分 nether: <- 世界名 inheritance: <- 继承设置 - world <- 继承于World }} ---- ===== '''<big>PEX文件格式(YAML)</big>''' ===== 众所周知,PEX采用和其他插件同样的YAML文本格式进行设置。(YAML是一种编译格式,访问 http://yaml.org/ 了解更多)YAML可不是简单的TXT文档,它非常注重格式的准确!<br /> 一旦出错,就算是PEX这么AI的插件都会无法运行(甚至蹦服),所以,请严格根据规定进行编译: *注意YAML的保留字,有 ' - : # %,如果你想使用这些保留字作为自定义数据,那么你就需要按以下方法定义: :<code>%prefix%player%suffix> &e%message</code> 这个代码是错误的 :<code>"%prefix%player%suffix> &e%message"</code> 这个代码才是正确的 *数字的应用必须使用’’(引用),例如 :<code>1000</code> 或 <code>45625</code>这种语法是错误的; :<code>'1000'</code> 或 <code>'45625'</code>这种语法才是正确的 *换行是不允许的,除非你使用在’’(引用)之中;而且这种换行的操作是按两下空格键(Space) *所有的组设置都必须从每行的第一个字开始,组下面的设置请严格按照排列格式(即要求注意空格/相互对齐) 由于PEX自身限制,有一些符号也只能用于引用之中(或者你不用它)包括 } { ) ( ? * 虽然这不是YAML的限制,但这些符号和YAML保留字有相同的效果 ---- === '''<big>Config</big>''' === ==== '''<big>内容</big>''' ==== *'''安装''' *'''PEX配置文件''' *'''配置文件描述菜单''' *'''数据库(Backends)''' **'''文本数据库设置''' **'''SQL数据库设置''' ***'''MySQL数据库设置''' ***'''SQLite数据库设置''' ---- ===== '''<big>安装</big>''' ===== *所有新版本的PEX(从1.21开始)只支持MC1.7.9以上的Bukkit服务端 *MC1.7.9以下的Bukkit服务端请使用1.20.4版本以下的PEX <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"> 从https://dev.bukkit.org/bukkit-plugins/permissionsex/files/下载相应版本的PEX BukkitDev上的PEX目前已经基本稳定,当然如果发现MC版本升级、BUG出现或者进行测试的时候,PEX开发工作一定会紧锣密鼓地进行。 当你安装了PEX后,启动服务器,PEX会自动生成一个默认配置文件。除非你想链接SQL数据库或对PEX进行微调,否则不需要对这个文件进行任何设置。 如果你需要设置这个配置文件就请继续阅读,否则,直接跳到命令板块。 </pre> '''<big>PS:</big>请注意,如果你在使用PEX遇到任何问题,先确保你的服务端中没有其他权限插件!''' ---- '''<big> ===== PEX配置文件(Config) ===== </big>''' 所有的PEX配置都在文件config.yml中,请按照示例配置: [https://pan.baidu.com/s/1pKMH8WN 点击下载标准格式Config] {{Hide|标题=Config |内容= permissions: backends: <- 数据库定义方面 file: <- 数据库文件 file: permissions.yml <- 生成使用的文件(在这里就可以自定义名字了) backend: file <- PEX发挥作用时,所使用的数据库(file为通用文本数据库,即YMAL;或SQL数据库) createUserRecords: false <- 其它设置 allowOps: false debug: false user-add-groups-last: false basedir: plugins/PermissionsEx <- 数据库定位插件路径(只在通用文本数据库中生效) informplayers: changes: false <- 当玩家的权限改变时,是否通知他们 multiserver: use-netevents: true updater: true alwaysUpdate: false }} '''<big>PS:</big>你的config.yml文件几乎和上面的一样。当然,如果少掉一两行也是正常状况。你可以根据以下列表来改变默认的设置。''' ---- ===== '''<big>配置文件描述菜单</big>''' ===== 除非有特别标注,否则设定值均为true/false 请注意,如果你使用了不存在的权限,那么相似的权限就会被应用!请查看来了解更多 {| border="1" cellpadding="20" cellspacing="0" !Node |描述 |- |permissions.backends |包括了数据库中所有的权限(查看数据库(Backends)了解更多) |- |permissions.backend |默认权限,可以指代在总数据库中定义的子数据库(这个指令属于permissions.backends子指令 |- |permissions.allowOps |将给予玩家OP的所有权限 |- |permissions.debug |是否在PEX启动时进行调试;更多内容查看 |- |permissions.user-add-groups-last |如果这个功能设置为true,使用/pex user <user> group add <group>时就会将用户权限应用于组;<br /> 设置为false,就会将组权限应用于用户(优先级问题) |- |permissions.basedir |配置文件的基本目录,除非你知道你在干嘛,否则不要动它 |- |multiserver.use-netevents |开启/不开启PEX多服务器统一化(只有在跨服插件(NetEvents)启用时才有效 |- |updater |是否自动更新,默认为是 |} ---- ===== '''<big>数据库(Backends)</big>''' ===== PEX支持两种数据库:通用文本数据库和SQL。默认使用通用文本数据库 切换数据库并不需要重启服务器,只需要使用pex backend命令即可切换。当然你也可以在config文件中手动切换 前往命令板块了解更多信息! ====== '''<big>文本数据库设置</big>''' ====== 所有的命令都集中在你在'''config自定义的那个文件'''里面 ====== '''<big>SQL数据库设置</big>''' ====== '''警告:由于SQL数据库是会不断更新的,所以特别标注这个百科的撰写时间:1/2/2013'''<br /> ::'''在该时间段前设定的允许默认命令字符长度为200个,如果你设置了超过200个字符的node,那么可能数据库会拒绝,也可能服务器会崩溃;'''<br /> ::'''如果你想突破这个限制,你需要:'''<br /> *前往编译SQL数据库,改变它的限制规则(注意这是必须的!而非建议) *把node分割成几小块,每一小块都不得超过200字符串(你不会就别分) 在此,感谢Bukkit用户[https://bukkit.org/members/s32ialx.90585775/ s32ialx]提出了SQL的限制问题!<br /> SQL数据库的所有命令Node均包含在permissions.backend.sql这条Node里面 {| border="1" cellpadding="20" cellspacing="0" !Node |描述 |- |uri |数据库连接数据流,亦指AKA(认证和密钥协议)和DSN(数据源);<br /> 请注意,DSN配置有特定的规范,例如MySQL的uri为<code>mysql://<hostname>/<database></code> |- |user |连接数据库的用户名,如果不需要也可以不设置 |- |password |连接数据库的密码,如果不需要也可以不设置 |} ====== '''<big>MySQL数据库设置</big>''' ====== 下面列出SQL数据库设置中的MySQL数据库设置: {{Hide|标题=MySQL数据库设置 |内容= permissions: backend: sql backends: sql: uri: mysql://localhost/databasename user: username password: password }} 修改以上的主机名称(Hostname)、数据库名称、用户名称以及用户密码都必须与你之前的设置(Config)相一致。在很多情况下,主机名称(Hostname)一般是你的本地主机名称(Localhost)。 同时,在大多数情况下,数据库系统和服务器系统是放在一起的。在此建议,设置前务必检查你的主机地址或者是network/system地址。 '''PS:如果你完全不知道你在做什么,请你什么都别动!'''<br /> 如果你需要添加新的数据库,可以像下面这样: {{Hide|标题=添加数据库 |内容= permissions: backends: sql: uri: mysql://192.168.5.4/demo password: password user: demo aliases: permissions: pex_permissions permissions_inheritance: pex_inheritance permissions_entity: pex_entity }} ====== '''<big>SQLite数据库设置</big>''' ====== SQLite数据库设置和MySQL数据库大同小异 在设置SQLite数据库的时候,你需要将<code>permissions.backends.sql.driver</code>这条Note设置为<code>sqlite</code> 以及,将<code>permissions.backends.sql.uri</code>设置为如同<code>sqlite:databasename</code> {{Hide|标题=SQLite数据库设置 |内容= permissions: basedir: plugins/PermissionsEx backend: sql backends: sql: uri: sqlite:plugins/PermissionsEx/permissions.db user: username password: password }} 当你设置完成并重启服务器后,在PEX的文件夹中会生成一个名为'''permissions.db'''的文件。 '''PS:请不要删除它!它即是数据库!''' ---- === '''<big>迁移和UUID</big>''' === ==== '''<big>内容</big>''' ==== *'''数据库之间的迁移''' *'''UUID支持''' ---- ===== '''<big>数据库之间的迁移</big>''' ===== 从一个数据库中将数据迁移至另一个数据库,所有版本的PEX操作几乎都和1.21版本的一致,遵循以下步骤: ::1.首先确认,两个数据库皆为配置文件中(Config)允许使用的数据库; ::2.将两个数据库的配置设置于配置文件中(Config); ::3.重启服务器,输入命令/pex import <oldbackend>,即会将旧数据库中的内容迁移至新数据库,同时,重置旧数据库中的所有内容(所有之前设置的组合用户都会被重置)。 ---- ===== '''<big>UUID支持</big>''' ===== PEX支持UUID,如果用户受到PEX权限限制,PEX就会将用户的注册信息迁移至UUID。而用户的档案就会保存在name(这个name是用户最新的名字,如果Ta更改过用户名的话) 那么,在需要回档的时候PEX就能够轻松地回档(虽然这个过程几乎不会出错,但是还是建议你往下看) 但是,如果你的服务器没有开启正版认证,PEX就会有概率丢失一些权限设置!<br /> 当你的服务器处于离线模式(未开启正版认证),UUID就只能依靠name文档运行了(它就无法联网寻找支持)。这就意味着, 如果用户更改了Ta的用户名,不管这个用户是不是正版用户,他的UUID也会被改变 但是,有一些代理服务器,却会绕过这种改变 ====== '''<big>弹力绳(BungeeCord)</big>''' ====== 如果你使用的是弹力绳代理服务器,运行Spigot端时必须在服务端配置文件中将弹力绳(BungeeCord)选项设置为true,才能保证UUID稳定运行! ====== '''<big>百合派(LilyPad)</big>''' ====== 如果你使用百合派代理服务器,只有百合派-Bukkit联网服务端才能保证UUID的正常运行 ---- === '''<big>基本权限设置</big>''' === 就和之前提到过的一样,PEX支持在聊天窗/控制台输入命令,在游戏中/外实现任何权限! '''下面的介绍能够帮助你有效地利用聊天窗/控制台设置符合PEX,这些指令均可以在游戏内/外执行。''' '''如果你要在游戏中使用命令,必须加上/;如果你在控制台上使用,则不用加/''' ==== '''<big>内容</big>''' ==== *'''命令Node''' **'''“*”命令要点''' **'''修改文件要点''' *'''辅导目标''' *'''准备''' **'''进行基本、简单的命令构造''' ***'''如果你使用控制台''' **'''添加自定义组''' **'''设置权限等级''' **'''设置有趣的前缀!''' **'''给每一个组添加权限''' *'''测试你的总体设置''' *'''测试你的等级设置''' *'''文件修改示例''' ---- ===== '''<big>命令Node</big>''' ===== PEX和其他的权限插件一样,都是采用通用的权限设置格式。但是,PEX的权限默认是全部关闭的,你需要手动将权限Node放置在列表中,这个命令才会允许被使用。 你可以通过PEX为默认组设置各种权限,也可以为其关闭某些权限。<br /> 如果你要在游戏中开通某些权限,使用这条命令:<code>pex group <group> add <node></code> 而如果你想禁用某些权限,只需要在<node>前加上 <code>-</code> 例如,在Bukkit端口中,设置有关/give和/plugins的命令权限: *首先,/give这条命令对应的Node为<code>bukkit.command.give</code>。这条命令通常是默认只有OP才能使用的; */plugins对应的Node为<code>bukkit.command.plugins</code>,这条命令通常是所有玩家均可以使用的。 那么,你需要添加或禁止这两条命令,你就需要这样做: *让玩家能够使用/give,输入并执行<code>pex group groupname add bukkit.command.give</code>即可; *禁止玩家使用/plugins,输入并执行<code>pex group groupname add -bukkit.command.plugins</code>即可
本页使用的模板:
模板:Hide
(
查看源代码
)
返回
PEX
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
编辑相关
百科公告
编辑帮助
互助客栈
贡献分数
测试沙盒
发布条目
插件分类
管理
安全
聊天
编程
经济
修正
娱乐
综合
信息
机械
角色
传送
网页
整地
创世
付费
其它
工具
链入页面
相关更改
特殊页面
页面信息
相关网站
MCMOD百科
Minecraft中文百科
Minecraft纪念论坛
Minecraft百度贴吧
虚无世界Wiki