【春Modを作ろう】卒業証書を追加しよう
ModItems.javaに以下のコードを追加(黄色の部分)
public class ModItems {
  public static final Item ODANGO = registerItem("odango",
      new CustomFoodItem(new FabricItemSettings()));
  public static final Item DIPLOMA = registerItem("diploma",
      new DiplomaItem(new FabricItemSettings().maxCount(1)));
  private static Item registerItem(String name, Item item) {
    return Registry.register(Registries.ITEM, new Identifier(Springmod.MOD_ID, name), item);
  }
  private static void itemGroupIngredients(FabricItemGroupEntries entries) {
  }
  public static void registerModItems() {
    ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(ModItems::itemGroupIngredients);
  }
}ModItemGroup.javaを編集(黄色の部分)
package mark.spring.springmod;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class ModItemGroup {
  public static final ItemGroup SPRING_GROUP = Registry.register(Registries.ITEM_GROUP,
      new Identifier(Springmod.MOD_ID, "spring"),
      FabricItemGroup.builder().displayName(Text.translatable("itemgroup.spring"))
          .icon(() -> new ItemStack(ModItems.ODANGO)).entries((displayContext, entries) -> {
            entries.add(ModItems.ODANGO);
            entries.add(ModBlocks.CHIRASHI_SUSHI);
            entries.add(ModItems.DIPLOMA);
          }).build());
  public static void registerItemGroups() {
    Springmod.LOGGER.info("Registering Item Groups for " + Springmod.MOD_ID);
  }
}テクスチャーを追加しよう
models/itemディレクトリにファイル作成をクリックしてdiploma.jsonを作成し以下のように編集。
{
  "parent": "item/generated",
  "textures": {
  "layer0": "springmod:item/diploma"
  }
}itemディレクトリにdiploma.pngというファイル名でダウンロードしたテクスチャをアップロードしよう!
右クリックで文字を表示できるようにしよう
springmodディレクトリにファイル作成をクリックしてDiplomaItem.javaを作成し以下のように編集。
package mark.spring.springmod;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.world.World;
public class DiplomaItem extends Item {
  public DiplomaItem(Settings settings) {
    super(settings);
  }
  @Override
  public TypedActionResult<ItemStack> use(World world, PlayerEntity player, Hand hand) {
    if (world.isClient) { 
      player.sendMessage(Text.of("卒業証書を取得しました!おめでとうございます!"), true);
      return TypedActionResult.success(player.getStackInHand(hand));
    }
    return TypedActionResult.pass(player.getStackInHand(hand));
  }
}
