2017-12-26 4 views
0

私はJavaでプログラミングするのが初めてで、ForgeでMinecraft modを作成する方法を学びたいと思っています。私はMinecraft Modding With Forgeという本をArun Guptaによって書かれています。& Aditya GuptaとMinecraft 1.7.10で作業しています。私はこれを行うと:Minecraft Forgeでどのようなブロックが壊れていたのか確認できません

import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
import net.minecraft.init.Blocks; 
import net.minecraftforge.event.world.BlockEvent.BreakEvent; 

public class DiamondOreTrap { 
    @SubscribeEvent 
    public void explode(BreakEvent event){ 
     if(event.state.getBlock() != Blocks.diamond_ore){ 
      return; 
     } 
     event.world.createExplosion(null,event.pos.getX(),event.pos.getY(),event.pos.getZ(),10,true); 
    } 
} 

2つのエラーがポップアップ表示:「POS」は、フィールドに解決することはできない、と「状態」フィールドに解決することはできません。

+0

私は彼ら[ここ](https://takahikokawasaki.github.io/minecraft-resources/javadoc/forge/1.8-11.14.1.1320/net/minecraftforge/event/world/BlockEvent.BreakEvent.html)を参照してください。適切な図書館がありますか? – shmosel

+0

どういう意味ですか? –

+0

どのIDEを使用していますか? – Nicolas

答えて

0

OK]をクリックして、その後、問題は、これらのフィールドは、MC 1.10+

event.state.getBlock()のためのものであるということである改造マニアは魔法のメタデータの番号を覚えておく必要はありませんでしたし、代わりにFACING:NORTHなどの値に仕事ができるように、1.10で追加IBlockStateを参照LIT:true

1.7.10以前では、ブロック/メタデータの組み合わせを手動で使用する必要があります。おそらく、ここでの置換はevent.blockまたはevent.getBlock()となるでしょう。私は1.7.10環境を設定していないので、チェックできません。 IDEを使用してイベントオブジェクトを調べ、使用可能なプロパティとゲッター機能が必要かどうかを確認します。

同様にevent.pos.getX()参照BlockPosオブジェクトは、何かが発生しているX、Y、Z座標の周りの修正不可能なラッパーです。置換えはevent.getX()またはevent.posXまたはそれに類するものでなければなりません。

(誰かが1.8または1.9になった場合、それらのバージョンのコードベースの状態はわかりません。1.7と似ていますが、1.10のように私はまったく気づいていない1.8または1.9のmoddingをしなかった)。

ただし、新しいバージョンに更新することをお勧めします。

0

あなたは、Minecraft Forge v1.8 +にのみ存在するBlockEvent.BreakEventのフィールドを探しています。

ここはthe documentation for the event in 1.7です。ご覧のとおり、posx,yzに分かれていて、この古いバージョンのMinecraft and ForgeではstateではなくblockblockMetadataです。

あなたがminecraft moddingに参加したいのであれば、1.7にとどまっている人の数が急激に減少しているので、オンラインチュートリアルを使い、v1.12改造に取り組む方がよいでしょう。

+0

に固執します。それは働いた! –

+0

しかし何らかの理由で私が1.12鍛造を使用したとき、それはうまくいかなかった。 –

+0

助けてくれてありがとう! –

関連する問題