Access Transformers Crash

Версия Minecraft
1.8.9
API
Forge
29
1
2
1613742491250.png
1613742503516.png
 
Краш-лог
java.lang.IllegalAccessError: tried to access field net.minecraft.client.gui.inventory.GuiChest.field_147015_w from class com.nekiplay.megacraft.clickerimprove.Event
at com.nekiplay.megacraft.clickerimprove.Event.handler(Event.java:25)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_12_Event_handler_ClientTickEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:49)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140)
at net.minecraftforge.fml.common.FMLCommonHandler.onPreClientTick(FMLCommonHandler.java:331)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1624)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1024)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:349)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Краш-лог:
java.lang.IllegalAccessError: tried to access field net.minecraft.client.gui.inventory.GuiChest.field_147015_w from class com.nekiplay.megacraft.clickerimprove.Event
	at com.nekiplay.megacraft.clickerimprove.Event.handler(Event.java:25)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_12_Event_handler_ClientTickEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:49)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140)
	at net.minecraftforge.fml.common.FMLCommonHandler.onPreClientTick(FMLCommonHandler.java:331)
	at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1624)
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1024)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:349)
	at net.minecraft.client.main.Main.main(SourceFile:124)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Решение
Строку в манифесте можно сгенерировать через gradle, например, добавить это в билд-скрипт(куда-нить после apply plugin: 'forge':
Gradle (Groovy):
apply plugin: 'java'

jar {
    manifest {
        attributes 'FMLAT': 'mymodid_at.cfg'
    }
}

will0376

Токсичная личность
2,068
55
581
1. на кой хрен ты клинишь? это не имеет смысла.
2. пробел в пути папки - уже должно смущать
3. про АТ бы почитал хотяб...
4. раз ты в идее - нафига используешь консоль? используй таски градла в идее.(з.ы. правая панель. тебе достаточно SDW сделать...)
 
29
1
2
Java:
public class Event {
    private GuiContainer lastInventory;
    @SubscribeEvent
    public void handler(TickEvent.ClientTickEvent event) {
        Minecraft mc = Minecraft.getMinecraft();
        if (mc != null) {
            GuiScreen current = mc.currentScreen;
            if (current != null) {
                if (current != lastInventory) {
                    if (current instanceof GuiChest) {
                        GuiChest chest = (GuiChest) current;
                        if (chest != null) {
                            if (chest.lowerChestInventory != null) {
                                if (chest.lowerChestInventory.getDisplayName().getUnformattedText().equals("§r§lКликай и получай МегаКоины!")) {
                                    ItemStack flower = chest.inventorySlots.getInventory().get(4);
                                    if (flower != null && flower.getItem() == Item.getItemById(175)) {
                                        mc.playerController.windowClick(chest.inventorySlots.windowId, 4, 0, 0, mc.thePlayer);
                                        chest.lowerChestInventory.closeInventory(mc.thePlayer);
                                    }
                                }
                            }
                        }
                    }
                    lastInventory = current instanceof GuiContainer ? (GuiContainer) current : null;
                }
            }
        }
    }
}
 

will0376

Токсичная личность
2,068
55
581
Причем тут пробел мы не на линуксе же
а при том, что пробел в названии - кастрируют сразу же.
setupDecompWorkspace на 1.8.9 требует 2028
Ну хрен его знает. у меня то всё нормально собиралось. АТ+миксины работают нормально
первая же ссылка в гугле на стакОверПлов - запрос "gradle xmx"
 

ReyMagos

Тег-бомбастер
412
7
121
4. setupDecompWorkspace на 1.8.9 требует 2028 памяти джавы которую я хз как выделить через боковую панель
Нажми в идее Ctrl+Shift+A и там набери Edit custom VM options. Там и делай, что тебе вздумается.
 

ReyMagos

Тег-бомбастер
412
7
121
И вообще, почему ты используешь AT с 1.12.2 на версии 1.8.9?
Они же не работают там скорее всего.

Используй хук-либу. Так надёжнее
 

will0376

Токсичная личность
2,068
55
581
И вообще, почему ты используешь AT с 1.12.2 на версии 1.8.9?
Они же не работают там скорее всего.
хрень не городи. АТ есть и на 1.4.7 если что
Используй хук-либу. Так надёжнее
серьёзно? тянуть за собой еще и либу, когда есть АТ? ты щас серьёзно?
 

will0376

Токсичная личность
2,068
55
581
Но между полем и классом не точку, а пробел
net.minecraft.client.gui.inventory.GuiChest field_147015_w
ты забыл аргументы к полю.
тьфу ты. Поле же.
Ставь звездочку, не парься. Если это фордж поле - то тут только миксин вытянет
 

ReyMagos

Тег-бомбастер
412
7
121
АТ есть и на 1.4.7 если что
Говорю, что вижу. Туториал был для 1.12)
тянуть за собой еще и либу, когда есть АТ?
Она совсем не тяжёлая. И ещё компилится не во время рантайма. И маппинги автоматические. И вообще возможностей больше.
 

will0376

Токсичная личность
2,068
55
581
Туториал был для 1.12)
и что?
Она совсем не тяжёлая. И ещё компилится не во время рантайма.
И что? х2
ты же не таскаешь/л в шакалку сразу все учебники ежедневно? ну так и зачем за собой либу таскать, когда можно сделать проще и без костылей.
 
Сверху