插件的基本结构
Weber's RPGItem Loader 插件(以下简称本插件) 是一款基于Bukkit API开发的完全免费的RPG插件。当插件置于plugins文件夹完成第一次运行之后,将会在plugins文件夹中生成WebersRPGItemLoader文件夹,并且将三个配置文件放入其中。这三个配置文件分别是 config.yml、info.yml和items.yml。
Part.1 config.yml
通常来说,当你打开config.yml文件后会包含五行配置文本。其中,
isDebug 默认为false。当设置为true时,插件会在每次发生战斗时向控制台输出相关的信息,会导致刷屏,因此如无特殊需求,请不要启用此功能。
playerOnly 默认为true。此选项是用于节约服务器性能的,当设置为true后,仅玩家参与的战斗才会计算插件的各类加成。如果你想要非玩家实体之间的战斗(例如铁傀儡打僵尸)也可以计算插件的各类加成,请设置为false。
battleEcho 默认为false。当设置为true时,服务器会在战斗时向玩家输出造成的伤害信息,会导致玩家端刷屏。
noOriginDamage 默认为false。当设置为true时,如果战斗涉及本插件内容,本插件以外的其他加成属性(包括武器自身的基本属性)将会被移除。如果你想要本插件兼容其他战斗相关插件,请设置为false。
lightBattleEcho 默认为false。当设置为true时,服务器会在战斗时向玩家输出简化版的伤害信息,可能会导致玩家端刷屏。
loreCheck 默认为false。当设置为true时,插件将会启用lore检测系统,详情请查看后续章节。
所有的配置项的关键字与其对应的设置值之间都有一个空格,如果误删空格会导致配置文件完全失效。
Part.2 info.yml
info.yml是一个包含物品描述内容的配置文件。其格式通常如下
描述集合的名称a:
name: "显示的名称"
lores:
- "第一行lore"
- "第二行lore"
描述集合的名称b:
name: "显示的名称"
lores:
- "第一行lore"
- "第二行lore"
需要注意的是,所有的双引号都是英文双引号,使用中文双引号会导致报错。
描述集合的名称不允许重名
在应用描述集合后,
name这一项的内容会成为物品的名称
lores这一项的内容会成为物品的lore内容
所有的冒号和后面的内容之间都必须有一个空格
描述集合的名称左侧不允许有空格
name的左侧必须有且只有两个空格
lores的左侧必须有且只有两个空格
lores可以有任意数量的子项。
lores的子项左侧必须有且只有4个空格
lores子项的 - 符号与内容之间必须有一个空格
定义在info.yml文件中的内容仅影响应用后的文本内容,与具体属性无关!
Part.3 items.yml
items.yml的格式通常如下
属性集合的名称a:
meleePower: 0
armor: 10
attackHeal: 0.5
crit: 0.25
critMul: 0.05
currentEntityHealthDamage: 0.01
innerName: "内名a"
属性集合的名称b:
meleePower: 0
armor: 12
crit: 0.05
critMul: 0.3
stealHealth: 0.05
appendDamage: 2
innerName: "内名b"
需要注意的是,所有的双引号都是英文双引号,使用中文双引号会导致报错。
属性集合的名称不允许重名
属性集合可以有任意多个子项,但是在每个属性集合内,子项不允许重复
需要注意的是,innerName为内名,当启用loreCheck选项后,这个innerName将作为关键词检测,lore中包含此innerName的物品将会应用这个属性集合中的属性。
对于同一玩家,innerName不会多次生效。(即如如果一名玩家身上装备了两件包含 内名b 的装备,只有其中一件装备的内名属性生效)
属性集合的名称左侧不允许有空格
属性集合的任意子项左侧必须有且只有2个空格
所有的冒号和后面的内容之间都必须有一个空格
Part.5 更改物品的描述
当你完成了第二章的配置之后,可以进入游戏来为你的装备修改描述了。
手持你准备更新描述的物品,输入/wrlLBI <描述集合名> 来为手持的装备更新描述。(描述集合名参见Part.3)
例如,我在info.yml文件中配置了一个描述集test1,我手持钻石剑并输入下述指令
/wrlLII test1 这样做以后我手持的钻石剑的相关描述将会更改,但如果我不做其他操作, 这把钻石剑将是徒有其表的,也就是说,名称和描述变了,但属性仍然与钻石剑无异。
Part.6 检测NBT标签的装备配置(不适用1.7.10)
注意,1.7.10版本的游戏可以跳过本部分内容。
当你完成了Part.4的配置之后,可以进入游戏来为你的装备附加属性了。
首先确保你有使用本插件命令的权限。
手持你准备附加属性的物品,输入/wrlLBI <属性集合名> 来为手持的装备附加属性。(属性集合名参见Part.4)
例如,我在items.yml文件中配置了一个属性集CharityCore,我手持钻石剑并输入下述指令
/wrlLBI CharityCore 这样做以后,即使我手中的钻石剑表面上看没有任何变化,实际上这个钻石剑已经具有了CharityCore属性集中的全部属性。
如果你结合Part.5的内容,为手中的钻石剑添加一个炫酷的描述内容,那么一个cooooool的武器就这样做好了。
Part.7 检测lore描述的装备配置(适用本插件对应的全部版本,包括1.7.10)
在启动服务器之前,请将本插件config.yml文件的loreCheck功能设置为true(参见Part.2)
loreCheck是本插件在1.7.10版本下唯一能够生效的方法。但是如果你的版本高于1.7.10,那么你可以考虑放弃本部分功能。
也就是说对于更高版本而言,本功能是可选项。
当你完成了Part.4的配置后,你可以进入游戏来为你得装备附加属性了。注意,如果要属性集在装备上生效,那么这个属性集中必须含有innerName字段。
在本插件的工作原理中,只要装备的任意lore上含有innerName,则innerName所在的属性集就会在装备上生效。
至于这个lore是如何添加的,本插件并不在意添加的过程,只要结果上lore包含innerName即可。
如果你仅安装了本插件而没有安装其他有关lore编辑的插件,那么你可以通过本插件的info.yml文件来添加lore,即如果一个描述lore的描述集对应的lores的任意子项包含innerName,再通过Part.5的方法为装备添加描述后,innerName就生效了。
需要注意的是,loreCheck支持颜色代码,但是颜色代码只能出现在innerName之前或之后,不允许出现在innerName中间。
可以让多个不同的innerName在同一件装备上生效。