Verclene / LittleMaidMobNX

Little & cute maids for Minecraft
http://el-blacklab.net/
22 stars 7 forks source link

mods\バージョンフォルダ導入時の問題 #30

Closed Modchu closed 8 years ago

Modchu commented 8 years ago

modsフォルダに導入した場合は問題ないのですが、 mods\1.8.8 等のバージョン別フォルダに導入した際に テクスチャの読み込みに失敗していると思われるぬるぽ落ちでメイドのスポーンが失敗するようです。 mods\バージョン別フォルダはforgeの読み込みサポートされている場所です。 対応の検討をお願いします。

導入MOD(他は一切無し) forge-1.8.8-11.15.0.1655 LittleMaidMobNX-NX4B109-1.8.x.jar EBLib-EL3B9-1.8.x.jar

以下 エラーログ(クラッシュ落ちはしないのでエラー部分だけ抽出、 以下はスポーンエッグ使用時のものですが、通常スポーン時も同じエラーで落ちます)

[14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at littleMaidMobX.LMM_EntityLittleMaid.setTexturePackName(LMM_EntityLittleMaid.java:3964) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at littleMaidMobX.LMM_EntityLittleMaid.(LMM_EntityLittleMaid.java:312) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at littleMaidMobX.LMM_ItemSpawnEgg.spawnMaid(LMM_ItemSpawnEgg.java:71) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at littleMaidMobX.LMM_ItemSpawnEgg.func_180614_a(LMM_ItemSpawnEgg.java:49) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:718) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.item.ItemStack.func_179546_a(ItemStack.java:129) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.server.management.ItemInWorldManager.func_180236_a(ItemInWorldManager.java:439) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:588) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:59) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:10) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at java.util.concurrent.FutureTask.run(Unknown Source) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.util.Util.func_181617_a(SourceFile:44) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:660) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:152) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481) [14:23:29] [Server thread/INFO] [STDERR]: [littleMaidMobX.LMM_ItemSpawnEgg:spawnMaid:78]: at java.lang.Thread.run(Unknown Source)

Modchu commented 8 years ago

私はjavaは素人ですのでちょっと見ただけでは判断出来ないのですが modsにあるサブフォルダを走査して全部読み込むとかはしていませんよね? 別のバージョンフォルダ名のサブフォルダは読み込んでしまうとバージョン別の意味合いが無くなっていまいますので。

Verclene commented 8 years ago

走査自体はmods下全部走らせています.理由は正直言って面倒くさいの一言に尽きます.モデル以外のロードはそのうち手法を考えますがモデルロードはおそらくこれ以上手は加えないです.基本的に自分はGame Directoryを分けているので,そうでない場合のサポートというのはどういう状況に対してどのようなサポートを行うべきかという点を考えだすと骨が折れます. こう言うのは対処が面倒くさい実装にしてしまっているのが一つの原因ではあるのですが. 2015/12/30 午後11:29 "Modchu" notifications@github.com:

私はjavaは素人ですのでちょっと見ただけでは判断出来ないのですが modsにあるサブフォルダを走査して全部読み込むとかはしていませんよね? 別のバージョンフォルダ名のサブフォルダは読み込んでしまうとバージョン別の意味合いが無くなっていまいますので。

— Reply to this email directly or view it on GitHub https://github.com/Verclene/LittleMaidMobNX/issues/30#issuecomment-168011208 .

Modchu commented 8 years ago

うちのPFLMでは net.minecraftforge.common.ForgeVersion にあるforgeのバージョンからminecraftのバージョンを判断してバージョンのString"1.8"等を出し、 mods\バージョン フォルダがあればそこを読みに行くとなっております。 もっと楽に取得できる場所があれば良いのですが、あ、1.8以上でしたら String mcVersion = net.minecraft.client.Minecraft.getSessionInfo().get("X-Minecraft-Version"); で行けるかもです。 あと余談ですが、私はこのサイト使ってMODのコード上げてたりしておりますが、 まったく使い方がわかっておりませんのでpushとかマージやら使ってコードを出すとかは出来ませんので ここに直接書くとかになりますね。

Verclene commented 8 years ago

(問題とは直接関係ありませんが少なくとも1.8では)MinecraftForge.MC_VERSIONで行けると思います.(いけました)

Verclene commented 8 years ago

モデルロード以外については以下のように調整してみました.日本語での説明が難しい.

これがForge由来の挙動に準じているかどうかは検証していません. 解凍されたMODに対しては挙動が怪しくなると思います.面倒くさいというのは主にこれとClassLoader周りが原因だったりします.

Verclene commented 8 years ago

MCバージョンの直接取得にMC_VERSIONが使えなくなっていた(1.8.9 Forge#1722)ので再修正.