Giter Site home page Giter Site logo

falsepattern / gasstation Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 1.0 235 KB

Mixin 0.8 library for 1.7.10 that works in place of other loaders too.

Home Page: https://falsepattern.com/mc

License: Other

Java 100.00%
java library minecraft minecraft-forge minecraft-forge-mod minecraft-mod mixin mixins mod spongepowered-mixin

gasstation's People

Contributors

falsepattern avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

makamys

gasstation's Issues

ILateMixinLoader not working

ILateMixinLoader is not called because in 1.7.10 ASMDataTable does not collect interface implementations: https://github.com/FalsePattern/GasStation/blob/master/src/main/java/com/falsepattern/gasstation/mixins/mixin/LoadControllerMixin.java#L41.
When I ported the mixinbooter from 1.12.2, I didn't pay attention to it.
I have an idea how to fix this: we need to create an marker annotation that we will add to our ILateMixinLoader implementation class.
If you have a better idea, go ahead and implement it in your mod, and I'll do it in a mixinbooterlegacy.
Thank you.

Everything breaks when switching from Spongemixins 1.4.0 to Gas Station

After swapping to gas station, I can't launch my game, but obviously I want to use falsetweaks and the updated versions of other mods like archaicfix. I've tried gas station 0.4 and 0.3.5(because I saw makamys using it) here's the log while using 0.3.5:
latest.log
and here's the log using 0.4
latest.log
notably, here you can see it's having a problem with @makamys satchels mod too?
between these i disabled the snowball fix from foamfix error the first log seemed to be having trouble with

Non-static inner classes in mixins cause crash due to incorrect ASM shading

Example:

package org.embeddedt.archaicfix.mixins.client.core;

import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;

@Mixin(Minecraft.class)
public abstract class MixinMinecraft {

    @Redirect(method = "runGameLoop", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/Display;isActive()Z", remap = false))
    private boolean alwaysHaveDisplayActive() {
        new TestInnerClass().test();
        return true;
    }
    
    private class TestInnerClass {
        public void test() {
            System.out.println("hi");
        }
    }
}

This works with SpongeMixins 1.2.0, but with GasStation it crashes with the following exception:

Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.commons.Remapper.mapInnerClassName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
	at org.spongepowered.asm.lib.commons.ClassRemapper.visitInnerClass(ClassRemapper.java:204) ~[00gasstation-mc1.7.10-0.3.4.jar:?]

This happens because references to org.objectweb.asm.commons.Remapper are not remapped in ClassRemapper, causing the ASM 5.0.3 version of the class to get used, which does not have the mapInnerClassName method.

The same crash happens when running Hodgepodge with speedupBOPFogHandling enabled, as their mixin also has a non-static inner class.

Full stack trace
java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft$TestInnerClass$c7d2ff69cb2049e09ebbf6b9b094703a
	at net.minecraft.client.Minecraft.redirect$zdc000$alwaysHaveDisplayActive(Minecraft.java:2939) ~[bao.class:?]
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1009) ~[bao.class:?]
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898) [bao.class:?]
	at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_332]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_332]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_332]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_332]
	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_332]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_332]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_332]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_332]
	at org.multimc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104) [NewLaunch.jar:?]
	at org.multimc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:175) [NewLaunch.jar:?]
	at org.multimc.impl.OneSixLauncher.launch(OneSixLauncher.java:185) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:127) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:57) [NewLaunch.jar:?]
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.Minecraft$TestInnerClass$c7d2ff69cb2049e09ebbf6b9b094703a
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_332]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_332]
	... 19 more
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.commons.Remapper.mapInnerClassName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
	at org.spongepowered.asm.lib.commons.ClassRemapper.visitInnerClass(ClassRemapper.java:204) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.InnerClassGenerator$InnerClassAdapter.visitInnerClass(InnerClassGenerator.java:249) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.lib.tree.InnerClassNode.accept(InnerClassNode.java:83) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.lib.tree.ClassNode.accept(ClassNode.java:438) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.InnerClassGenerator$InnerClassInfo.accept(InnerClassGenerator.java:158) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.InnerClassGenerator.generate(InnerClassGenerator.java:367) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.InnerClassGenerator.generate(InnerClassGenerator.java:354) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinClassGenerator.generateClass(MixinClassGenerator.java:81) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.generateClass(MixinTransformer.java:263) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:199) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:72) ~[00gasstation-mc1.7.10-0.3.4.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_332]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_332]
	... 19 more

Mod list

archaicfix-mc1.7.10-0.3.2-1-gc3c660f.dirty.jar
falsepatternlib-mc1.7.10-0.10.10.jar
SpongeMixins-1.2.0.jar OR 00gasstation-mc1.7.10-0.3.4.jar

Plugin Interaction Issue || Crucible (Thermos)

GasStation tries to interact with the Gringotts plugin causing the plugin to crash and disable on startup.

Jar -> Crucible: 5.3

Mods:

  • GasStation (3.5)

Plugins

IN ORDER TO RUN CRUCIBLE for this PLUGIN:

ADD THIS FILE (java.policy) TO DIRECTORY where CRUCIBLE.JAR is located and add
-Djava.security.policy=./java.policy to arguments before the -jar in startup parameters

Gasstation problem with Biome decoration fix which disables already decorating patch

If i use spongemixin + mixingasm i don't get theses warns
biome decoration fix : https://www.curseforge.com/minecraft/mc-mods/biome-decoration-fix/

descriptions :

when i use gasstation with biome decoration fix , i have warnings , the biome decoration fix patch is not applied and so i can still have the already decorating crash

mods list :

00gasstation-mc1.7.10-0.3.5
alreadydecoratingfix-1.0a

crash(exemple) :

crash-2022-10-08_20.55.06-server.txt

warn(exemple) :

[21:51:41] [Client thread/INFO] [STDOUT]: [net.tclproject.mysteriumlib.asm.core.MiscUtils$SystemLogHelper:warning:92]: [WARNING] Can not find the target method of fix: ASMFix: net.minecraft.world.biome.BiomeDecorator#func_150512_a(Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/BiomeGenBase;II) -> net.tclproject.mysteriumlib.asm.fixes.MysteriumPatchesFixesH#func_150512_a(Lnet/minecraft/world/biome/BiomeDecorator;Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/BiomeGenBase;II)Z, EnumReturnSetting=ON_TRUE, EnumReturnType=FIX_METHOD_RETURN_VALUE, InjectorFactory: net.tclproject.mysteriumlib.asm.core.FixInserterFactory$OnEnter, CreateMethod = false

logs :

https://paste.ee/p/eybsQ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.