本帖最后由 1582952890 于 2017-9-17 10:57 编辑

                                 


                                                                                        注意                                                                                                                             
                                                                 本帖的最终解释权cthuwork所有
                                                                  如有疑问或转载请联系相关负责人



插件特点
1、可重新定义任意方块在指定的世界掉落任意物品
2、掉落物可含有类似rpgitem的特殊信息
3、并可设置在同一方块掉落不同物品的概率。




插件功能介绍
一、区分世界来设置方块的掉落。
1.使用all_unnamed_worlds作为世界名来为所有未在特定世界配置节点中定义的方块定义其自定义掉落物。

二、设置方块的掉落物几率
1、可以设置多个掉落组,在这几个掉落组内预先设置好需要掉落的物品。
2、再将这个掉落组设置到指定方块内(可以是矿物、任何方块、甚至是成熟不同阶段的农作物)。
3、再设置指定的方块内的每个掉落组的概率。
4、每个掉落组内的掉落物也可以分别设置不同的概率。

三、掉落物可以任意设定其属性,包括伤害、技能、特殊信息
1、允许定义任何不包含自定义NBT信息的物品
2、能够完全被ItemStack序列化、反序列化的物品来掉落。
3、设置特殊的属性需要有rpgitem支持。


四、掉落物可以包含经验值
1、一个掉落物可以包含一组同类型物品和附加的经验值。
2、可以单独指定只掉落经验,不掉落物品。
3、同理可以单独指定只掉落物品,不掉落经验。

插件安装
所有设置集中在config.cfg文件中
1、先将插件放在plugins文件夹内,打开服务端加载插件(就像所有插件一样)
2、所有的设置将会在config.cfg配置文件中进行配置。
3、本插件使用配置文件进行设置,所有的配置请在配置文件中完成,完成后输入
/cbd reload

格式说明


[] - 可选设置
>> - 序列化对象类型
"" - 节点名称描述
|| - 表示在其左右两个对象中选择一个

└ - 节点 - Map
┗ - 列表 - List

配置文件格式
  1. customBlockDrop - 配置文件主节点
  2. ├ customDropSetting - 自定义掉落设置
  3. │ └ "世界名" || all_unnamed_worlds - 指定的世界
  4. │    └ "方块内部名[:Data]" - 指定的方块
  5. │       └ dropGroups - 掉落组列表
  6. │           ┗ ┬ drop - 掉落物列表
  7. │              │ ┗ ┬ item >> org.bukkit.inventory.ItemStack - 掉落物所包含的物品
  8. │              │    ├ exp >> java.lang.Integer - 掉落物所包含的的经验
  9. │              │    └ percent >> java.lang.Double - 掉落百分比,计算方式为:数值/100,选择方式为:多选
  10. │              └ probability >> java.lang.Integer - 掉落概率,计算方式为:数值/总概率,选择方式为:单选
  11. └ commandSetting - CustomBlockDrop插件指令设置
  12.    ├ usage >> java.lang.String - CustomBlockDrop插件主指令的使用帮助
  13.    ├ description >> java.lang.String - CustomBlockDrop插件主指令的注释
  14.    ├ help - help指令的设置
  15.    │ ├ usage >> java.lang.String - help指令的使用帮助
  16.    │ ├ description >> java.lang.String - help指令的注释
  17.    │ ├ permission >> java.lang.String - 执行help指令需要的权限
  18.    │ └ permission-message >> java.lang.String - 不具备执行help指令需要的权限时返回的信息
  19.    └ reload - reload指令的设置
  20.       ├ usage >> java.lang.String - reload指令的使用帮助
  21.       ├ description >> java.lang.String - reload指令的注释
  22.       ├ permission >> java.lang.String - 执行reload指令需要的权限
  23.       └ permission-message >> java.lang.String - 不具备执行reload指令需要的权限时返回的信息
复制代码
ItemStack序列化存储格式
== >> java.lang.String - 序列化对象名称,值应为org.bukkit.inventory.ItemStack
type >> java.lang.String - 物品内部名
damage >> java.lang.Short - 损伤值
amount >> java.lang.Integer - 物品数量
meta >> org.bukkit.craftbukkit.inventory.CraftMetaItem$SerializableMeta - 物品的Meta信息

ItemStack存储格式示范
一个木斧头:
  1. item:
  2.   ==: org.bukkit.inventory.ItemStack
  3.   type: WOOD_AXE
  4.   damage: 0
  5.   amount: 1
复制代码
图文教程:
1、将插件载入好之后打开配置文件开始设置。
2、编写相应的配置。
这是物品效果图:







  1. customBlockDrop:
  2.   customDropSetting:
  3.                          #world这里设置你要指定的世界名字,若世界叫ppp,那么这里请写ppp。
  4.     world:  

  5.                         #IRON_BLOCK是指定物品的名字。
  6.                         #英文名字请参考网站(不支持数字ID):(http://jd.bukkit.org/rb/apidocs/org/bukkit/Material.html)
  7.                        #对应ID请参考:    (http://minecraft-ids.grahamedgecombe.com/)
  8.       IRON_BLOCK:
  9.         dropGroups:                         #这里不用改,这里是设置的第一个
  10.         - drops:
  11.           - item:
  12.               ==: org.bukkit.inventory.ItemStack
  13.               type: PUMPKIN_PIE
  14.               damage: 0                                          #损伤值
  15.               amount: 1                                         #掉落数量
  16.               meta:
  17.                 ==: ItemMeta
  18.                 meta-type: UNSPECIFIC      #指定的信息,图书、地图才会用到。meta-type的用法在下面会写。
  19.                 display-name: §9§l克苏鲁工作室全体员工杂烩粥                  #设置掉落物品的名字
  20.                 lore:                                                      #设置这个掉落物的特殊信息
  21.                   - "§a§lCthuWork员工人肉杂烩粥"
  22.                   - "§b§l可食用    §3§l制作材料:全体CthuWork员工"
  23.                   - "§n1-998 伤害力"
  24.                   - ""                                              #这里相当于空一行
  25.                   - "&a&lCthuWork&c&l工作室诚邀您的加入"
  26.                   - "&9&lCthuWork&d&l将会将您精心炖制成美味的人肉粥"
  27.                   - "&6&l我编不下去了"
  28.             percent: 100                     #设置这个物品的在这个组内的掉落概率
  29.           probability: 1        #设置其概率,比如你有两个掉落物,第1个掉落物的值为2,第2个掉落物的值为3。
  30.                                             #那么第一个掉落物的掉落概率为5/2。
复制代码
更多的教程:
这里是一个实例教程。
这里设定了一个石头,拥有两个掉落组。每个掉落组内有2个掉落物。
  1. #  customDropSetting:
  2. #    world:                       #指定的世界名为world
  3. #      STONE:                  #指定的方块为石头
  4. #        dropGroups:
  5. #        - drops:                #开始设定石头里面的第一个掉落组
  6. #          - item:                 #设定第一个掉落物
  7. #              ==: org.bukkit.inventory.ItemStack
  8. #              type: WOOD_AXE                 #这个掉落的物品为木斧头
  9. #              damage: 0                           #这个木斧头伤害为0
  10. #              amount: 1                           #掉1个这样的木斧头
  11. #            percent: 70                          #这个木斧头在这个掉落组里的概率70
  12. #          - item:   #设定第二个掉落物
  13. #              ==: org.bukkit.inventory.ItemStack
  14. #              type: IRON_BLOCK                #这个掉落的物品为铁块
  15. #              damage: 0                            #这个铁块伤害为0
  16. #              amount: 1                             #掉1个这样的铁块
  17. #            percent: 63.1                   #这个木斧头在这个掉落组里的概63.1
  18. #          probability: 4                           #设定这个掉落组的概率为4/(4+1)。
  19. #        - drops:                                 #开始设定这个物品的第二个掉落组
  20. #          - item:                                #设定第二个掉落组里的第一个掉落物
  21. #              ==: org.bukkit.inventory.ItemStack
  22. #              type: SEEDS                       #这个掉落物为种子
  23. #              damage: 0                          #伤害为0
  24. #              amount: 1                         #数量为1
  25. #            percent: 60                        #掉落几率在这个掉落组内为60
  26. #          - item:
  27. #              ==: org.bukkit.inventory.ItemStack
  28. #              type: WEB
  29. #              damage: 0
  30. #              amount: 1
  31. #            percent: 94.2
  32. #          probability: 1                           #设定这个掉落组的概率为1/(4+1)。
  33. #      CROPS:7:
  34. #        dropGroups:
  35. #        - drops:
  36. #          - item:
  37. #              ==: org.bukkit.inventory.ItemStack
  38. #              type: WOOD_AXE
  39. #              damage: 0
  40. #              amount: 1
  41. #            percent: 70
  42. #          probability: 1                         #设定这个掉落组的概率为1/1。
复制代码
Meta-type的用法
  1.             meta-type: BOOK                                          #声明这个特殊的书
  2.             title: 动感DJ                                         #书的标题
  3.             author: DJ苦力怕                                         #书的作者
  4.             pages:                                         #书的内容
  5.             - §3药药~!切克闹!煎饼果子来一套~你说煎饼我说要~!一个鸡蛋一块钱! 喜欢脆的多放面!辣椒腐乳小葱花!铁板铁铲小木刷!放些面酱些许甜!趁热吃了似神仙!(打开下一页任务提示)                                           #这里是第一页
  6.             - 与经验瓶合成《动感DJ》、用于其合成装备的材料                                         #这里是第二页
复制代码
计划特性:
预计在下一版本(1.1.0)更新:
1.可指定使用哪些物品破坏指定方块会掉落(比如使用剪刀破坏树叶有几率掉落蜘蛛丝啥的)
2.可忽略MC原版破坏物品需要特定工具的限制(比如破坏石头必须要用木镐子才会掉落)
3.重写整个配置文件系统,所有自定义掉落配置从config.yml移出到单个文件
4.自动定期备份配置文件系统5.可在新版本的MC使用新的MC格式的物品名称(例如minecraft:dirt),用于兼容MOD方块
6.只兼容1.8,不继续兼容1.7、1.6


命令

插件附带一些指令来执行一些操作,其余内容在配置文件设置,参见“用法”章节。
指令:
/cbd help:
帮助指令,用于显示帮助信息,默认所有玩家可用
/cbd reload:
重载指令,用于重载配置文件,默认OP可用

权限:
customBlockDrop.help:允许使用help指令
customBlockDrop.reload:允许使用reload指令


版本记录:

1.0.0:
+初始版本

1.0.1:
+使用all_unnamed_worlds作为世界名来为所有未在特定世界配置节点中定义的方块定义其自定义掉落物
+允许在单个掉落中通过exp节点来定义其掉落的经验值
1.0.2:
+当方块由爆炸被破坏时进行自定义掉落
1.0.3:
*使用工具挖掘矿物时不消耗工具耐久
下载:
1.0.0:http://pan.baidu.com/s/1gd3htCZ
1.0.1:http://pan.baidu.com/s/1dDqunV7
1.0.2:http://pan.baidu.com/s/1i3sTVkL
1.0.3:http://pan.baidu.com/s/1bnaXKwn
svn:https://build.cthuwork.com:8443/svn/CustomBlockDrop/
jenkins:http://build.cthuwork.com:8080/jenkins/job/CustomBlockDrop/
bugzilla:http://build.cthuwork.com:8081/bugzilla/enter_bug.cgi?product=CustomBlockDrop

svn请使用匿名登录User:Anonymous Password: 空

注:BUG、新功能等会优先在svn更新,其次在jenkins更新,最后发布正式版。如果你遇到BUG,而最新正式版本没有修复,请自行下载jenkins的最新构建。如果BUG没有修复,请自行下载并编译svn版。如果svn版没有修复此BUG,请在此帖留言,或者选择自行修复,但请遵守GPLv3协议。

本程序使用GPLv3协议


版权声明
自定义方块掉落(CustomBlockDrop)使用GPLv3协议,请遵循GPLv3协议的条款:http://www.gnu.org/licenses/gpl.txt

最后如果你想加入我们和我们一起发展和完善这个插件,请论坛私聊或者QQ联系我w!如有人加入,考虑将SCM从svn迁移至github