提供: Minecraft Modding Wiki
2020年10月16日 (金) 16:20時点におけるRedice (トーク | 投稿記録)による版 (ページの作成:「{{前提MOD|reqmod="Fabric API 0.3.2 build 230~"}} {{チュートリアル難易度|difficulty=1|clear=none}} {{チュートリアルカテゴリー|difficulty=1|type=I…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"Fabric API 0.3.2 build 230~"を前提MODとしています。

Stone pickaxe.png
中級者向けのチュートリアルです。
C item.png
Itemに関係のあるチュートリアルです。

防具の追加[編集]

ツール(ヘルメット、チェストプレート、レギンス、ブーツ)を作成します。

金床での修復にはエメラルドを使用します。

動作確認済みのバージョン:1.16.3

ソースコード[編集]

  • SampleMod.java
package com.example.armor;

import net.fabricmc.api.ModInitializer;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;

public class SampleMod implements ModInitializer
    {
        /**
         * ModID文字列
         */
        public static final String MOD_ID = "samplemod";

        //防具作成
	public static final ArmorMaterial armorMaterial = new CustomArmorMaterial();
	public static Item SAMPLE_HELMET = new ArmorItem(armorMaterial, EquipmentSlot.HEAD, new Item.Settings().group(ItemGroup.TOOLS));//ヘルメット作成
	public static Item SAMPLE_CHESTPLATE = new ArmorItem(armorMaterial, EquipmentSlot.CHEST, new Item.Settings().group(ItemGroup.TOOLS));//チェストプレート作成
	public static Item SAMPLE_LEGGINGS = new ArmorItem(armorMaterial, EquipmentSlot.LEGS, new Item.Settings().group(ItemGroup.TOOLS));//レギンス作成
	public static Item SAMPLE_BOOTS = new ArmorItem(armorMaterial, EquipmentSlot.FEET, new Item.Settings().group(ItemGroup.TOOLS));//ブーツ作成

        @Override
        public void onInitialize()
        {
                //防具を登録
		Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_helmet"), SAMPLE_HELMET);
		Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_chestplate"), SAMPLE_CHESTPLATE);
		Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_leggings"), SAMPLE_LEGGINGS);
		Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_boots"), SAMPLE_BOOTS);
        }
    }
}
  • CustomArmorMaterial.java
package com.example.armor;

import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Items;
import net.minecraft.recipe.Ingredient;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;

public class CustomArmorMaterial implements ArmorMaterial {
    private static final int[] PROTECTION_VALUES = new int[] { 4, 5, 7, 3 };//防御力{ヘルメット,チェストプレート,レギンス,ブーツ}

    @Override
    public int getDurability(EquipmentSlot slot) {
        //耐久性
        return 500;
    }

    @Override
    public int getProtectionAmount(EquipmentSlot slot) {
        //防御力
        return PROTECTION_VALUES[slot.getEntitySlotId()];
    }

    @Override
    public int getEnchantability() {
        //エンチャント性
        return 12;
    }

    @Override
    public SoundEvent getEquipSound() {
    //装備するときの音
        return SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND;
    }

    @Override
    public Ingredient getRepairIngredient() {
        //修理の材料
        return Ingredient.ofItems(Items.EMERALD);
    }

    @Override
    public String getName() {
        return "sample_armor";
    }

    @Override
    public float getToughness() {
        return 0;
    }

    @Override
    public float getKnockbackResistance() {
        //ノックバック耐性
        return 2F;
    }
}