【Minecraft Forge1.15.2】食べ物を追加してみよう~food unko~【Modの作り方】
前回、Minecraft1.15.2にForgeを使って「うんこを追加するmod」を作りました。今回はその続きで、「食べられる毒うんこ」を作っていきます。
参考にしたサイト
FoodBase.javaを作る
前回はItemBase.javaを作りましたが、今回は食べられるようにするため、FoodBaseというクラスを作ります。ItemBase.javaと同じフォルダにFoodBase.java
ファイルを作成し、以下のように書き込んでください。
package名は自分で決めたものになりますので、一番上の行はコピペしないでください。私はcom.waktech.unkomodですが、これは作る人のmod名、作者名によって変わります。基本的にitemsフォルダにクラスを追加した時点で自動で入るので心配ありません。
package com.waktech.unkomod.items; //この行はコピペ不要
import net.minecraft.item.Food;
import net.minecraft.item.Item;
import static net.minecraft.item.ItemGroup.FOOD;
public class FoodBase extends Item {
public FoodBase(){
super(new Item.Properties().food(new Food.Builder()
.hunger(4).meat().saturation(6.0f).build()
).group(FOOD));
}
}
ここで新しく出てきたのがFood.Builder()
というクラスです。このクラスは食べ物の基本情報である腹持ち、回復量を指定できます。saturationが腹持ちでhungerが回復量です(要確認)。引数に値を入れることで、この度合を調節できます。これらのメソッド(.hunger()等)の順番は適当で構いませんが、最後に.build()
を入れてあげましょう。これでBuilder()オブジェクトは完成します。その後の.group(FOOD)
は単にクリエイティブモードの時にどのタブにアイテムが表示されるかを指定するものです。不要ならつける必要はありません。
新しいうんこを登録する
RegistryHandler.javaのアイテム追加分を以下のように変更します。
public static final RegistryObject<Item> UNKO = ITEMS.register("unko", FoodBase::new);
これは先程作ったFoodBase
クラスですね。それ以外は前回と全く変わりません。

食べてみよう
この状態でgradlew runClient
をターミナルで打ち込み(もしくは右上の緑矢印近くのrunClient)、ゲームを実行してみましょう。

モリモリ(同音異義語)

お腹いっぱいになりましたね!
毒入りに変更する
では先程のウンコを毒入りにします。
Food.Builder()
には.effect()
メソッドが付いています。この中に毒のエフェクトを入れることで、食べた時に発動する効果を付与できます。
package com.waktech.unkomod.items;
import net.minecraft.item.Food;
import net.minecraft.item.Item;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import static net.minecraft.item.ItemGroup.FOOD;
public class FoodBase extends Item {
public FoodBase(){
super(new Item.Properties().food(new Food.Builder()
.hunger(4).meat().saturation(6.0f).effect(new EffectInstance(Effects.POISON, 100, 0), 0.6F).build()
).group(FOOD));
}
}
effect()
の中身はEffectInstance
と、その発動確率です。
EffectInstance(Effects.POISON,100,0)
のように、最初に効果の名称、次にduration,最後に強さを入れます。ここでは100tick分毒の効果が続きます。
発動確率は0.6F(Fは浮動小数点数を示す)にしましたので、10回に6回は毒ります。必ず毒にしたい場合は1.0Fにしましょう。
毒入りうんこを食べてみよう

いや毒くらいじゃ済まないよね。
ともあれ、ここまででアイテムを追加してポーションの効果や食べ物として変化させる方法を学びました。
次回はアイテムのレシピを追加して、ウンコからウンコブロックを作れるようにしていきます。
目次
【Minecraft Forge1.15.2】食べ物を追加してみよう~food unko~【Modの作り方】
前回、Minecraft1.15.2にForgeを使って「うんこを追加するmod」を作りました。今回はその続きで、「食べられる毒うんこ」を作っていきます。
参考にしたサイト
FoodBase.javaを作る
前回はItemBase.javaを作りましたが、今回は食べられるようにするため、FoodBaseというクラスを作ります。ItemBase.javaと同じフォルダに
FoodBase.java
ファイルを作成し、以下のように書き込んでください。ここで新しく出てきたのが
Food.Builder()
というクラスです。このクラスは食べ物の基本情報である腹持ち、回復量を指定できます。saturationが腹持ちでhungerが回復量です(要確認)。引数に値を入れることで、この度合を調節できます。これらのメソッド(.hunger()等)の順番は適当で構いませんが、最後に.build()
を入れてあげましょう。これでBuilder()オブジェクトは完成します。その後の.group(FOOD)
は単にクリエイティブモードの時にどのタブにアイテムが表示されるかを指定するものです。不要ならつける必要はありません。新しいうんこを登録する
RegistryHandler.javaのアイテム追加分を以下のように変更します。
これは先程作った

FoodBase
クラスですね。それ以外は前回と全く変わりません。食べてみよう
この状態で


gradlew runClient
をターミナルで打ち込み(もしくは右上の緑矢印近くのrunClient)、ゲームを実行してみましょう。モリモリ(同音異義語)
お腹いっぱいになりましたね!
毒入りに変更する
では先程のウンコを毒入りにします。
Food.Builder()
には.effect()
メソッドが付いています。この中に毒のエフェクトを入れることで、食べた時に発動する効果を付与できます。effect()
の中身はEffectInstance
と、その発動確率です。EffectInstance(Effects.POISON,100,0)
のように、最初に効果の名称、次にduration,最後に強さを入れます。ここでは100tick分毒の効果が続きます。発動確率は0.6F(Fは浮動小数点数を示す)にしましたので、10回に6回は毒ります。必ず毒にしたい場合は1.0Fにしましょう。
毒入りうんこを食べてみよう
いや毒くらいじゃ済まないよね。
ともあれ、ここまででアイテムを追加してポーションの効果や食べ物として変化させる方法を学びました。
次回はアイテムのレシピを追加して、ウンコからウンコブロックを作れるようにしていきます。