defeatedcrow / HeatAndClimateMod

The Mod for Minecraft 1.9.4+
54 stars 18 forks source link

HaCブロックにLevel.DestroyBlockを実行するとサーバーがクラッシュする #277

Closed RedRayz closed 1 year ago

RedRayz commented 1 year ago

一部のHaCで追加されたブロックに対してLevel.DestroyBlockをアイテムドロップする設定(第二引数にtrue)で実行するとエラーでサーバーがクラッシュします。

MOD構成: Forge 43.2.11 HeatAndClimate-1.19.2-v4-alpha5 自作mod

スタックトレースは以下の通りです。

java.lang.IllegalArgumentException: No parameter <parameter minecraft:this_entity>

TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.storage.loot.LootContext$Builder.m_78970_(LootContext.java:211)
TRANSFORMER/dcs_climate@4.0.0/defeatedcrow.hac.core.material.block.BlockDC.m_7381_(BlockDC.java:30)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_60724_(BlockBehaviour.java:710)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.block.Block.m_49874_(Block.java:262)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.block.Block.m_49881_(Block.java:296)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.Level.m_7740_(Level.java:288)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.LevelWriter.m_46953_(LevelWriter.java:27)
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.level.LevelWriter.m_46961_(LevelWriter.java:22)
TRANSFORMER/orecraft@1.32/com.redrayz.orecraft.item.tool.ToolStoneMiner.m_6813_(ToolStoneMiner.java:40)※DestroyBlock(ブロック座標, true)の呼び出し
TRANSFORMER/minecraft@1.19.2/net.minecraft.world.item.ItemStack.m_41686_(ItemStack.java:400)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.level.ServerPlayerGameMode.m_9280_(ServerPlayerGameMode.java:250)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.level.ServerPlayerGameMode.m_215116_(ServerPlayerGameMode.java:218)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.level.ServerPlayerGameMode.m_214168_(ServerPlayerGameMode.java:188)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.network.ServerGamePacketListenerImpl.m_7502_(ServerGamePacketListenerImpl.java:1024)
TRANSFORMER/minecraft@1.19.2/net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.m_5797_(ServerboundPlayerActionPacket.java:42)
TRANSFORMER/minecraft@1.19.2/net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.m_5797_(ServerboundPlayerActionPacket.java:8)
TRANSFORMER/minecraft@1.19.2/net.minecraft.network.protocol.PacketUtils.m_131356_(PacketUtils.java:22)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.TickTask.run(TickTask.java:18)
TRANSFORMER/minecraft@1.19.2/net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:157)
TRANSFORMER/minecraft@1.19.2/net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:763)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:157)
TRANSFORMER/minecraft@1.19.2/net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:131)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_129961_(MinecraftServer.java:746)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_7245_(MinecraftServer.java:740)
TRANSFORMER/minecraft@1.19.2/net.minecraft.util.thread.BlockableEventLoop.m_18701_(BlockableEventLoop.java:140)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_130012_(MinecraftServer.java:726)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:658)
TRANSFORMER/minecraft@1.19.2/net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244)
java.base/java.lang.Thread.run(Thread.java:833)
defeatedcrow commented 1 year ago

ご報告ありがとうございます。

builder.getParameter(LootContextParams.THIS_ENTITY);

で、Paramが空だった場合に即例外を吐くバニラのコードには釈然としないものはありますが、まぁモヤンなので仕方ないですね…… 該当箇所はとりあえず修正しておきました。次回更新時に反映されていると思います。

defeatedcrow commented 1 year ago

Fixed at e6d8360