1.11のポーション追加

提供:Minecraft Modding Wiki
移動: 案内, 検索

この記事は"Minecraft Forge Universal 13.19.0.xxx~"を前提MODとしています。

Wood pickaxe.png
初心者向けのチュートリアルです。
C none.png
Potionに関係のあるチュートリアルです。

EntityLivingBaseに付与できるポーションの追加方法。
PotionTypeも追加することで、自動的に追加したポーションのポーション瓶、ポーション矢、滞留ポーションがクリエイティブインベントリに追加される。

[編集] ポーションの追加

[編集] ソースコード

  • SampleMod.java
  1. package com.example.potion;
  2.  
  3. import net.minecraft.potion.Potion;
  4. import net.minecraft.potion.PotionEffect;
  5. import net.minecraft.potion.PotionType;
  6. import net.minecraft.util.ResourceLocation;
  7. import net.minecraftforge.fml.common.Mod;
  8. import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
  9. import net.minecraftforge.fml.common.Mod.EventHandler;
  10. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  11. import net.minecraftforge.fml.common.registry.GameRegistry;
  12.  
  13. @Mod(modid = SampleMod.MOD_ID, name = SampleMod.MOD_NAME, version = SampleMod.MOD_VERSION, dependencies = SampleMod.MOD_DEPENDENCIES, acceptedMinecraftVersions = SampleMod.MOD_ACCEPTED_MC_VERSIONS, useMetadata = true)
  14. @EventBusSubscriber
  15. public class SampleMod{
  16.     /**
  17.      * ModID文字列
  18.      */
  19.     public static final String MOD_ID = "samplemod";
  20.  
  21.     /**
  22.      * MOD名称
  23.      */
  24.     public static final String MOD_NAME = "SampleMod";
  25.  
  26.     /**
  27.      * MODのバージョン
  28.      */
  29.     public static final String MOD_VERSION = "0.0.1";
  30.  
  31.     /**
  32.      * 前に読み込まれるべき前提MODをバージョン込みで指定
  33.      */
  34.     public static final String MOD_DEPENDENCIES = "required-after:forge@[1.11-13.19.0.2130,)";
  35.  
  36.     /**
  37.      * 起動出来るMinecraft本体のバージョン。記法はMavenのVersion Range Specificationを検索すること。
  38.      */
  39.     public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.11]";
  40.  
  41.     /**
  42.      * 追加したいポーションのインスタンスを保持。
  43.      */
  44.     public static Potion samplepotion;
  45.     public static PotionType samplepotiontype;
  46.  
  47.     @EventHandler
  48.     public void preInit(FMLPreInitializationEvent event){
  49.         //ポーションの登録。登録文字列はMOD内で被らなければ何でも良い。
  50.         samplepotion = new SamplePotion();
  51.         GameRegistry.register(samplepotion, new ResourceLocation(MOD_ID, "sample"));
  52.         //ポーションタイプの登録。登録文字列はMOD内で被らなければ何でも良い。
  53.         samplepotiontype = new PotionType("sample", new PotionEffect(samplepotion));
  54.         GameRegistry.register(samplepotiontype, new ResourceLocation(MOD_ID, "sample"));
  55.     }
  56. }
  • SamplePotion.java
  1. import net.minecraft.entity.EntityLivingBase;
  2. import net.minecraft.potion.Potion;
  3. import net.minecraft.util.text.TextComponentString;
  4.  
  5. import javax.annotation.Nonnull;
  6.  
  7. public class SamplePotion extends Potion{
  8.     public SamplePotion(){
  9.         super(false, 0xFFFFFF);
  10.         setPotionName("sample");/*Potionの内部名を指定*/
  11.     }
  12.  
  13.     @Override
  14.     public void performEffect(@Nonnull EntityLivingBase entityLivingBaseIn, int p_76394_2_){
  15.         entityLivingBaseIn.sendMessage(new TextComponentString("You Are Performed"));
  16.     }
  17.  
  18.     @Override
  19.     public boolean isInstant(){
  20.         return true;
  21.     }
  22.  
  23.     @Override
  24.     public boolean isReady(int duration, int amplifier){
  25.         return true;
  26.     }
  27.  
  28.     /*
  29.     ポーションのアイコンを表示する際に実装する。
  30.     @Override
  31.     public int getStatusIconIndex(){
  32.         //Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("textures/gui/container/inventory.png"));//ポーションのアイコンのテクスチャの場所を指定する。
  33.         return super.getStatusIconIndex();
  34.     }
  35.  
  36.     @Override
  37.     public boolean hasStatusIcon(){
  38.         return true;
  39.     }
  40.     */
  41. }

[編集] 解説

以前とは違い、登録用イベントが発火されるようになった。……のだが、順序が良くないため、Modで登録されたポーションをポーションタイプで登録するのには向いていない。
よって、1.9と同じ方法である。変更点はほぼない。
LangやModel用Jsonについては過去のチュートリアルを参照のこと。

チュートリアル
個人用ツール