本帖最后由 Jeansou 于 2019-10-1 12:33 编辑

欢迎
Wiki将帮助你配置ItemAdder并创建自定义物品










菜单配置





为了在/ia菜单中显示物品,你必须打开menu.yml并添加你想要的物品名称到某一分类中(以下示例是添加一个物品到hoes分类)
  • hoes:
  •   enabled: true
  •   icon: ruby_hoe
  •   name: '&3&lHoes'
  •   items:
  •     - ruby_hoe
  •     - crystal_hoe
  •     - spinel_hoe
  •     - turquoise_hoe
  •     - aqua_hoe
  •     - amethyst_hoe
  •     - my_new_custom_hoe
你会发现文件里有一个特殊的分类all,它有一个特殊的属性show_all_items,它将显示所有你创建的物品
  • all:
  •   enabled: true
  •   icon: ruby_block
  •   name: '&3&lAll'
  •   show_all_items: true


ItemAdder提供一个简单的供Jaca/Skript开发者的API,要使用它,只需在代码中添加dev.lone.itemsadder.api.ItemsAdder.
  1. //Checks if an item is a custom item made with ItemsAdder
  2. public static boolean isCustomItem(ItemStack itemStack)
  3. public static boolean isCustomItem(String customItemName)

  4. //Get an ItemsAdder custom item by its name in config
  5. public static ItemStack getCustomItem(String nameInConfig)

  6. //Spawns a block made with ItemsAdder specifying the itemstack
  7. //(obtain it with getCustomItem)
  8. public static void placeCustomBlock(Location location, ItemStack customBlock)
  9. public static void placeCustomBlock(Location location, ItemStack customBlock, boolean lightweight)

  10. //Check if a block in the world is a custom block made with ItemsAdder
  11. public static boolean isCustomBlock(Block block)

  12. //returns the ItemStack of a custom block in world
  13. public static ItemStack getCustomBlock(Block block)

  14. //check if an entity in world is a furniture
  15. public static boolean isFurniture(Entity entity)

  16. //check if an ItemStack is a specific custom item
  17. //(example: check if a pickaxe is 'amethyst_pickaxe')
  18. public static boolean matchCustomItemName(ItemStack itemStack, String customItemName)

  19. //get name of the item in config (ex: 'ruby_pickaxe')
  20. public static String getCustomItemName(ItemStack itemStack)

  21. //get name of config where the item is declared (ex: 'items/swords')
  22. public static String getCustomItemFileName(ItemStack itemStack)

  23. //gets usages remaining of this item (-999 if it has no usages specified = infinite)
  24. public static String getCustomItemUsages(ItemStack itemStack)

  25. //get custom durability
  26. public static String getCustomItemDurability(ItemStack itemStack)

  27. //get max custom durability
  28. public static String getCustomItemMaxDurability(ItemStack itemStack)
复制代码

权限
  • 用户权限
       /ia
             ia.user.ia
      合成权限
             ia.user.craft.PERMISSION(或给予全部权限ia.user.craft.*)
  • 管理员
       /iaget
             ia.admin.iaget
       /iagive
             ia.admin.iagive
       /iatag
             ia.admin.iatag
      编辑权限(/ia中的编辑按钮)
             ia.admin.edit
  • 其它
      拒绝资源包时不被踢出
             ia.resourcepack.bypasskick




F.A.Q.

存在什么类型的物品、武器、弓?
我能不能创建物品X、武器Y……我能不能添加这个属性,我能吗我能吗我能吗?
插件有这个功能吗?
为什么我有这样那样的问题?
我尽可能清楚地编写了这个wiki及其教程,所以请不要向我发送有关配置插件时遇到的问题的支持请求,或者如果您有疑问。请在使用之前使用wiki以及顶部的搜索栏。谢谢!


资源包不被加载,我在聊天区看见了一个错误
  • Minecraft限制资源包最大为50MB
  • 请确保你提供的是资源包的直接下载链接
  • 请务必遵循所有教程的步骤


玩家看不见纹理,但是我遵循了教程!
  • 如果问题仍存在,从服务器列表中删除服务器,重新添加并按照上方说明启用资源包
  • 如果仍不能解决,到%minecraft文件夹%\.minecraft\server-resource-packs\并删除所有文件,加入服务器。


插件不工作
在向作者反馈之前:
  • 确保插件是最新版本
  • 确保不是其他插件干扰
  • 引起此问题的原因
  • 服务器版本,使用/version查看并将版本信息发送给作者
  • 插件版本
  • 你是否编辑过配置文件
  • 你是否编辑过资源包
  • 将配置文件压缩并发送给作者
  • 插件是否在控制台或聊天区显示错误信息
  • 服务器的完整日志文件
  • 服务器IP
  • 给作者OP权限,他将帮助你解决(或者给他创造模式、/pl、ItemAdder、/tp、/i等权限)


兼容性
作者不确定ItemAdder会与所有插件兼容
  • 所有有资源包的插件(除非你能合并它们)
  • CraftEnhance
  • 有自定义配方和合成表





普通设置
model_id
资源包中此项的材质名
  1. assets\minecraft\models\new_<type>\<model_id>.json
复制代码


vanilla_type

以下例子为创建一把绿宝石剑
  1. assets\minecraft\models\new_diamond_sword\6.json
  2. assets\minecraft\textures\new_diamond_sword\6.png
复制代码
emerald_sword:
    enabled: true
    permission: emeraldsword
    model_id: 6
    vanilla_type: DIAMOND_SWORD
    name: '&fEmerald sword'

注意                                                                                                               



不是所有物品都可以改变
vanilla_type:

  • blocks.yml
  • bows.yml
  • drinks.yml
  • eatables.yml
  • armors.yml
  • fishing_rods.yml
  • furnitures.yml
  • hats.yml
  • items.yml
  • minerals.yml
  • seeds.yml
  • shields.yml
  • totems_of_undying.yml
  • vegetables_and_fruits.yml

         只有在这些文件中你可以改变:

  • swords.yml(必须是剑或工具)
  • tools.yml(同上)
  • guns.yml(同上)


enabled
设置此物品是否可用
  1. enabled: true
复制代码

permission
设置合成该物品需要的权限
例如:
  1. permission: mysword
复制代码
那么玩家将需要权限ia.craft.mysword来合成该物品

name
name: '&fMy awesome custom sword'

lore
  • lore:
  •    - '&fWow this is my first'
  •    - '&fcustom sword!'


enchants
为物品设置一个默认附魔,玩家在合成它时就会带有该附魔,你可以添加多个附魔
  • enchants:
  •     - FIRE_ASPECT:1 #<附魔名>:<等级>



你可以在这里找到附魔名                                                                                                                  

events


specific_properties
每个yml文件都有各自的specific_properties结构,要查看可用项,请查看目录特定物品,并查找"specific_properties",有一个"specific_properties"属性可用于所有.yml文件,它是幸运属性幸运属性用于设置物品幸运值

  1. luck_offhand: <number>
  2. luck_mainhand: <number>
  3. luck_head : <number>
  4. luck_chest: <number>
  5. luck_legs: <number>
  6. luck_feet: <number>
复制代码

craft_recipe
合成物品的配方


result_recipe
如果您想为当前的自定义项目添加多个制作配方,这将非常有用



事件
为你的物品添加基于一些事件的行为

  • events:
  •        shift_right_click: #当你按下 shift+右键
  •             #....
  •        right_click: #当你右键时
  •             #....
  •        shift_left_click: #当你按下 shift+左键
  •             #....
  •        left_click: #当你按下左键时
  •             #....
  •        attack: #当你攻击一个生物或玩家时
  •             #...
  •        block_break: #当你用一个东西破坏方块时 (depends)
  •                            #向下滚动得到更多信息
  •             #...
  •        fishing: #当你用钓鱼竿钓鱼时
  •             #...
  •        kill_mob: #当你杀死一个生物时
  •             #...

        



Events: actions现在您知道可以触发哪些事件,您必须配置发生的事情
  1. events:
  2.     right_click:
  3.         play_sound: knife
  4.         play_particle: CRIT_MAGIC
  5.         play_effect: SMOKE
  6.         execute_command:
  7.             as_console: true
  8.             #{player} will be automatically replaced with player name
  9.             command: 'tellraw {player} {"text":"Pressed right mouse button","color":"gold"}'
  10.         reduce_durability: 1
  11.         reduce_amount: 1
  12.         reduce_usages: 1
  13.         replace_near_blocks:
  14.             reduce_durability: 1
  15.             radius:
  16.               x: 2
  17.               y: 2
  18.               z: 2
  19.             from: LAVA
  20.             to: OBSIDIAN
  21.         #you can create multiple rules for replace_near_blocks
  22.         #you just have to make the rule start with "replace_near_blocks"
  23.         replace_near_blocks_1:
  24.             # ....
  25.         replace_near_blocks_2:
  26.             # ....
  27.         replace_near_blocks_...:
  28.             # ....
  29.     block_break:
  30.         drop_this_item: #when you break a block using any tool drops this custom item
  31.             from_vanilla_block: FERN #block broken
  32.             chance: 10       #chance of dropping this custom item
  33.             min_amount: 1    #min amount of this custo item to be dropped
  34.             max_amount: 2    #min amount of this custo item to be dropped
  35.         drop_exp: #when you break a block holding this custom item item in hand
  36.                     #drop exp
  37.             chance: 50       #chance of dropping the exp
  38.             min_amount: 1    #min exp amount
  39.             max_amount: 3    #max exp amount
  40.         multiple_break: #special property: breaks more than one block around the first
  41.             keep_ores: true #are ores protected from the 3x3 break tool?
  42.             drop_all_blocks: #if all blocks should be dropped on break or only the first
  43.               enabled: true
  44.               need_silk_touch: true #if you need silktouch to get all blocks
  45.             size: 3 #size of the square to be mined
  46.     fishing: #special event called when you fish
  47.          drop_this_item: #drop the current item
  48.             chance: 20 #chances of getting the tuna dropped
  49.     kill_mob: #when you kill a witch it drops this item with 20% of chance
  50.       drop_this_item:
  51.         from_mob: WITCH
  52.         chance: 20
  53.     throw: #special event called when you throw a throwable item
  54.         # ... refer to Throwables page, link on bottom of this page
  55.     hit_ground: #special event called when a throwable item hits the ground
  56.         # ... refer to Throwables page, link on bottom of this page
  57.    
  58.         
复制代码



合成
文章列表:(点击图片跳转)


耐久
ItemAdder有一个可选的耐久度系统

你可以为一个物品设置自定义耐久度例如:
  • custom_sword:
  •    enabled: true
  •    permission: custom_sword
  •    model_id: 1
  •    vanilla_type: DIAMOND_SWORD
  •    name: '&fTest'
  •    specific_properties:
  •       attack_damage: 8
  •       attack_speed: 1.2
  •       max_custom_durability: 200
  •       custom_durability: 32
  •       disappear_when_broken: false

可以发现,这里有几个特殊属性:max_custom_durability, custom_durability disappear_when_broken
你可以不必设置此属性,如果你不需要插件处理耐久度,请在config.yml中禁用custom_durability                                                            


max_custom_durability: 最大耐久                                                                                                      disappear_when_broken: 当耐久为零时物品是否消失
       custom_durability: 初始耐久



可以看到,物品上有一个耐久度显示





它和原版的一样准确



如果你启用了物品栏调试模式(F3+H),请不要与插件的混淆                                                                     




耐久可用于:                                                                                                                                    


  • 盔甲
  • 钓鱼竿
  • 工具
  • Shields



盔甲
如何制作自定义盔甲

armors.yml



装甲是一种特殊物品,不可使用自定义纹理,但它们可以有自定义颜色,所以你可以制作由绿宝石制成的绿色盔甲。
这是存储所有自定义盔甲设置的文件。
例子:
  1. ruby_chest:
  2.   enabled: true
  3.   permission: rubyarmor
  4.   name: '&fRuby chestplate'
  5.   specific_properties:
  6.     armor: 7
  7.     armor_color: ff0000
  8.     armor_type: chest
  9.   craft_recipe:
  10.     enabled: true
  11.     pattern:
  12.       - rXr
  13.       - rrr
  14.       - rrr
  15.     ingredients:
  16.       r: ruby
复制代码

盔甲的一些特殊属性:
  1. specific_properties:
  2.     armor: 7 #armor strenght
  3.     toughness: #armor toughness
  4.     armor_color: ff0000 #hex color
  5.     armor_type: chest #armor piece type
复制代码
armor_type可用值:
  • head
  • chest
  • legs
  • boots



成书

一个成书的例子
  1. mysterious_book:
  2.   enabled: true
  3.   permission: mysterious_book
  4.   model_id: 1
  5.   name: '&f神秘的书'
  6.   specific_properties:
  7.     already_written: true
  8.     author: 'Me'
  9.     generation: 'TATTERED'
  10.     pages:
  11.       - '第一页'
  12.       - '我的神秘书之第二页'
复制代码

可写的书/信/物品
被合成时
在你编辑过之后

  1. letter:
  2.   enabled: true
  3.   permission: letter
  4.   model_id: 2
  5.   name: '&f信'
  6.   craft_recipe:
  7.     enabled: true
  8.     pattern:
  9.       - XXX
  10.       - XRP
  11.       - XPP
  12.     ingredients:
  13.       P: PAPER
  14.       R: RED_DYE
复制代码


特殊属性
  1. specific_properties:
  2.     already_written: true #书本是否已写成
  3.     author: 'Me'  #作者
  4.     generation: 'TATTERED' #书的 "质量", 可用值见下方
复制代码








generation 可用值:                                                                                 
  • ORIGINAL
  • COPY_OF_ORIGINAL
  • COPY_OF_COPY
  • TATTERED



bows.yml
这是存储自定义弓的信息的文件




示例:
  • astral_bow:
  •   enabled: true
  •   permission: astral_bow
  •   model_id: 1
  •   name: '&fAstral bow'
  •   specific_properties:
  •     max_custom_durability: 512
  •     arrow_damage: 4
  •   enchants:
  •     - ARROW_FIRE:1
  •   events:
  •     shot:
  •       play_sound: astral_bow_shot
  •       glow_arrows: true

特殊属性
  1. specific_properties:
  2.     arrow_damage: 4
复制代码
如你所见,你可以设置弓箭的伤害值

事件
  1. events:
  2.     shot: #在射箭时触发
  3.       play_sound: astral_bow_shot #播放音效
  4.       glow_arrows: true #是否启用发光弓箭
复制代码




饮料




drinks.yml
存储自定义饮料信息的文件

示例饮料:
  1. cola:
  2.    enabled: true
  3.    permission: cola
  4.    model_id: 1
  5.    name: '&f可乐'
  6.    lore:
  7.       - "&7一个冷饮"
  8.    events:
  9.       drink: #饮料的特定属性,
  10.                     #在玩家喝时触发
  11.          restore_food: 12 #饮用后恢复的饥饿值
  12.    craft_recipe:
  13.       enabled: true
  14.       pattern:
  15.          - XXX
  16.          - PSP
  17.          - PPP
  18.       ingredients:
  19.          S: SOUL_SAND
  20.          P: platic_plate
复制代码





食物



eatables.yml
自定义食物的配置文件




示例:
  1. pizza:
  2.    enabled: true
  3.    permission: pizza
  4.    model_id: 1
  5.    name: '&f披萨'
复制代码


枪械



guns.yml存储自定义枪械信息的文件




示例:
  1. revolver_gun:
  2.   enabled: true
  3.   permission: revolver_gun
  4.   model_id: 1
  5.   vanilla_type: GOLDEN_SWORD
  6.   name: '&f左轮手枪'
  7.   specific_properties:
  8.     projectile: projectile
  9.   events:
  10.     gun_shot:
  11.       play_sound: revolver_shot
  12.       play_effect: SMOKE
  13.     gun_no_ammo:
  14.       play_sound: revolver_no_ammo
  15.   craft_recipe:
  16.     enabled: true
  17.     pattern:
  18.       - III
  19.       - ISX
  20.       - WXX
  21.     ingredients:
  22.       I: IRON_INGOT
  23.       S: STICK
  24.       W: SPRUCE_PLANKS
复制代码


特定属性
  1. specific_properties:
  2.     projectile: projectile
复制代码

枪械可以匹配子弹
要使用该枪,你需要把 projectile 拿在左手
你可以在 item.yml 里创建子弹

事件
  1. events:
  2.   gun_shot: #event called when user shots
  3.     play_sound: revolver_shot #play a sound (vanilla or custom)
  4.     play_effect: SMOKE #粒子效果
  5.   gun_no_ammo: #子弹用完后的事件
  6.     play_sound: revolver_no_ammo #play a sound (vanilla or custom)
复制代码


唱片







激活插件
如何激活你的ItemAdder


我需要做什么?
将itemadder.jar放入服务器plugins文件夹并启动服务器
然后你将找到一个叫ItemAdder的文件夹,打开该文件夹并打开文件license.yml
你将会看到这些:
  1. paypal_email: your@email.com
  2. payment_date:
  3.   year: 2019
  4.   month: 01
  5.   day: 27
复制代码


我该从哪获得数据?
打开与你的paypal账户绑定的邮箱,找到购买信息

          从你的邮件中找到信息


然后?
将信息填入license.yml
paypal_email: your_email
payment_date:
  year: 2019
  month: 09
  day: 22


完成!
重启服务器吧。