Stats

849 views 5 downloadsMar 8, 2024 Mar 8, 2024

Rated: 0.0/5.0


Creators and Publishers

amerigovespuccip

Creator

amerigovespuccip

Publisher

Additional Links

You may find some useful information by following these links

https://pagure.io/MixerLogger


Share this post



MixerLogger

DescriptionInstallationScreenshotsComments Downloads

This is a tool used for debugging modpacks which scans your mods for mods which have annotations associated with common Mixer APIs such as SpongeMixin, Tuna-Bytes (soon), PizzaMixin(soon), and AssistMixer(soon) as well as some Aspect Orientated Programming APIs. For all the files that meet these criterias, it lists the name, the jar file it is in, the known targets (except for ones which do not specify the targets in the file itself like AssistMixer), the Class References, the Method References, and the Field References, with the possibility to add even more information in the future. On launchers which support System.out.println it will show the information in the console, the logs are also saved in (.)minecraft/logs/MixerLogger.log so you can access it. This is helpful if you are making a very large modpack and one of these breaks the game, this will allow you to have a better idea where it can be coming from. It loads itself before or during SpongeMixin or similar tools in most cases. The code for this is largelly loader independent meaning with a basic entrypoint it can be supported on most loaders and even most games in Java. Same Jar is used in more than 1 loader. Should work with Abstraction layer mods like Special Compatibility Operation, NeoFromTheMatrix, or Sintrya Connector just fine.

The logs will be a tiny bit hard to read, but ideally anyone who is using this will be using ⌘+F or Ctrl+F to find specific peices of information. An example of a individual mixer class's info is as follows

Class Name: net.fabricmc.fabric.mixin.client.model.BakedModelManagerMixin
Targets: [net.minecraft.class_1092]
ClassRef: [net.minecraft.class_1087, org.spongepowered.asm.mixin.Mixin, java.util.Map, net.minecraft.class_1092, net.fabricmc.api.Environment, net.fabricmc.fabric.mixin.client.model.BakedModelManagerMixin, net.fabricmc.api.EnvType, org.spongepowered.asm.mixin.Shadow, java.lang.Object, net.fabricmc.fabric.impl.client.model.BakedModelManagerHooks, net.minecraft.class_2960]
MethodRef: [java.util.Map.get(Ljava/lang/Object;)Ljava/lang/Object;]
FieldRef: [net.fabricmc.fabric.mixin.client.model.BakedModelManagerMixin.field_5408:Ljava/util/Map;]
Originating JAR: fabric-api-0.75.1+1.19.2.jar
--------------------

 

But it can be more daunting for much larger ones

 

Limitations

At the moment only Sponge Mixin is supported but others are soon planned and we also plan to list more info about modified methods and RefMap parsing. This also only goes 1 level deep for nested jars and javassist is bundled (which could conflict with a few mods but most other mods run AFTER this one so you would already have your information by the time such package conflict could happen). This only scans existing Mixer classes not ones created during runtime. This can make the game possibly unstable and also makes the game take longer to load so if you are not using it I would not suggest keeping it in your mods folder. Also atm only the folder called "mods" is supported but this will change.

 

Platform support.

FeatureCreep

FeatureCreep 4.0 Pre Release 18 will come with this built in but it will need to be enabled in the FeatureCreep config (in the etc directory in your Minecraft Folder). However this jar supports FeatureCreep 4 Pre Release 17 to an extent if not being run on one of the other mentioned platforms. If you are on MCForge and have FeatureCreep this mod will confict due to both having the same packages at least on 1.17 due to Module changes. On platforms which do not come with SpongeMixin or a supported mixer it will need to be installed normally. The FeatureCreep built-in version will be the best maintained. The Pre-17 and earlier version of the mod will duplicate on Pre-18 or newer and is generally unsupported. Works on games outside of Minecraft written in Java and can be used on other loaders like LiteLoader and Rift and NeoForge and possibly older versions of MC Forge if FeatureCreep is installed.

 

MinecraftForge

Should work on 1.17+, 1.16.5 and earlier has changes in the ITransformationService making it hard to do in the same file.

 

FabricMC

Should work on any version and in non-Minecraft games. May work on QuiltMC and other FabricMC derivatives but it is untested. Legacy and Cursed Legacy Fabric should also work.