【総合】トピック立てるまでもない質問【Mod制作】

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.289904)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kabutogani2014 » 2016年12月10日(土) 13:02

Ch1a さんが書きました:
kabutogani2014 さんが書きました:すいません質問です。
現在、forge-1.11-13.19.0.2162、eclipseでModdingをしているのですが、アイテムを右クリックしてチャットを出すようにしたいんですが、うまくいきません。
以前、1.7.10あたりで使用していた記述をコピーして貼り付けたのですが、ChatComponectTranslationのところでエラーが表示されてしまいます。

チャットを出させる方法が変わったのでしょうか。
現在のバージョンでのやり方を知っている方がいらっしゃいましたら返答よろしくお願いします。


1.11 - 13.19.1.2188で試してみました。
コード: 全て選択
   @Override
   public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
      if(!world.isRemote){
         player.addChatMessage(new TextComponentString("this is test"));
         return EnumActionResult.SUCCESS;
      }
   }

こちらでちゃんとメッセージが表示されました。
これは今までと変わっていません。
考えられる原因としては
1.11のデコンパイルされたコードの引数の型と名前がずれている
(World playerInのように)
からだと思います。


回答ありがとうございます
アバター
kabutogani2014
ID:420cb715
大工さん
 
記事: 52
登録日時: 2014年7月27日(日) 15:30
お住まい: 一巡後の世界またはDreamsblock

  • (PostNo.289959)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by あおみ » 2016年12月10日(土) 21:07

前回はありがとうございました。
おかげでGUIがほとんど完成しました。
もう一つ質問があります。

環境は同じです。
Minecraft 1.7.10
Forge 10.13.4.1558

GuiTextFieldに入力できる値を数値のみにすることと、下限と上限を決めることはできますか?
あおみ
ID:c78f21fa
 

  • (PostNo.289970)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kabutogani2014 » 2016年12月11日(日) 00:45

すいませんもう一回質問です。

Ch1a さんが書きました:
kabutogani2014 さんが書きました:すいません質問です。
現在、forge-1.11-13.19.0.2162、eclipseでModdingをしているのですが、アイテムを右クリックしてチャットを出すようにしたいんですが、うまくいきません。
以前、1.7.10あたりで使用していた記述をコピーして貼り付けたのですが、ChatComponectTranslationのところでエラーが表示されてしまいます。

チャットを出させる方法が変わったのでしょうか。
現在のバージョンでのやり方を知っている方がいらっしゃいましたら返答よろしくお願いします。


1.11 - 13.19.1.2188で試してみました。
コード: 全て選択
   @Override
   public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
      if(!world.isRemote){
         player.addChatMessage(new TextComponentString("this is test"));
         return EnumActionResult.SUCCESS;
      }
   }

こちらでちゃんとメッセージが表示されました。
これは今までと変わっていません。
考えられる原因としては
1.11のデコンパイルされたコードの引数の型と名前がずれている
(World playerInのように)
からだと思います。


このCh1aさんの回答で、クリックしたときにチャットを出すようにはできたんですが、ブロックをクリックしなければ反応しないようになっているようです。
以前はこのような時はonItemRightClickを使っていたのですが、
「型 ItemMyCoat のメソッド onItemRightClick(ItemStack, World, EntityPlayer) はスーパータイプ・メソッドをオーバーライドまたは実装する必要があります」
とエラーが出て使えません。

どうしたらよいでしょうか
アバター
kabutogani2014
ID:420cb715
大工さん
 
記事: 52
登録日時: 2014年7月27日(日) 15:30
お住まい: 一巡後の世界またはDreamsblock

  • (PostNo.290027)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ch1a » 2016年12月11日(日) 14:51

kabutogani2014 さんが書きました:すいませんもう一回質問です。

Ch1a さんが書きました:
kabutogani2014 さんが書きました:すいません質問です。
現在、forge-1.11-13.19.0.2162、eclipseでModdingをしているのですが、アイテムを右クリックしてチャットを出すようにしたいんですが、うまくいきません。
以前、1.7.10あたりで使用していた記述をコピーして貼り付けたのですが、ChatComponectTranslationのところでエラーが表示されてしまいます。

チャットを出させる方法が変わったのでしょうか。
現在のバージョンでのやり方を知っている方がいらっしゃいましたら返答よろしくお願いします。


1.11 - 13.19.1.2188で試してみました。
コード: 全て選択
   @Override
   public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
      if(!world.isRemote){
         player.addChatMessage(new TextComponentString("this is test"));
         return EnumActionResult.SUCCESS;
      }
   }

こちらでちゃんとメッセージが表示されました。
これは今までと変わっていません。
考えられる原因としては
1.11のデコンパイルされたコードの引数の型と名前がずれている
(World playerInのように)
からだと思います。


このCh1aさんの回答で、クリックしたときにチャットを出すようにはできたんですが、ブロックをクリックしなければ反応しないようになっているようです。
以前はこのような時はonItemRightClickを使っていたのですが、
「型 ItemMyCoat のメソッド onItemRightClick(ItemStack, World, EntityPlayer) はスーパータイプ・メソッドをオーバーライドまたは実装する必要があります」
とエラーが出て使えません。

どうしたらよいでしょうか


確かに私のコードではブロッククリック時にしかできないですね。
仰るとおりonItenRightClickを使えばブロッククリック時じゃなくても使えたはずです。
onItenRightClickをオーバーライドすれば可能なはずです。
onItenRightClickの引数などは正しいですか?
アバター
Ch1a
ID:fdeafa8a
大工さん
 
記事: 54
登録日時: 2016年8月30日(火) 22:59

  • (PostNo.290086)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Twilight » 2016年12月12日(月) 12:11

【動作環境】
・Forge-1.11-13.19.0.2180
・gradlew runClient で動作テスト
 gradler runClient --stacktrace > log.txt 2>&1
・OS:windows 10 Home(64bit)
・CPU:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 2.20GHz
・RAM:4.00GB


【やりたい事】
・BlockFalling及びEntityFallingBlockに特殊な挙動を追加した自作ブロックおよび落下中の自作エンティティを追加したい


【やったこと】
・BlockFallingクラスを継承する2つのクラスBlockFallingTestA、BlockFallingTestBを定義
・EntityFallingBlockクラスを継承するEntityFallingBlockTestBを定義
・BlockFallingTestAではBlockFallingのコードをそのままコピー(EntityFallingBlockを作成)
・BlockFallingTestBではEntityFallingBlockの代わりにEntityFallingBlockTestBを作成


【実行手順】
・BlockFallingTestA、BlockFallingTestBを落下する位置に設置


【実行結果】
・BlockFallingTestAは問題なく動作
・BlockFallingTestBを設置するとフリーズしまもなくクラッシュ


【発生しているエラー】
・EntityFallingBlockTestBクラスのClient側でのonUpdateメソッドにおいてthis.fallTileがnullであるためにNullPointerExceptionが発生している


【原因】
・new EntityFallingBlockTestB(world,double,double,double,IBlockState) がServer側でしか呼ばれておらず、Client側ではIBlockStateの登録ができていない
(チュートリアルなどでは、EntityのspawnはServer側でのみ実行すべきとされているはず)
(もちろんエンティティのインスタンス生成が実行されるのはworldIn.isRemote=falseの場合に限定されている)


【わからない事】
・通常のEntityFallingBlockの場合、Client側でのコンストラクタが呼び出されていないが問題なく動作する
・同じコードを持つはずのEntityFallingBlockTestBでは同じメソッドのはずがthis.fallTileがnullであるために例外が発生しクラッシュする


【質問内容】
・通常のEntityFallingBlockエンティティにおいてコンストラクタが呼び出されていないにも関わらずClient側でクラッシュしないのはなぜか
・自作エンティティEntityFallingBlockTestBにおいてthis.fallTileを登録するにはどのようにしたらよいか
・+エンティティのResourceLocationに適当な値を代入したのが原因であるか
(ネット上に落ちている情報の大半が古いregisterModEntityメソッドを利用しているため適切な対応がわからず)


【考えた解決策】
・Blockに対応したEntityを個別に作成して、blockStateをEntity側で固定する
※なるべくEntityFallingBlockのようなひとつのエンティティにまとめたいため最終手段
※一応この方法で解決は出来ましたがごり押し感が否めず…たぶんよくないコーディング


【コンソールの出力(runClientの出力)】
※debug知識に乏しく、一部クラスでデバッグ用に標準出力を使っています
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14/userguide/ ... aemon.html.
This mapping 'snapshot_20161111' was designed for MC 1.10.2! Use at your own peril.
#################################################
ForgeGradle 2.2-SNAPSHOT-c438b06
https://github.com/MinecraftForge/ForgeGradle
#################################################
Powered by MCP unknown
http://modcoderpack.com
by: Searge, ProfMobius, Fesh0r,
R4wk, ZeuX, IngisKahn, bspkrs
#################################################
:deobfCompileDummyTask
:deobfProvidedDummyTask
:sourceApiJava UP-TO-DATE
:compileApiJava UP-TO-DATE
:processApiResources UP-TO-DATE
:apiClasses UP-TO-DATE
:sourceMainJava
:compileJava警告: [options] ブートストラップ・クラスパスが-source 1.6と一緒に設定されていません
注意:D:\Forge\fallingblocktest\build\sources\main\java\fallingbocktest\entity\EntityFallingBlockTestB.javaは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:D:\Forge\fallingblocktest\build\sources\main\java\fallingblocktest\FallingBlockTestMod.javaの操作は、未チェックまたは安全ではありません。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
警告1個

:processResources UP-TO-DATE
:classes
:jar
:getVersionJson
:extractNatives SKIPPED
:extractUserdev UP-TO-DATE
:getAssetIndex UP-TO-DATE
:getAssets
Current status: 232/1196 19%
Current status: 411/1196 34%
Current status: 724/1196 60%
Current status: 970/1196 81%
:makeStart
:runClient
2016-12-12 10:20:27,488 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2016-12-12 10:20:27,493 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[10:20:27] [main/INFO] [GradleStart]: Extra: []
[10:20:27] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/twili_000/.gradle/caches/minecraft/assets, --assetIndex, 1.11, --accessToken{REDACTED}, --version, 1.11, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[10:20:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[10:20:27] [main/INFO] [FML]: Forge Mod Loader version 13.19.0.2180 for Minecraft 1.11 loading
[10:20:27] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_111, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jdk1.8.0_111\jre
[10:20:27] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[10:20:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[10:20:27] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[10:20:27] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[10:20:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[10:20:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[10:20:28] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[10:20:29] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[10:20:29] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[10:20:29] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[10:20:31] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[10:20:31] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[10:20:31] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[10:20:31] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
2016-12-12 10:20:32,668 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2016-12-12 10:20:32,763 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2016-12-12 10:20:32,771 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[10:20:33] [Client thread/INFO]: Setting user: Player263
[10:20:49] [Client thread/WARN]: Skipping bad option: lastServer:
[10:20:49] [Client thread/INFO]: LWJGL Version: 2.9.4
[10:21:01] [Client thread/INFO]: [STDOUT]: ---- Minecraft Crash Report ----
// Oops.

Time: 16/12/12 10:21
Description: Loading screen debug info

This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
Minecraft Version: 1.11
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_111, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 100821872 bytes (96 MB) / 390594560 bytes (372 MB) up to 935854080 bytes (892 MB)
JVM Flags: 0 total;
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
GL info: ' Vendor: 'Intel' Version: '4.4.0 - Build 20.19.15.4531' Renderer: 'Intel(R) HD Graphics 5500'
[10:21:01] [Client thread/INFO] [FML]: MinecraftForge v13.19.0.2180 Initialized
[10:21:01] [Client thread/INFO] [FML]: Replaced 232 ore recipes
[10:21:02] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
[10:21:02] [Client thread/INFO] [FML]: Searching D:\Forge\fallingblocktest\run\mods for mods
[10:21:19] [Client thread/WARN] [fallingblocktest]: Mod fallingblocktest is missing the required element 'version' and no fallback can be found. Substituting '1.0'.
[10:21:20] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load
[10:21:20] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, forge, fallingblocktest] at CLIENT
[10:21:20] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, forge, fallingblocktest] at SERVER
[10:21:23] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Falling Block Test
[10:21:24] [Client thread/INFO] [FML]: Processing ObjectHolder annotations
[10:21:24] [Client thread/INFO] [FML]: Found 443 ObjectHolder annotations
[10:21:24] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations
[10:21:24] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations
[10:21:24] [Client thread/INFO] [FML]: Applying holder lookups
[10:21:24] [Client thread/INFO] [FML]: Holder lookups applied
[10:21:24] [Client thread/INFO] [FML]: Applying holder lookups
[10:21:24] [Client thread/INFO] [FML]: Holder lookups applied
[10:21:24] [Client thread/INFO] [FML]: Applying holder lookups
[10:21:24] [Client thread/INFO] [FML]: Holder lookups applied
[10:21:24] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
[10:21:24] [Forge Version Check/INFO] [ForgeVersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/n ... _slim.json
[10:21:25] [Client thread/INFO] [FML]: Applying holder lookups
[10:21:25] [Client thread/INFO] [FML]: Holder lookups applied
[10:21:25] [Client thread/INFO] [FML]: Injecting itemstacks
[10:21:25] [Client thread/INFO] [FML]: Itemstack injection complete
[10:21:25] [Forge Version Check/INFO] [ForgeVersionCheck]: [forge] Found status: OUTDATED Target: 13.19.1.2189
[10:21:45] [Sound Library Loader/INFO]: Starting up SoundSystem...
[10:21:45] [Thread-8/INFO]: Initializing LWJGL OpenAL
[10:21:45] [Thread-8/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[10:21:46] [Thread-8/INFO]: OpenAL initialized.
[10:21:46] [Sound Library Loader/INFO]: Sound engine started
[10:21:55] [Client thread/INFO] [FML]: Max texture size: 8192
[10:21:55] [Client thread/INFO]: Created: 16x16 textures-atlas
[10:21:58] [Client thread/INFO] [FML]: Injecting itemstacks
[10:21:58] [Client thread/INFO] [FML]: Itemstack injection complete
[10:21:59] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods
[10:21:59] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Falling Block Test
[10:22:07] [Client thread/INFO]: SoundSystem shutting down...
[10:22:07] [Client thread/WARN]: Author: Paul Lamb, http://www.paulscode.com
[10:22:07] [Sound Library Loader/INFO]: Starting up SoundSystem...
[10:22:07] [Thread-10/INFO]: Initializing LWJGL OpenAL
[10:22:07] [Thread-10/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[10:22:07] [Thread-10/INFO]: OpenAL initialized.
[10:22:08] [Sound Library Loader/INFO]: Sound engine started
[10:22:15] [Client thread/INFO] [FML]: Max texture size: 8192
[10:22:17] [Client thread/INFO]: Created: 512x512 textures-atlas
[10:22:19] [Client thread/WARN]: Skipping bad option: lastServer:
[10:22:24] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
[10:22:42] [Server thread/INFO]: Starting integrated minecraft server version 1.11
[10:22:42] [Server thread/INFO]: Generating keypair
[10:22:43] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance
[10:22:43] [Server thread/INFO] [FML]: Applying holder lookups
[10:22:43] [Server thread/INFO] [FML]: Holder lookups applied
[10:22:43] [Server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@152d986c)
[10:22:43] [Server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@152d986c)
[10:22:43] [Server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@152d986c)
[10:22:43] [Server thread/INFO]: Preparing start region for level 0
[10:22:44] [Server thread/INFO]: Preparing spawn area: 38%
[10:22:45] [Server thread/INFO]: Changing view distance to 12, from 10
[10:22:50] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 2
[10:22:50] [Netty Server IO #1/INFO] [FML]: Client protocol version 2
[10:22:50] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : FML@8.0.99.99,forge@13.19.0.2180,mcp@9.19,fallingblocktest@1.0
[10:22:50] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established
[10:22:50] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established
[10:22:50] [Server thread/INFO]: Player263[local:E:ad605416] logged in with entity id 155 at (-169.5, 4.0, -1510.5)
[10:22:50] [Server thread/INFO]: Player263 joined the game
[10:22:51] [Server thread/INFO]: Saving and pausing game...
[10:22:52] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[10:22:53] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[10:22:53] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[10:22:54] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2987ms behind, skipping 59 tick(s)
[10:22:54] [pool-2-thread-1/WARN]: Couldn't look up profile properties for com.mojang.authlib.GameProfile@3818291e[id=f49b244f-2f6c-3574-ad7c-6686b5af67fc,name=Player263,properties={},legacy=false]
com.mojang.authlib.exceptions.AuthenticationException: The client has sent too many requests within a certain amount of time
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:79) ~[YggdrasilAuthenticationService.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillGameProfile(YggdrasilMinecraftSessionService.java:180) [YggdrasilMinecraftSessionService.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:60) [YggdrasilMinecraftSessionService$1.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:57) [YggdrasilMinecraftSessionService$1.class:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache.get(LocalCache.java:3934) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821) [guava-17.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4827) [guava-17.0.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillProfileProperties(YggdrasilMinecraftSessionService.java:170) [YggdrasilMinecraftSessionService.class:?]
at net.minecraft.client.Minecraft.getProfileProperties(Minecraft.java:3054) [Minecraft.class:?]
at net.minecraft.client.resources.SkinManager$3.run(SkinManager.java:138) [SkinManager$3.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_111]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[10:22:57] [Server thread/INFO]: Player263 has just earned the achievement [Taking Inventory]
[10:22:59] [Client thread/INFO]: [CHAT] Player263 has just earned the achievement [Taking Inventory]
[10:23:28] [Server thread/INFO]: [STDOUT]: ---BlockFallingTestA checkFallable has been called.---
[10:23:28] [Server thread/INFO]: [STDOUT]: isRemote : false
[10:23:30] [Server thread/INFO]: [STDOUT]: ---BlockFallingTestA checkFallable has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: ---BlockFallingTestB checkFallable has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: isRemote : false
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB constructor has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: fallingBlockStates : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:32] [Client thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:32] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:33] [Client thread/INFO]: [STDOUT]: this.fallTile : null
[10:23:33] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:33] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:33] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:34] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:34] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:34] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:34] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: [STDOUT]: ---EntityFallingBlockTestB onUpdate() has been called.---
[10:23:34] [Server thread/INFO]: [STDOUT]: this.fallTile : fallingblocktest:fallingblocktestb
[10:23:34] [Server thread/INFO]: Stopping server
[10:23:34] [Server thread/INFO]: Saving players
[10:23:34] [Server thread/INFO]: Saving worlds
[10:23:34] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[10:23:34] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[10:23:34] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[10:23:35] [Server thread/INFO] [FML]: Unloading dimension 0
[10:23:35] [Server thread/INFO] [FML]: Unloading dimension -1
[10:23:35] [Server thread/INFO] [FML]: Unloading dimension 1
[10:23:35] [Server thread/INFO] [FML]: Applying holder lookups
[10:23:35] [Server thread/INFO] [FML]: Holder lookups applied
[10:23:36] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Ticking entity
at net.minecraft.world.World.updateEntities(World.java:1927) ~[World.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1879) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1117) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:405) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
at GradleStart.main(GradleStart.java:26) [start/:?]
Caused by: java.lang.NullPointerException
at fallingbocktest.entity.EntityFallingBlockTestB.onUpdate(EntityFallingBlockTestB.java:65) ~[EntityFallingBlockTestB.class:?]
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2134) ~[World.class:?]
at net.minecraft.world.World.updateEntity(World.java:2101) ~[World.class:?]
at net.minecraft.world.World.updateEntities(World.java:1914) ~[World.class:?]
... 16 more
[10:23:36] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:600]: ---- Minecraft Crash Report ----
// There are four lights!

Time: 16/12/12 10:23
Description: Ticking entity

java.lang.NullPointerException: Ticking entity
at fallingbocktest.entity.EntityFallingBlockTestB.onUpdate(EntityFallingBlockTestB.java:65)
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2134)
at net.minecraft.world.World.updateEntity(World.java:2101)
at net.minecraft.world.World.updateEntities(World.java:1914)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1879)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1117)
at net.minecraft.client.Minecraft.run(Minecraft.java:405)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
at fallingbocktest.entity.EntityFallingBlockTestB.onUpdate(EntityFallingBlockTestB.java:65)
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2134)
at net.minecraft.world.World.updateEntity(World.java:2101)

-- Entity being ticked --
Details:
Entity Type: fallingblocktest:entityfallingblocktestb (fallingbocktest.entity.EntityFallingBlockTestB)
Entity ID: 163684
Entity Name: entity.entityfallingblocktestb.name
Entity's Exact location: -170.50, 18.97, -1510.50
Entity's Block location: World: (-171,18,-1511), Chunk: (at 5,1,9 in -11,-95; contains blocks -176,0,-1520 to -161,255,-1505), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025)
Entity's Momentum: 0.00, -0.26, 0.00
Entity's Passengers: []
Entity's Vehicle: ~~ERROR~~ NullPointerException: null
Stacktrace:
at net.minecraft.world.World.updateEntities(World.java:1914)

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player263'/155, l='MpServer', x=-168.46, y=20.40, z=-1511.68]]
Chunk stats: MultiplayerChunkCache: 552, 552
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options:
Level spawn location: World: (-162,4,-1503), Chunk: (at 14,0,1 in -11,-94; contains blocks -176,0,-1504 to -161,255,-1489), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025)
Level time: 5087 game time, 5087 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 78 total; [EntityItem['item.item.seeds'/159363, l='MpServer', x=-225.62, y=5.00, z=-1468.47], EntitySlime['Slime'/136, l='MpServer', x=-90.25, y=4.14, z=-1476.77], EntitySlime['Slime'/8345, l='MpServer', x=-233.00, y=4.00, z=-1487.53], EntityVillager['Villager'/26, l='MpServer', x=-245.50, y=5.00, z=-1483.50], EntityChicken['Chicken'/29, l='MpServer', x=-246.50, y=4.00, z=-1463.50], EntityChicken['Chicken'/30, l='MpServer', x=-247.80, y=4.00, z=-1467.43], EntityVillager['Villager'/32, l='MpServer', x=-245.25, y=4.94, z=-1445.97], EntitySlime['Slime'/117665, l='MpServer', x=-204.74, y=4.00, z=-1495.30], EntityVillager['Villager'/33, l='MpServer', x=-243.94, y=5.00, z=-1446.91], EntitySlime['Slime'/134054, l='MpServer', x=-184.92, y=4.00, z=-1497.20], EntityVillager['Villager'/38, l='MpServer', x=-244.50, y=5.00, z=-1435.29], EntitySlime['Slime'/117417, l='MpServer', x=-234.43, y=4.83, z=-1478.03], EntityItem['item.item.seeds'/79530, l='MpServer', x=-231.39, y=5.00, z=-1469.03], EntitySlime['Slime'/44, l='MpServer', x=-227.20, y=5.84, z=-1468.39], EntityCow['Cow'/45, l='MpServer', x=-228.81, y=4.00, z=-1458.62], EntityVillager['Villager'/46, l='MpServer', x=-226.54, y=4.94, z=-1466.02], EntityItem['item.item.seeds'/47, l='MpServer', x=-228.16, y=4.94, z=-1468.85], EntityItem['item.item.seeds'/48, l='MpServer', x=-230.75, y=4.00, z=-1467.57], EntityVillager['Villager'/50, l='MpServer', x=-232.49, y=5.00, z=-1449.42], EntityVillager['Villager'/51, l='MpServer', x=-236.50, y=5.00, z=-1445.41], EntitySlime['Slime'/129205, l='MpServer', x=-241.96, y=4.78, z=-1505.68], EntitySlime['Slime'/129204, l='MpServer', x=-239.12, y=4.14, z=-1514.16], EntityPlayerSP['Player263'/155, l='MpServer', x=-168.46, y=20.40, z=-1511.68], EntitySlime['Slime'/58, l='MpServer', x=-203.60, y=4.53, z=-1568.70], EntitySlime['Slime'/73402, l='MpServer', x=-168.23, y=4.00, z=-1431.84], EntitySlime['Slime'/60, l='MpServer', x=-209.20, y=4.00, z=-1575.59], EntityHorse['Horse'/61, l='MpServer', x=-216.29, y=4.00, z=-1551.12], EntityHorse['Horse'/62, l='MpServer', x=-209.83, y=4.00, z=-1548.58], EntityHorse['Horse'/63, l='MpServer', x=-209.40, y=4.00, z=-1549.80], EntitySlime['Slime'/64, l='MpServer', x=-244.35, y=4.00, z=-1477.70], EntityCow['Cow'/66, l='MpServer', x=-207.33, y=4.00, z=-1540.84], EntityChicken['Chicken'/67, l='MpServer', x=-194.09, y=4.00, z=-1542.20], EntitySlime['Slime'/35907, l='MpServer', x=-146.09, y=4.14, z=-1563.46], EntityCow['Cow'/68, l='MpServer', x=-210.15, y=4.00, z=-1530.25], EntityCow['Cow'/69, l='MpServer', x=-197.50, y=4.00, z=-1529.50], EntityChicken['Chicken'/70, l='MpServer', x=-207.39, y=4.00, z=-1537.34], EntityCow['Cow'/71, l='MpServer', x=-202.18, y=4.00, z=-1510.70], EntityChicken['Chicken'/72, l='MpServer', x=-198.36, y=4.00, z=-1488.80], EntityChicken['Chicken'/73, l='MpServer', x=-192.12, y=4.00, z=-1483.31], EntitySlime['Slime'/110024, l='MpServer', x=-119.85, y=4.78, z=-1457.51], EntitySlime['Slime'/59083, l='MpServer', x=-228.68, y=4.55, z=-1494.09], EntityChicken['Chicken'/77, l='MpServer', x=-186.34, y=4.00, z=-1519.13], EntitySheep['Sheep'/78, l='MpServer', x=-177.64, y=4.00, z=-1472.27], EntitySheep['Sheep'/79, l='MpServer', x=-176.44, y=4.00, z=-1473.04], EntityChicken['Chicken'/80, l='MpServer', x=-184.91, y=4.00, z=-1478.75], EntitySlime['Slime'/81, l='MpServer', x=-184.65, y=4.00, z=-1490.20], EntitySlime['Slime'/82, l='MpServer', x=-184.15, y=4.87, z=-1481.97], EntitySlime['Slime'/83, l='MpServer', x=-191.58, y=4.00, z=-1491.81], EntitySlime['Slime'/85, l='MpServer', x=-177.37, y=4.00, z=-1439.35], EntityHorse['Horse'/89, l='MpServer', x=-166.93, y=4.00, z=-1542.99], EntitySheep['Sheep'/90, l='MpServer', x=-173.29, y=4.00, z=-1522.54], EntityCow['Cow'/91, l='MpServer', x=-165.36, y=4.00, z=-1490.79], EntitySlime['Slime'/24283, l='MpServer', x=-162.49, y=4.94, z=-1439.58], EntitySlime['Slime'/92, l='MpServer', x=-156.59, y=4.00, z=-1483.08], EntityChicken['Chicken'/93, l='MpServer', x=-173.50, y=4.00, z=-1469.50], EntityChicken['Chicken'/94, l='MpServer', x=-172.50, y=4.00, z=-1470.50], EntitySlime['Slime'/95, l='MpServer', x=-172.99, y=4.39, z=-1440.78], EntitySlime['Slime'/97, l='MpServer', x=-169.26, y=4.84, z=-1433.21], EntitySlime['Slime'/86882, l='MpServer', x=-202.32, y=4.00, z=-1575.73], EntitySlime['Slime'/100, l='MpServer', x=-153.72, y=4.00, z=-1530.80], EntitySlime['Slime'/62820, l='MpServer', x=-89.06, y=4.00, z=-1444.64], EntitySlime['Slime'/101, l='MpServer', x=-157.11, y=4.00, z=-1530.87], EntitySlime['Slime'/37861, l='MpServer', x=-151.54, y=4.00, z=-1535.85], EntityHorse['Horse'/102, l='MpServer', x=-149.24, y=4.00, z=-1520.03], EntityFallingBlockTestB['entity.entityfallingblocktestb.name'/163684, l='MpServer', x=-170.50, y=18.97, z=-1510.50], EntitySlime['Slime'/103, l='MpServer', x=-147.07, y=4.14, z=-1498.83], EntitySlime['Slime'/104, l='MpServer', x=-161.28, y=4.33, z=-1438.31], EntitySlime['Slime'/108, l='MpServer', x=-144.40, y=4.68, z=-1533.74], EntityHorse['Horse'/109, l='MpServer', x=-145.91, y=4.00, z=-1533.88], EntityChicken['Chicken'/110, l='MpServer', x=-141.73, y=4.00, z=-1530.54], EntitySlime['Slime'/111, l='MpServer', x=-103.87, y=4.14, z=-1489.10], EntitySlime['Slime'/112, l='MpServer', x=-123.87, y=4.00, z=-1484.56], EntitySlime['Slime'/114, l='MpServer', x=-99.56, y=4.00, z=-1567.37], EntitySlime['Slime'/117, l='MpServer', x=-89.52, y=4.00, z=-1520.08], EntityItem['item.item.seeds'/130295, l='MpServer', x=-226.96, y=5.00, z=-1468.68], EntityChicken['Chicken'/119, l='MpServer', x=-111.24, y=4.00, z=-1444.15], EntityChicken['Chicken'/120, l='MpServer', x=-97.89, y=4.00, z=-1438.22], EntityChicken['Chicken'/121, l='MpServer', x=-108.56, y=4.00, z=-1431.48]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:451)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2772)
at net.minecraft.client.Minecraft.run(Minecraft.java:426)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)

-- System Details --
Details:
Minecraft Version: 1.11
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_111, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 284009112 bytes (270 MB) / 694157312 bytes (662 MB) up to 935854080 bytes (892 MB)
JVM Flags: 0 total;
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.35 Powered by Forge 13.19.0.2180 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.11-13.19.0.2180.jar)
UCHIJAAAA forge{13.19.0.2180} [Minecraft Forge] (forgeSrc-1.11-13.19.0.2180.jar)
UCHIJAAAA fallingblocktest{1.0} [Falling Block Test] (modid-1.0.jar)
Loaded coremods (and transformers):
GL info: ' Vendor: 'Intel' Version: '4.4.0 - Build 20.19.15.4531' Renderer: 'Intel(R) HD Graphics 5500'
Launched Version: 1.11
LWJGL: 2.9.4
OpenGL: Intel(R) HD Graphics 5500 GL version 4.4.0 - Build 20.19.15.4531, Intel
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs:
Current Language: English (US)
Profiler Position: N/A (disabled)
CPU: 4x Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
[10:23:36] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:600]: #@!@# Game crashed! Crash report saved to: #@!@# D:\Forge\fallingblocktest\run\.\crash-reports\crash-2016-12-12_10.23.36-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
:runClient FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':runClient'.
> Process 'command 'C:\Program Files\Java\jdk1.8.0_111\bin\java.exe'' finished with non-zero exit value -1

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':runClient'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_111\bin\java.exe'' finished with non-zero exit value -1
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:31)
at org.gradle.api.tasks.JavaExec.exec(JavaExec.java:74)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:228)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:621)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:604)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 68 more


BUILD FAILED

Total time: 3 mins 59.973 secs


(ソースコードは文字数制限に引っ掛かったので分割)
Entity周りは挙動が複雑らしくチュートリアルの作成が難しいとの話をこちらのスレでも見かけました
単なる勉強不足で不適切なコードを書いていることは自覚しています
ただ何が原因かわからず、何を調べればよいかも行き詰ってしまい、こちらにて質問をさせて頂きました

追記:
クライアント側で呼び出すコンストラクタは(world)の方ではないかと思い(というよりなぜそう思わなかった)調べてみたところ案の定でした
整理すると、Server側では位置情報およびブロック情報を記述したコンストラクタが呼ばれて、Client側ではいずれかのタイミングでワールド情報のみを受け取るコンストラクタが自動で呼ばれているという事は確かだと思います
となると、自動で生成されるClient側の挙動ついて、すべきことがあるという事でしょうか…
最後に編集したユーザー Twilight [ 2016年12月12日(月) 15:48 ], 累計 6 回
アバター
Twilight
ID:631e3699
木を殴ってる
 
記事: 32
登録日時: 2011年9月16日(金) 03:33
お住まい: 茨城県

  • (PostNo.290087)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Twilight » 2016年12月12日(月) 12:15

【フォルダ階層】
・javaソースコード
src/main/java
┗fallingblocktest
 ┣FallingBlockTestMod.java
 ┃
 ┣blocks
 ┃┣BlockFallingTestA.java
 ┃┗BlockFallingTestB.java
 ┃
 ┗entity
  ┗EntityFallingBlockTestB.java



・リソース
src/main/resource
┣mcmod.info
┗assets
 ┗fallingblocktest
  ┗blockstates
   ┣fallingblocktesta.json
   ┗fallingblocktestb.json



【ソースコード】

・FallingBlockTestMod.java(import文省略)
※EntityのResourceLocationに適当な値を設定して通って困惑
コード: 全て選択
@Mod(
      modid   = FallingBlockTestMod.MOD_ID,
      name   = FallingBlockTestMod.MOD_NAME
)
public class FallingBlockTestMod {

   public static final String MOD_ID = "fallingblocktest";
   public static final String MOD_NAME = "Falling Block Test";
   
   @Instance(MOD_ID)
   public static FallingBlockTestMod INSTANCE;

   @EventHandler
   public void preInit(FMLPreInitializationEvent event){
      BlockFallingTestA blockFallingTestA = new BlockFallingTestA();
      BlockFallingTestB blockFallingTestB = new BlockFallingTestB();
      ResourceLocation registryNameFallingBlockTestA = new ResourceLocation(MOD_ID,"fallingblocktesta");
      ResourceLocation registryNameFallingBlockTestB = new ResourceLocation(MOD_ID,"fallingblocktestb");
      ResourceLocation registryNameEntityFallingBlockTestB = new ResourceLocation(MOD_ID,"entityfallingblocktestb");
      ItemBlock itemblockFallingBlockTestA = new ItemBlock(blockFallingTestA);
      ItemBlock itemblockFallingBlockTestB = new ItemBlock(blockFallingTestB);
      
      GameRegistry.register(blockFallingTestA,registryNameFallingBlockTestA);
      GameRegistry.register(blockFallingTestB,registryNameFallingBlockTestB);
      GameRegistry.register(itemblockFallingBlockTestA,registryNameFallingBlockTestA);
      GameRegistry.register(itemblockFallingBlockTestB,registryNameFallingBlockTestB);
      
      EntityRegistry.registerModEntity(
            registryNameEntityFallingBlockTestB,
            EntityFallingBlockTestB.class,
            "entityfallingblocktestb",
            0, this,80, 1, true);
      
      if(event.getSide().isClient()){
         ModelLoader.setCustomModelResourceLocation(
                  itemblockFallingBlockTestA, 0,
                  new ModelResourceLocation(
                        new ResourceLocation(MOD_ID,"fallingblocktesta"),
                        "inventory")
                  );
         ModelLoader.setCustomModelResourceLocation(
               itemblockFallingBlockTestB, 0,
               new ModelResourceLocation(
                     new ResourceLocation(MOD_ID,"fallingblocktestb"),
                     "inventory")
               );
         RenderingRegistry.registerEntityRenderingHandler(
               EntityFallingBlockTestB.class,
               new IRenderFactory(){
                  @Override
                  public Render createRenderFor(RenderManager manager){
                     return new RenderFallingBlock(manager);
                  }
               });
      }else{
      }
   }
}



・BlockFallingTestA.java(import文省略)、BlockFallingTestB.java(import文省略)
※BlockFallingTestBではEntityFallingBlockではなくEntityFallingBlockTestBに差し替えている
コード: 全て選択
public class BlockFallingTestA extends BlockFalling {
   
   public BlockFallingTestA(){
      super();
      setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
      setUnlocalizedName("blockFallingTestA");
   }
   
    public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand)
    {
        if (!worldIn.isRemote)
        {
            this.checkFallable(worldIn, pos);
        }
    }

    private void checkFallable(World worldIn, BlockPos pos)
    {
       System.out.println("---BlockFallingTestA checkFallable has been called.---");
        if ((worldIn.isAirBlock(pos.down()) || canFallThrough(worldIn.getBlockState(pos.down()))) && pos.getY() >= 0)
        {
            if (!fallInstantly && worldIn.isAreaLoaded(pos.add(-32, -32, -32), pos.add(32, 32, 32)))
            {
                if (!worldIn.isRemote)
                {
                   System.out.println("isRemote : false");
                    EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, worldIn.getBlockState(pos));
                    this.onStartFalling(entityfallingblock);
                    worldIn.spawnEntityInWorld(entityfallingblock);
                }
            }
            else
            {
                IBlockState state = worldIn.getBlockState(pos);
                worldIn.setBlockToAir(pos);
                BlockPos blockpos;

                for (blockpos = pos.down(); (worldIn.isAirBlock(blockpos) || canFallThrough(worldIn.getBlockState(blockpos))) && blockpos.getY() > 0; blockpos = blockpos.down())
                {
                    ;
                }

                if (blockpos.getY() > 0)
                {
                    worldIn.setBlockState(blockpos.up(), state); //Forge: Fix loss of state information during world gen.
                }
            }
        }
    }
}



・EntityFallingBlockTestB.java(import文省略)
※onUpdate関係とprivateプロパティ及びprivateメソッドを作成、他は継承
コード: 全て選択
public class EntityFallingBlockTestB extends EntityFallingBlock {
   private IBlockState fallTile;
    private boolean canSetAsBlock;
    private boolean hurtEntities;
    private int fallHurtMax = 40;
    private float fallHurtAmount = 2.0F;

    public EntityFallingBlockTestB(World worldIn)
    {
        super(worldIn);
    }

    public EntityFallingBlockTestB(World worldIn, double x, double y, double z, IBlockState fallingBlockState)
    {
        super(worldIn);
        System.out.println("---EntityFallingBlockTestB constructor has been called.---");
        System.out.println("fallingBlockStates : " + fallingBlockState);
        this.fallTile = fallingBlockState;
        this.preventEntitySpawning = true;
        this.setSize(0.98F, 0.98F);
        this.setPosition(x, y + (double)((1.0F - this.height) / 2.0F), z);
        this.motionX = 0.0D;
        this.motionY = 0.0D;
        this.motionZ = 0.0D;
        this.prevPosX = x;
        this.prevPosY = y;
        this.prevPosZ = z;
        this.setOrigin(new BlockPos(this));
    }

    public void onUpdate()
    {
        System.out.println("---EntityFallingBlockTestB onUpdate() has been called.---");
        System.out.println("this.fallTile : " + this.fallTile);
        Block block = this.fallTile.getBlock();

        if (this.fallTile.getMaterial() == Material.AIR)
        {
            this.setDead();
        }
        else
        {
            this.prevPosX = this.posX;
            this.prevPosY = this.posY;
            this.prevPosZ = this.posZ;

            if (this.fallTime++ == 0)
            {
                BlockPos blockpos = new BlockPos(this);

                if (this.worldObj.getBlockState(blockpos).getBlock() == block)
                {
                    this.worldObj.setBlockToAir(blockpos);
                }
                else if (!this.worldObj.isRemote)
                {
                    this.setDead();
                    return;
                }
            }

            if (!this.hasNoGravity())
            {
                this.motionY -= 0.03999999910593033D;
            }

            this.moveEntity(MoverType.SELF, this.motionX, this.motionY, this.motionZ);
            this.motionX *= 0.9800000190734863D;
            this.motionY *= 0.9800000190734863D;
            this.motionZ *= 0.9800000190734863D;

            if (!this.worldObj.isRemote)
            {
                BlockPos blockpos1 = new BlockPos(this);

                if (this.onGround)
                {
                    IBlockState iblockstate = this.worldObj.getBlockState(blockpos1);

                    if (this.worldObj.isAirBlock(new BlockPos(this.posX, this.posY - 0.009999999776482582D, this.posZ))) //Forge: Don't indent below.
                    if (BlockFalling.canFallThrough(this.worldObj.getBlockState(new BlockPos(this.posX, this.posY - 0.009999999776482582D, this.posZ))))
                    {
                        this.onGround = false;
                        return;
                    }

                    this.motionX *= 0.699999988079071D;
                    this.motionZ *= 0.699999988079071D;
                    this.motionY *= -0.5D;

                    if (iblockstate.getBlock() != Blocks.PISTON_EXTENSION)
                    {
                        this.setDead();

                        if (!this.canSetAsBlock)
                        {
                            if (this.worldObj.func_190527_a(block, blockpos1, true, EnumFacing.UP, (Entity)null) && !BlockFalling.canFallThrough(this.worldObj.getBlockState(blockpos1.down())) && this.worldObj.setBlockState(blockpos1, this.fallTile, 3))
                            {
                                if (block instanceof BlockFalling)
                                {
                                    ((BlockFalling)block).onEndFalling(this.worldObj, blockpos1);
                                }

                                if (this.tileEntityData != null && block instanceof ITileEntityProvider)
                                {
                                    TileEntity tileentity = this.worldObj.getTileEntity(blockpos1);

                                    if (tileentity != null)
                                    {
                                        NBTTagCompound nbttagcompound = tileentity.writeToNBT(new NBTTagCompound());

                                        for (String s : this.tileEntityData.getKeySet())
                                        {
                                            NBTBase nbtbase = this.tileEntityData.getTag(s);

                                            if (!"x".equals(s) && !"y".equals(s) && !"z".equals(s))
                                            {
                                                nbttagcompound.setTag(s, nbtbase.copy());
                                            }
                                        }

                                        tileentity.readFromNBT(nbttagcompound);
                                        tileentity.markDirty();
                                    }
                                }
                            }
                            else if (this.shouldDropItem && this.worldObj.getGameRules().getBoolean("doEntityDrops"))
                            {
                                this.entityDropItem(new ItemStack(block, 1, block.damageDropped(this.fallTile)), 0.0F);
                            }
                        }
                        else if (block instanceof BlockFalling)
                        {
                            ((BlockFalling)block).func_190974_b(this.worldObj, blockpos1);
                        }
                    }
                }
                else if (this.fallTime > 100 && !this.worldObj.isRemote && (blockpos1.getY() < 1 || blockpos1.getY() > 256) || this.fallTime > 600)
                {
                    if (this.shouldDropItem && this.worldObj.getGameRules().getBoolean("doEntityDrops"))
                    {
                        this.entityDropItem(new ItemStack(block, 1, block.damageDropped(this.fallTile)), 0.0F);
                    }

                    this.setDead();
                }
            }
        }
    }

    public void fall(float distance, float damageMultiplier)
    {
        Block block = this.fallTile.getBlock();

        if (this.hurtEntities)
        {
            int i = MathHelper.ceiling_float_int(distance - 1.0F);

            if (i > 0)
            {
                List<Entity> list = Lists.newArrayList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox()));
                boolean flag = block == Blocks.ANVIL;
                DamageSource damagesource = flag ? DamageSource.anvil : DamageSource.fallingBlock;

                for (Entity entity : list)
                {
                    entity.attackEntityFrom(damagesource, (float)Math.min(MathHelper.floor_float((float)i * this.fallHurtAmount), this.fallHurtMax));
                }

                if (flag && (double)this.rand.nextFloat() < 0.05000000074505806D + (double)i * 0.05D)
                {
                    int j = ((Integer)this.fallTile.getValue(BlockAnvil.DAMAGE)).intValue();
                    ++j;

                    if (j > 2)
                    {
                        this.canSetAsBlock = true;
                    }
                    else
                    {
                        this.fallTile = this.fallTile.withProperty(BlockAnvil.DAMAGE, Integer.valueOf(j));
                    }
                }
            }
        }
    }

    protected void writeEntityToNBT(NBTTagCompound compound)
    {
        Block block = this.fallTile != null ? this.fallTile.getBlock() : Blocks.AIR;
        ResourceLocation resourcelocation = (ResourceLocation)Block.REGISTRY.getNameForObject(block);
        compound.setString("Block", resourcelocation == null ? "" : resourcelocation.toString());
        compound.setByte("Data", (byte)block.getMetaFromState(this.fallTile));
        compound.setInteger("Time", this.fallTime);
        compound.setBoolean("DropItem", this.shouldDropItem);
        compound.setBoolean("HurtEntities", this.hurtEntities);
        compound.setFloat("FallHurtAmount", this.fallHurtAmount);
        compound.setInteger("FallHurtMax", this.fallHurtMax);

        if (this.tileEntityData != null)
        {
            compound.setTag("TileEntityData", this.tileEntityData);
        }
    }

    protected void readEntityFromNBT(NBTTagCompound compound)
    {
        int i = compound.getByte("Data") & 255;

        if (compound.hasKey("Block", 8))
        {
            this.fallTile = Block.getBlockFromName(compound.getString("Block")).getStateFromMeta(i);
        }
        else if (compound.hasKey("TileID", 99))
        {
            this.fallTile = Block.getBlockById(compound.getInteger("TileID")).getStateFromMeta(i);
        }
        else
        {
            this.fallTile = Block.getBlockById(compound.getByte("Tile") & 255).getStateFromMeta(i);
        }

        this.fallTime = compound.getInteger("Time");
        Block block = this.fallTile.getBlock();

        if (compound.hasKey("HurtEntities", 99))
        {
            this.hurtEntities = compound.getBoolean("HurtEntities");
            this.fallHurtAmount = compound.getFloat("FallHurtAmount");
            this.fallHurtMax = compound.getInteger("FallHurtMax");
        }
        else if (block == Blocks.ANVIL)
        {
            this.hurtEntities = true;
        }

        if (compound.hasKey("DropItem", 99))
        {
            this.shouldDropItem = compound.getBoolean("DropItem");
        }

        if (compound.hasKey("TileEntityData", 10))
        {
            this.tileEntityData = compound.getCompoundTag("TileEntityData");
        }

        if (block == null || block.getDefaultState().getMaterial() == Material.AIR)
        {
            this.fallTile = Blocks.SAND.getDefaultState();
        }
    }

    public void setHurtEntities(boolean p_145806_1_)
    {
        this.hurtEntities = p_145806_1_;
    }

    public void addEntityCrashInfo(CrashReportCategory category)
    {
        super.addEntityCrashInfo(category);

        if (this.fallTile != null)
        {
            Block block = this.fallTile.getBlock();
            category.addCrashSection("Immitating block ID", Integer.valueOf(Block.getIdFromBlock(block)));
            category.addCrashSection("Immitating block data", Integer.valueOf(block.getMetaFromState(this.fallTile)));
        }
    }

    @Nullable
    public IBlockState getBlock()
    {
        return this.fallTile;
    }
}



・fallingblocktesta.json、fallingblocktestb.json
コード: 全て選択
{
  "forge_marker": 1,
  "defaults": {
    "model": "cube_all",
    "textures": {
      "all": "blocks/dirt"
    },
    "transform": "forge:default-block"
  },
  "variants": {
    "normal":[{}],
    "inventory":[{}]
  }
}
アバター
Twilight
ID:631e3699
木を殴ってる
 
記事: 32
登録日時: 2011年9月16日(金) 03:33
お住まい: 茨城県

  • (PostNo.290115)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kabutogani2014 » 2016年12月12日(月) 19:16

Ch1a さんが書きました:確かに私のコードではブロッククリック時にしかできないですね。
仰るとおりonItenRightClickを使えばブロッククリック時じゃなくても使えたはずです。
onItenRightClickをオーバーライドすれば可能なはずです。
onItenRightClickの引数などは正しいですか?


正しいと思います
アバター
kabutogani2014
ID:420cb715
大工さん
 
記事: 52
登録日時: 2014年7月27日(日) 15:30
お住まい: 一巡後の世界またはDreamsblock

  • (PostNo.290117)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ch1a » 2016年12月12日(月) 19:27

kabutogani2014 さんが書きました:
Ch1a さんが書きました:確かに私のコードではブロッククリック時にしかできないですね。
仰るとおりonItenRightClickを使えばブロッククリック時じゃなくても使えたはずです。
onItenRightClickをオーバーライドすれば可能なはずです。
onItenRightClickの引数などは正しいですか?


正しいと思います


ItemMyCoatクラスを見せてください。
アバター
Ch1a
ID:7c4b63c9
大工さん
 
記事: 54
登録日時: 2016年8月30日(火) 22:59

  • (PostNo.290118)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kabutogani2014 » 2016年12月12日(月) 19:39

Ch1a さんが書きました:
kabutogani2014 さんが書きました:
Ch1a さんが書きました:確かに私のコードではブロッククリック時にしかできないですね。
仰るとおりonItenRightClickを使えばブロッククリック時じゃなくても使えたはずです。
onItenRightClickをオーバーライドすれば可能なはずです。
onItenRightClickの引数などは正しいですか?


正しいと思います


ItemMyCoatクラスを見せてください。


お早い返信ありがとうございます。
以下、クラスになります。
コード: 全て選択
package com.diavo.diavo.item;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;

public class ItemMyCoat extends Item {

   public ItemMyCoat(){

   this.setMaxStackSize(1);

   this.setCreativeTab(CreativeTabs.MISC);

   }
   
   @Override
   public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityPlayer) {
         if(!world.isRemote){

               entityPlayer.addChatMessage(new TextComponentString("Test de Test"));
             
               }
      return itemstack;
   }


}
アバター
kabutogani2014
ID:420cb715
大工さん
 
記事: 52
登録日時: 2014年7月27日(日) 15:30
お住まい: 一巡後の世界またはDreamsblock

  • (PostNo.290135)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ch1a » 2016年12月12日(月) 22:46

kabutogani2014 さんが書きました:
Ch1a さんが書きました:
kabutogani2014 さんが書きました:
Ch1a さんが書きました:確かに私のコードではブロッククリック時にしかできないですね。
仰るとおりonItenRightClickを使えばブロッククリック時じゃなくても使えたはずです。
onItenRightClickをオーバーライドすれば可能なはずです。
onItenRightClickの引数などは正しいですか?


正しいと思います


ItemMyCoatクラスを見せてください。


お早い返信ありがとうございます。
以下、クラスになります。
コード: 全て選択
package com.diavo.diavo.item;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;

public class ItemMyCoat extends Item {

   public ItemMyCoat(){

   this.setMaxStackSize(1);

   this.setCreativeTab(CreativeTabs.MISC);

   }
   
   @Override
   public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityPlayer) {
         if(!world.isRemote){

               entityPlayer.addChatMessage(new TextComponentString("Test de Test"));
             
               }
      return itemstack;
   }


}


やはりOverrideするメソッドの引数が違うようです。
以下動作確認したコードです。

コード: 全て選択
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;

public class ItemMyCoat extends Item {
   public ItemMyCoat() {
      this.setMaxStackSize(1);
      this.setCreativeTab(CreativeTabs.MISC);
   }

   @Override
   public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
      if (!world.isRemote) {
         player.addChatMessage(new TextComponentString("Test de Test"));
      }
      return new ActionResult(EnumActionResult.PASS, player.getHeldItem(hand));
   }
}


メソッドがよくわからないときはeclipseからバニラのコードをのぞいてみるとわかりやすいと思います。
ただ1.11のデコンパイルされたコードの引数はややこしいことになっていますのでご注意ください。
アバター
Ch1a
ID:444dffca
大工さん
 
記事: 54
登録日時: 2016年8月30日(火) 22:59

  • (PostNo.290164)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by s_sara » 2016年12月13日(火) 14:30

1.8移行でのテクスチャーの貼り方についてお尋ねします。

1.7.10ではうまくMODを作れましたが、1.10.2で躓いてしまっています。
jsonを使って貼るようなので色々と試してみましたが、うまくいかないので質問します。
以下、現在、作ってあるソースです。
どこか、間違えてある場所がありますでしょうか?ご指摘お願いします。

src/main/java/SampleBlock.Blocks/SampleMod.java
コード: 全て選択
package SampleBlock.Blocks;

import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;

@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)
public class SampleMod {
   /** ModID文字列 */
   public static final String MOD_ID = "SampleBlock";
   /** MOD名称 */
   public static final String MOD_NAME = "SampleMod";
   /** MODのバージョン */
   public static final String MOD_VERSION = "0.0.1";
   /** 前に読み込まれるべき前提MODをバージョン込みで指定 */
   public static final String MOD_DEPENDENCIES = "required-after:Forge@[1.10.2-12.18.3.2185,)";
   /** 起動出来るMinecraft本体のバージョン。記法はMavenのVersion Range Specificationを検索すること。 */
   public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.10.2]";
   /** 追加したいブロックのインスタンスを格納するための変数。レシピ等で利用。 */
   public static Block sampleBlock;

   @EventHandler
   public void preInit(FMLPreInitializationEvent event){
       sampleBlock = new SampleBlock();
       //ブロックの登録。登録文字列はMOD内で被らなければ何でも良い。
       ResourceLocation registryName = new ResourceLocation(MOD_ID, "sampleblock");
       ItemBlock sampleItemBlock = new ItemBlock(sampleBlock);

       GameRegistry.register(sampleBlock, registryName);
       GameRegistry.register(sampleItemBlock, registryName);

       //テクスチャ・モデル指定JSONファイル名の登録。
       //今回は基本的な説明に留めるため、BlockStateについては解説しない。
       //詳しくは1.8のブロック追加を見るように。
       if(event.getSide().isClient()){
          ModelLoader.setCustomModelResourceLocation(sampleItemBlock, 0, new ModelResourceLocation(registryName, "inventory"));
       }
   }
}


src/main/java/SampleBlock.Blocks/SampleBlock.java
コード: 全て選択
package SampleBlock.Blocks;

import java.util.List;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public class SampleBlock extends Block{
    //BlockState用Property変数。今回はmetadataと同じようなPropertyIntegerを用いる。
    public static final PropertyInteger METADATA = PropertyInteger.create("meta", 0, 1);

    public SampleBlock() {
       super(Material.ROCK);
       setCreativeTab(CreativeTabs.BUILDING_BLOCKS);/*クリエイティブタブの選択*/
       setUnlocalizedName("blockSample");/*システム名の設定*/
       /*以下のものは消しても結構です*/
       setHardness(1.5F);/*硬さ*/
       setResistance(1.0F);/*爆破耐性*/
       setSoundType(blockSoundType.STONE);
//       setStepSound(SoundType.STONE);/*ブロックの上を歩いた時の音*/
       /*setBlockUnbreakable();*//*ブロックを破壊不可に設定*/
       /*setTickRandomly(true);*//*ブロックのtick処理をランダムに。デフォルトfalse*/
       /*disableStats();*//*ブロックの統計情報を保存しない*/
       setLightOpacity(1);/*ブロックの透過係数。デフォルト0(不透過)*/
       setLightLevel(1.0F);/*明るさ 1.0F = 15*/
       /*this.setDefaultState(getBlockState().getBaseState());*//*初期BlockStateの設定*/
       //初期BlockStateの設定
//       this.setDefaultState(this.blockState.getBaseState().withProperty(METADATA, 0));
 }

    //ItemStackのmetadataからIBlockStateを生成。設置時に呼ばれる。
    @Override
    public IBlockState getStateFromMeta(int meta) {
        return this.getDefaultState().withProperty(METADATA, meta);
    }

    //IBlockStateからItemStackのmetadataを生成。ドロップ時とテクスチャ・モデル参照時に呼ばれる。
    @Override
    public int getMetaFromState(IBlockState state) {
        return (Integer)state.getValue(METADATA);
    }

    //初期BlockStateの生成。
    @Override
    protected BlockStateContainer createBlockState() {
        return new BlockStateContainer(this, METADATA);
    }

    //複数種類のブロックをクリエイティブタブに登録するためのメソッド
    @Override
    public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) {
        super.getSubBlocks(itemIn, tab, list);
        list.add(new ItemStack(itemIn, 1, 1));
    }
}


src/main/resources/assets.SampleBlock.blockstates/sampleblock.json
コード: 全て選択
{
    "variants": {
        "nomal":  { "model": "SampleBlock:sampleblock" },
    }
}


src/main/resources/assets.SampleBlock.models.block/sampleblock.json
コード: 全て選択
{
    "parent": "block/cube_all",
    "textures": {
        "all": "SampleBlock:blocks/sampleblock"
    }
}


src/main/resources/assets.SampleBlock.models.item/sampleblock.json
コード: 全て選択
{
    "parent": "SampleBlock:block/sampleblock",
    "display": {
        "thirdperson": {
            "rotation": [ 10, -45, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        }
    }
}


src/main/resources/assets.SampleBlock.textures.blocks/sampleblock.png
まだまだ、MODを作り始めた初心者Modder
わからないことはネットで検索!で頑張っていますが、わからないことがあったら質問しに来ます!
アバター
s_sara
ID:ae5e40f4
水から上がったとこ
 
記事: 8
登録日時: 2016年6月23日(木) 17:26

  • (PostNo.290172)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kabutogani2014 » 2016年12月13日(火) 16:41

Ch1a さんが書きました:やはりOverrideするメソッドの引数が違うようです。
以下動作確認したコードです。

コード: 全て選択
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;

public class ItemMyCoat extends Item {
   public ItemMyCoat() {
      this.setMaxStackSize(1);
      this.setCreativeTab(CreativeTabs.MISC);
   }

   @Override
   public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
      if (!world.isRemote) {
         player.addChatMessage(new TextComponentString("Test de Test"));
      }
      return new ActionResult(EnumActionResult.PASS, player.getHeldItem(hand));
   }
}


メソッドがよくわからないときはeclipseからバニラのコードをのぞいてみるとわかりやすいと思います。
ただ1.11のデコンパイルされたコードの引数はややこしいことになっていますのでご注意ください。


詳しい回答、及び助言ありがとうございました。
アバター
kabutogani2014
ID:420cb715
大工さん
 
記事: 52
登録日時: 2014年7月27日(日) 15:30
お住まい: 一巡後の世界またはDreamsblock

  • (PostNo.290186)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by defeatedcrow » 2016年12月13日(火) 19:50

Twilight さんが書きました:


1.11環境はどんなもんか知らないので、とりあえず1.10.2ベースで書きますが
(見た感じ1.10.2でのソースからそんなに変わってないようにみえるので)

気になったところをいくつか

・EntityFallingBlockクラスのgetBlock()メソッド
これ、@Nullableですよね
コード: 全て選択
    @Nullable
    public IBlockState getBlock()
    {
        return this.fallTile;
    }

fallTileは中身がnullであることも想定される、nullを入れられるものとして作られているもんで
あなたが作成なさった描画クラスでNullPointerExceptionが発生しているっていうのは、そのバニラ側の設計に対応できていないということになります
まずは描画側を、fallTileがnullでもクラッシュせずに動くような仕組みに改良するのが良いと思います (nullだったらなにも描画しないような分岐をつけるとか)

・同期のこと
Entityは(TileEntityもそうなんですが)クライアントに情報が渡ってくるのに時間がかかります
私の環境だとだいたい5Tickくらいラグがあるのですが、お使いの環境によっても変動すると思います。いずれにしても、即時ということはほとんどないです
ですので、サーバーでEntityをスポーンさせた直後など、クライアント側のEntityのパラメータにはしばらく空白があることを考慮しておくと良いです
(前述の、nullを入れても動くような仕組みにするべき、という話は、これにも関係があります)
それでも、いつまで待ってもnullのままのようなら、同期処理自体が動いていないということになるので、なぜ同期されないのかの原因調査が必要になります。

・パケットのこと
サーバーの情報をクライアントに同期させる処理はコンストラクタではないです。生成後、バニラの要素の場合は、バニラのパケット処理に乗せてクライアント側に送信されています。
(EntityTrackerEntryクラスの、createSpawnPacket()メソッドあたりでやってるぽい)
ここに乗せられないもの、たとえば自作クラスに自身で増やしたパラメータなどは当然同期はしてくれないので (バニラ自身は、Modderによっていじられるような想定では作られていないので仕方ないですね) 、バニラのクラスの継承で作るのであれば、バニラのクラスにあるものが利用できるならそちらをつかって、どうしても利用できないものは飛ばす機会を自分で作ってやる必要があります。
パケットはあんまり高頻度でたくさん飛ばすと露骨に動作が重くなったりするので、描画に必要な最小限のパラメータだけカスタムパケットなり、DataParameterを変更したりしてクライアントに伝えるのがいいんじゃないかと思います。


で、今回の場合なんですが…
EntityFallingBlockを何故かまるっとコピペされたようですが、EntityFallingBlockにあるフィールド類をあなたの自作クラス内で宣言し直す必要がないんじゃないかなぁ、多分

EntityFallingBlockにあるfallTileはたしかにprivateなんですが、ゲッターが用意されているので宣言し直す意味は無いはずです
むしろ、余計な上書きをしてしまうと、バニラクラスのフィールド(バニラ側で面倒を見ている)を、あなたの作ったフィールド(バニラが面倒を見ないので自力でパケットを投げないと更新されない)で上書きして、そのために中身がnullになってるんじゃないかなぁと言う気がします
全体的に、コピペ故に継承元のEntityFallingBlockのsuperを呼んでないようで、ぱっと見ではうまく動かなそうだなぁという感じですね…

継承もとのEntityに動作を付け加えたいのであればsuperで元の処理も適切に呼ぶことと、元のままの処理で良い部分は不必要に上書きしないこと
今回のクラッシュの場合は、EntityFallingBlock.getBlock()の上書きをやめて、あなたの自作クラス内でfallTileが必要な部分はgetBlock()に置き換えることで回避できるんじゃないかなぁと思います
(この場合のも先述のnll対策は別途必要です)

おそらく同じような要領で修正する箇所がまだまだあるとは思いますので、上記だけの修正で動くかはなんとも言えないです
カラスの敗残兵です。AppleMilkTea他、少々のMODを作成しています。
トピック: AppleMilkTea(~1.7.10) / HeatAndClimate(1.10.2)
作者Wiki / github / twitter
アバター
defeatedcrow
ID:0070553b
ラピスラズリ収集家
 
記事: 1073
登録日時: 2014年1月08日(水) 13:48
お住まい: 北関東

  • (PostNo.290198)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by shu_hrg » 2016年12月13日(火) 21:45

最近modのコンパイル時に(forgeのとこでコマンドプロンプトを開きgradle buildと打つやつ)20%ぐらいでbuild failed ?みたいなのが出てbuildに失敗します。エクリプスネオン MCのverは1.7.10です。どうすれば良いですか?説明不足あれば指摘して下さい。
いずれmod投稿するかも
アバター
shu_hrg
ID:481609f4
水から上がったとこ
 
記事: 7
登録日時: 2016年10月22日(土) 16:52

  • (PostNo.290199)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ch1a » 2016年12月13日(火) 21:49

shu_hrg さんが書きました:最近modのコンパイル時に(forgeのとこでコマンドプロンプトを開きgradle buildと打つやつ)20%ぐらいでbuild failed ?みたいなのが出てbuildに失敗します。エクリプスネオン MCのverは1.7.10です。どうすれば良いですか?説明不足あれば指摘して下さい。


どのようなエラーが出るのでしょうか
ログを見せてください。
アバター
Ch1a
ID:14cf4765
大工さん
 
記事: 54
登録日時: 2016年8月30日(火) 22:59

  • (PostNo.290210)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ch1a » 2016年12月14日(水) 00:00

s_sara さんが書きました:1.8移行でのテクスチャーの貼り方についてお尋ねします。


おそらくですがblockstates/sampleblock.jsonの内容を
コード: 全て選択
{
  "forge_marker": 1,
  "defaults": {
    "model": "cube_all",
    "textures": {
      "all": "SampleBlock:block/sampleblock"
    },
    "transform": "forge:default-block"
  },
  "variants": {
    "normal":[{}],
    "inventory":[{}]
  }
}


に変えるとできると思います。

また
src/main/resources/assets.SampleBlock.textures.blocks/sampleblock.png
ではなく
src/main/resources/assets/SampleBlock/textures/blocks/sampleblock.png
ですね。
ほかのmodelsなども同様です。

ディレクトリ構造等ややこしいと思いますので、参考までにこちらもどうぞ。
https://github.com/Ch1a/BlockTest
アバター
Ch1a
ID:444dffca
大工さん
 
記事: 54
登録日時: 2016年8月30日(火) 22:59

  • (PostNo.290260)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by shu_hrg » 2016年12月14日(水) 19:15

すみません。再起動したら直りました。
C:\forge>gradle build
:compileApiJava UP-TO-DATE
:processApiResources UP-TO-DATE
:apiClasses UP-TO-DATE
:sourceMainJava UP-TO-DATE
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:extractMcpData UP-TO-DATE
:getVersionJson
:extractUserDev
:genSrgs SKIPPED
:reobf
:assemble
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 33.182 secs
C:\forge>
いずれmod投稿するかも
アバター
shu_hrg
ID:481609f4
水から上がったとこ
 
記事: 7
登録日時: 2016年10月22日(土) 16:52

  • (PostNo.290530)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Twilight » 2016年12月18日(日) 00:45

defeatedcrow さんが書きました:
Twilight さんが書きました:



返信大変遅くなりました。

継承もとのEntityに動作を付け加えたいのであればsuperで元の処理も適切に呼ぶことと、元のままの処理で良い部分は不必要に上書きしないこと
今回のクラッシュの場合は、EntityFallingBlock.getBlock()の上書きをやめて、あなたの自作クラス内でfallTileが必要な部分はgetBlock()に置き換えることで回避できるんじゃないかなぁと思います


なるほど… 言われれば当然ですが「まずは適当にコピーして」がそもそもよくないって話ですね…
強引な方法で解決した際はfallTileに適切な情報が格納されている限り動作するようでしたので、この方法で解決すると思われます
一度読み直して、改めて正しいコードに書き直してみます

・同期の事
・パケットの事

非常に丁寧な解説ありがとうございます
EntityTrackerEntry…確かにエラーに含まれてますね…
既存パラメータでなぜ特殊な動作をするのかが理解できたので腑に落ちました
自作パケットを含め勉強し直してみます、解決の糸口が見えてきました

ひとつひとつのアドバイスを熟読させて頂きました
これを参考に、MOD作成の知識を深めていきたいと思います
アバター
Twilight
ID:631e3699
木を殴ってる
 
記事: 32
登録日時: 2011年9月16日(金) 03:33
お住まい: 茨城県

  • (PostNo.290791)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by anatawa12 » 2016年12月20日(火) 15:57

forge-1.7.10-10.13.4.1558でmoddingをしています
ItemStackから対応するBlockを取得したいです。
方法をお願いします
korisan112主催の実況鯖の鯖主になる予定
東方好き(にわかにはいる様な)
東方スキンで活動中
anatawa12
ID:914f6516
木を殴ってる
 
記事: 25
登録日時: 2016年8月06日(土) 12:40

  • (PostNo.290792)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by C6H2Cl2 » 2016年12月20日(火) 16:19

anatawa12 さんが書きました:forge-1.7.10-10.13.4.1558でmoddingをしています
ItemStackから対応するBlockを取得したいです。
方法をお願いします


ItemStack.getItem()で取得できるItemを、ItemBlockにキャストして、そこからBlockを取得できるはずです
CurseForgeという海外サイトで、modをいくつか公開しています。
祝・ReinforcedTools10万DL突破!
連絡や、更新予定の確認などは、Twitter@PDB_Yukariへ。
Twitterなんかではパラジって名前でやってます。
結月ゆかりはいいぞ
最近、Kotlinという言語にハマってる。
アバター
C6H2Cl2
ID:fbe072a0
石掘り
 
記事: 128
登録日時: 2015年9月03日(木) 11:23
お住まい: 鹿県鹿市付近

1つ前へ次へ

Return to 質問:開発・制作関連

x