Краш майна.В чем проблема?

156
0
Вот собственно текст ошибки:
Код:
---- Minecraft Crash Report ----
// Everything's going to plan. No, really, that was supposed to happen.

Time: 14.06.15 21:56
Description: Ticking player

java.lang.NoSuchFieldError: posX
 at mm_modules.mm_Altitude.updatePlayer(mm_Altitude.java:54)
 at com.adgdev.modularMusic.loader.MainLoader.updatePlayer(MainLoader.java:95)
 at com.adgdev.modularMusic.MM.tickPlayer(MM.java:157)
 at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_MM_tickPlayer_PlayerTickEvent.invoke(.dynamic)
 at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
 at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
 at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
 at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:220)
 at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:295)
 at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:303)
 at net.minecraft.network.play.client.C03PacketPlayer.func_148833_a(SourceFile:137)
 at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.func_148833_a(SourceFile:20)
 at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
 at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
 at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
 at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
 at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
 at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)


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

-- Head --
Stacktrace:
 at mm_modules.mm_Altitude.updatePlayer(mm_Altitude.java:54)
 at com.adgdev.modularMusic.loader.MainLoader.updatePlayer(MainLoader.java:95)
 at com.adgdev.modularMusic.MM.tickPlayer(MM.java:157)
 at cpw.mods.fml.common.eventhandler.ASMEventHandler_7_MM_tickPlayer_PlayerTickEvent.invoke(.dynamic)
 at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
 at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
 at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:345)
 at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:220)

-- Player being ticked --
Details:
 Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
 Entity ID: 0
 Entity Name: Faik
 Entity's Exact location: -364,50, 4,00, -536,50
 Entity's Block location: World: (-365,4,-537), Chunk: (at 3,0,7 in -23,-34; contains blocks -368,0,-544 to -353,255,-529), Region: (-1,-2; contains chunks -32,-64 to -1,-33, blocks -512,0,-1024 to -1,255,-513)
 Entity's Momentum: 0,00, 0,00, 0,00
Stacktrace:
 at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:295)
 at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:303)
 at net.minecraft.network.play.client.C03PacketPlayer.func_148833_a(SourceFile:137)
 at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.func_148833_a(SourceFile:20)
 at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)

-- Ticking connection --
Details:
 Connection: net.minecraft.network.NetworkManager@1e61b6cf
Stacktrace:
 at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
 at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
 at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
 at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
 at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)

-- System Details --
Details:
 Minecraft Version: 1.7.10
 Operating System: Windows 7 (amd64) version 6.1
 Java Version: 1.8.0_45, Oracle Corporation
 Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
 Memory: 108596568 bytes (103 MB) / 299089920 bytes (285 MB) up to 1060372480 bytes (1011 MB)
 JVM Flags: 5 total; -Xmx1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
 AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
 IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
 FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291 Optifine OptiFine_1.7.10_HD_U_B6 4 mods loaded, 4 mods active
 mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
 FML{7.10.85.1291} [Forge Mod Loader] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
 Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
 modularmusic{1.0a} [Modular Music!] (ModularMusic-1.7.10-1.0a.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
 Profiler Position: N/A (disabled)
 Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
 Player Count: 1 / 8; [EntityPlayerMP['Faik'/0, l='New World', x=-364,50, y=4,00, z=-536,50]]
 Type: Integrated Server (map_client.txt)
 Is Modded: Definitely; Client brand changed to 'fml,forge'
 
Faik-man написал(а):
Код:
java.lang.NoSuchFieldError: posX
Пытается связаться с полем (возможно с переменной) "posX" которого он не видит или не существует.
 
timaxa007 написал(а):
Faik-man написал(а):
Код:
java.lang.NoSuchFieldError: posX
Пытается связаться с полем (возможно с переменной) "posX" которого он не видит или не существует.
Что значит не существует? эта переменная в самом форге находится и я всего лишь взял ее и присвоил нужной переменной. короче, проблему возможно решить?
 
Faik-man написал(а):
Код:
at mm_modules.mm_Altitude.updatePlayer(mm_Altitude.java:54)
В классе mm_Altitude на 54 строке что-то связанное с ошибкой.
[merge_posts_bbcode]Добавлено: 14.06.2015 23:43:43[/merge_posts_bbcode]

Faik-man написал(а):
проблему возможно решить?
Возможно, да.
 
Вот эта функция, в которой была ошибка, но легче от этого не становится, т.к. я не вижу здесь ничего напоминающее ошибку.
public void updatePlayer(TickEvent.PlayerTickEvent event)
{
this.player = event.player;
    
this.playerX = ((int)this.player.posX);
this.playerY = ((int)this.player.posY);
this.playerZ = ((int)this.player.posZ);
if ((this.playerY > Common.maxDepth) && (this.playerY < Common.minDepth))
{
if (MM.prev == 0)
{
MMMusicTicker.updateMusicType(MMMusicType.get(1));
MMApi.ticker.update();

MM.prev = 1;
}
}
else if ((this.playerY > Common.minDepth) || (this.playerY < Common.maxDepth))
{
if (MM.prev == 1)
{
Minecraft.getMinecraft().getSoundHandler().stopSounds();

MM.prev = 0;
}
}
}
 
Ну есть предположение, возможно игрок равен нулевому значению и "posX" (и не только на это поле будет жаловаться) не чем не заполнено. Нужно будет проверить игрока на null.
А так-же возможно понадобиться эти условия:
Код:
if (event.phase == TickEvent.Phase.START && event.side == Side.CLIENT) {
Так как этот эвант срабатывает с главного меню игры (вроде у меня так срабатывала).
[merge_posts_bbcode]Добавлено: 15.06.2015 00:00:42[/merge_posts_bbcode]

В остальном трудно предположить из-за связей с переменами (или константами) из других классов и не полного кода.
 
timaxa007 написал(а):
Ну есть предположение, возможно игрок равен нулевому значению и "posX" (и не только на это поле будет жаловаться) не чем не заполнено. Нужно будет проверить игрока на null.
А так-же возможно понадобиться эти условия:
Код:
if (event.phase == TickEvent.Phase.START && event.side == Side.CLIENT) {
Так как этот эвант срабатывает с главного меню игры (вроде у меня так срабатывала).
[merge_posts_bbcode]Добавлено: 15.06.2015 00:00:42[/merge_posts_bbcode]

В остальном трудно предположить из-за связей с переменами (или константами) из других классов и не полного кода.
Можно списаться в лс, а то я уже заколебался с этим кодом?
 
Возможно, правильнее:
Можно списаться в лс? А то я уже заколебался с этим кодом.
То тогда - да, можно.
 
Faik-man написал(а):
Что значит не существует? эта переменная в самом форге находится
Много магии ещё увидишь.
А где гарантия, что код не обфусцирован? Ты хоть знаешь, да или нет? Если обфусцирован, то всё максимум логично.
 
timaxa007 написал(а):
Ну есть предположение, возможно игрок равен нулевому значению и "posX" (и не только на это поле будет жаловаться) не чем не заполнено. Нужно будет проверить игрока на null.
А так-же возможно понадобиться эти условия:
Код:
if (event.phase == TickEvent.Phase.START && event.side == Side.CLIENT) {
Так как этот эвант срабатывает с главного меню игры (вроде у меня так срабатывала).
[merge_posts_bbcode]Добавлено: 15.06.2015 00:00:42[/merge_posts_bbcode]

В остальном трудно предположить из-за связей с переменами (или константами) из других классов и не полного кода.
Если что-то там равно Null, то вылезло бы NPE. А NoSuchFieldError - это проблема кривой сборки. Например, поставил необфусцированный мод на обфусцированный майн.
 
Oldestkon написал(а):
Faik-man написал(а):
Что значит не существует? эта переменная в самом форге находится
Много магии ещё увидишь.
А где гарантия, что код не обфусцирован? Ты хоть знаешь, да или нет? Если обфусцирован, то всё максимум логично.
Гарантия? Ну если MCP и BON не являются гарантией, то я не знаю чем еще можно обфусцировать.
 
Че?
Глуми выше пояснил мою мысль лучше.
Если ты пытаешься достать переменную с названием posX из ОБФУСЦИРОВАННОГО кода, то это только твои проблемы, то что он не находит переменную в таком случае - логично, было бы нелогично обратное.
Ищи обфусцированное имя этой же переменной, чтобы использовать вне среды разработки.
 
Oldestkon написал(а):
Че?
Глуми выше пояснил мою мысль лучше.
Если ты пытаешься достать переменную с названием posX из ОБФУСЦИРОВАННОГО кода, то это только твои проблемы, то что он не находит переменную в таком случае - логично, было бы нелогично обратное.
Ищи обфусцированное имя этой же переменной, чтобы использовать вне среды разработки.
Вам продемонстрировать исходный код?
 
Зачем нам твой исходный код? Проблема не в нём. Скорее всего, ты криво собираешь мод.
 
Скобочки.
Складывается впечатление, что мы немного не понимаем друг друга.
Ну давай разберем по частям, тобою написанное.
пасту эту знаешь?
1. Вот ты весь такой сделал мод, радуешься, в эклипсе всё работает. Рефлексией меняешь переменную posX, так?
2. Собираешь мод, ставишь на клиент, и всё ломается.
Если всё так, как выше, дело в том, что при написании мода ты работаешь с деобфусцированным исходным кодом кубача (не твоим, а именно кубача, здесь важно именно это!). Т.е. рефлексией меняешь переменную posX - меняется posX.
Когда собираешь мод, ты ставишь его на другой клиент. Но! Обычно у клиента код обфусцирован! Т.е. твоя переменная posX становится какой_нибудь 'a', или 'vws' или 'lox' (не лично в твою сторону намёк).
Что надо сделать - найти утилиту MCPMappingViewer и посмотреть обфусцированное имя нужной переменной.
Либо шатать байткод.
Вообще я мог сморозить фигню, но если что меня поправит глуми, надеюсь ;p
 
Oldestkon написал(а):
Скобочки.
Складывается впечатление, что мы немного не понимаем друг друга.
Ну давай разберем по частям, тобою написанное.
пасту эту знаешь?
1. Вот ты весь такой сделал мод, радуешься, в эклипсе всё работает. Рефлексией меняешь переменную posX, так?
2. Собираешь мод, ставишь на клиент, и всё ломается.
Если всё так, как выше, дело в том, что при написании мода ты работаешь с деобфусцированным исходным кодом кубача (не твоим, а именно кубача, здесь важно именно это!). Т.е. рефлексией меняешь переменную posX - меняется posX.
Когда собираешь мод, ты ставишь его на другой клиент. Но! Обычно у клиента код обфусцирован! Т.е. твоя переменная posX становится какой_нибудь 'a', или 'vws' или 'lox' (не лично в твою сторону намёк).
Что надо сделать - найти утилиту MCPMappingViewer и посмотреть обфусцированное имя нужной переменной.
Либо шатать байткод.
Вообще я мог сморозить фигню, но если что меня поправит глуми, надеюсь ;p
Ну вообще, если честно, я не создавал мод. Я нашел мне нужный мод с модулем и мне нужно было понять его исходный код. а вот по поводу разбора проблемы - надо попробовать так, как вы сказали
 
Назад
Сверху