バニラの装備やツールのitemTier

MOD・プラグイン・ツールなどの開発に関する質問はこちら
meta26
初心者
記事: 20
登録日時: 2020年6月25日(木) 19:24

Re: バニラの装備やツールのitemTier

投稿記事 by meta26 »

指摘ありがとうざいます。ItemWoodCarbonにItemを継承させるようにプログラムを入れました。
ただ、それでもWoodCarbonのとこの豆電球は消えません。どうすればいいですか?
添付ファイル
2020-07-01 (2).png
2020-07-01 (1).png
penM
サーバー管理者
記事: 115
登録日時: 2019年7月23日(火) 02:14

Re: バニラの装備やツールのitemTier

投稿記事 by penM »

meta26 さんが書きました: 2020年7月01日(水) 18:55 指摘ありがとうざいます。ItemWoodCarbonにItemを継承させるようにプログラムを入れました。
ただ、それでもWoodCarbonのとこの豆電球は消えません。どうすればいいですか?
【マインクラフト Modding】1.15対応 自作MODの作り方 番外編 #1 アイテムティア、アーマーマテリアルの修正からコード拝借します。

DIRTですが、これは7つの引数を持ちます。しかし何が入るかはまだ宣言されていません。

コード: 全て選択

DIRT(    "dirtmod:dirt",
            15,
            new int[] {1,4,5,2},
            ArmorMaterial.IRON.getEnchantability(),
            SoundEvents.ITEM_ARMOR_EQUIP_LEATHER,
            ArmorMaterial.CHAIN.getToughness(),
            Ingredient.fromItems( new BlockSuperCompressedDirt().asItem() )
        );
で何が入るかは以下の宣言により確定します。ここで7個の引数の型などが宣言されています。アイテムティアでは引数が6個なので対応していることがわかります。thisはインスタンスで保持する変数である意味です。(詳しい意味は調べてください。)

コード: 全て選択

private DirtModArmorMaterials(String nameIn, int maxDamageFactorIn, int[] damageReductionAmountsIn, int enchantabilityIn, SoundEvent equipSoundIn, float p_i48533_8_, Ingredient repairMaterial) {
this.name = nameIn;
this.maxDamageFactor = maxDamageFactorIn;
this.damageReductionAmountArray = damageReductionAmountsIn;
this.enchantability = enchantabilityIn;
this.soundEvent = equipSoundIn;
this.toughness = p_i48533_8_;
this.repairMaterial = repairMaterial;
}
さらにthisで利用する変数は事前に宣言します。

コード: 全て選択

private static final int[] MAX_DAMAGE_ARRAY = new int[]{13, 15, 16, 11};
private final String name;
private final int maxDamageFactor;
private final int[] damageReductionAmountArray;
private final int enchantability;
private final SoundEvent soundEvent;
private final float toughness;
private final Ingredient repairMaterial;
この宣言がないため、WoodCarbonの引数がおかしいと言われているのではないでしょうか?
meta26
初心者
記事: 20
登録日時: 2020年6月25日(木) 19:24

Re: バニラの装備やツールのitemTier

投稿記事 by meta26 »

ご指摘ありがとうございます。
前と後ろの部分、入れてみたのですが、Itemの前にnewがあると、fromItemsが適用できませんと表示され、pivateのところは使用されていませんと出て、newを消すとprivateのところは消えますが、fromItemsのとこはそのままです。どうすればいいですか?
添付ファイル
2020-07-02 (2).png
2020-07-02 (1).png
2020-07-02.png
penM
サーバー管理者
記事: 115
登録日時: 2019年7月23日(火) 02:14

Re: バニラの装備やツールのitemTier

投稿記事 by penM »

meta26 さんが書きました: 2020年7月02日(木) 18:57 ご指摘ありがとうございます。
前と後ろの部分、入れてみたのですが、Itemの前にnewがあると、fromItemsが適用できませんと表示され、pivateのところは使用されていませんと出て、newを消すとprivateのところは消えますが、fromItemsのとこはそのままです。どうすればいいですか?
おそらく正しくWoodCarbonの引数が宣言されたことで、型チェックが入っているのだと思います。
Ingredient.fromItemsはItem型を引数で持つことと、getContainerItem()がItem型を返すはずなので、
前回継承していなくてできなかったことを試してみてください。
これで動かなければ作者に問い合わせてください。
penM さんが書きました: 2020年6月29日(月) 20:48
meta26 さんが書きました: 2020年6月29日(月) 17:26 今、試してみた所、「FromItems(メソッド)はItemWoodCarbon(引数)に適用できません。」
と出ます。どうすればいいですか?
以下のAPIの情報からの推測ですが、getContainerItemが使えるのではないでしょうか?
Ingredient
Item

コード: 全て選択

Ingredient.fromItems(new ItemWoodCardon().getContainerItem() ));
Ingredient.fromItems(new ItemWoodCardon.getContainerItem() ));
meta26
初心者
記事: 20
登録日時: 2020年6月25日(木) 19:24

Re: バニラの装備やツールのitemTier

投稿記事 by meta26 »

アドバイスありがとうございます。
getContainerItem()を入れたのですが、警告が出てきます(メソッドget...は型Itemでつかうべきではありません)また、Carbonの後ろにある()を消すとエラーが出てきます。どうすればいいですか?
添付ファイル
2020-07-03 (4).png
2020-07-03 (2).png
2020-07-03 (1).png
2020-07-03.png
meta26
初心者
記事: 20
登録日時: 2020年6月25日(木) 19:24

Re: バニラの装備やツールのitemTier

投稿記事 by meta26 »

penM さんが書きました: 2020年7月02日(木) 21:02
meta26 さんが書きました: 2020年7月02日(木) 18:57 ご指摘ありがとうございます。
前と後ろの部分、入れてみたのですが、Itemの前にnewがあると、fromItemsが適用できませんと表示され、pivateのところは使用されていませんと出て、newを消すとprivateのところは消えますが、fromItemsのとこはそのままです。どうすればいいですか?
おそらく正しくWoodCarbonの引数が宣言されたことで、型チェックが入っているのだと思います。
Ingredient.fromItemsはItem型を引数で持つことと、getContainerItem()がItem型を返すはずなので、
前回継承していなくてできなかったことを試してみてください。
これで動かなければ作者に問い合わせてください。
penM さんが書きました: 2020年6月29日(月) 20:48
meta26 さんが書きました: 2020年6月29日(月) 17:26 今、試してみた所、「FromItems(メソッド)はItemWoodCarbon(引数)に適用できません。」
と出ます。どうすればいいですか?
以下のAPIの情報からの推測ですが、getContainerItemが使えるのではないでしょうか?
Ingredient
Item

コード: 全て選択

Ingredient.fromItems(new ItemWoodCardon().getContainerItem() ));
Ingredient.fromItems(new ItemWoodCardon.getContainerItem() ));
ちなみに、作者とは誰の事を示していますか?
penM
サーバー管理者
記事: 115
登録日時: 2019年7月23日(火) 02:14

Re: バニラの装備やツールのitemTier

投稿記事 by penM »

meta26 さんが書きました: 2020年7月12日(日) 10:31
ちなみに、作者とは誰の事を示していますか?
このプログラムの記事を書いたうまげーむさんです。
記事のコメントなどで質問してください。
うまげーむさんのツイッター
返信する