fernflower
Mixin
fernflower | Mixin | |
---|---|---|
4 | 13 | |
3,273 | 1,314 | |
- | 0.8% | |
7.2 | 6.0 | |
about 1 month ago | 4 months ago | |
Java | Java | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fernflower
- read Minecraft source code
- Java 泛型程式設計的注意事項
-
New open source Java decompiler
Hello! Today I'm happy to announce the release of a project that me and my friends have been working on over the course of the last year, Quiltflower! Originally intended just for use with the QuiltMC toolchain with Minecraft, Quiltflower quickly expanded to be a general purpose java decompiler aiming to create code that is as accurate and clean as possible. If the name sounds familiar it's because Quiltflower is a fork of Fernflower, the (in)famous decompiler that was developed by Stiver, maintained by Jetbrains, and became the default decompiler in Intellij IDEA. Fernflower also quickly found its way into many other tools. After many frustrations with it myself with its decompiled code structuring and quality I decided to do something about it, and here we are! Over the past year, Quiltflower has added support for features such as modern string concatenation, a code formatter, sealed classes, pattern matching, switch expressions, and try-with-resources, and more. Quiltflower also focuses on the code quality of the decompiled output, and takes readability very seriously. We'd greatly appreciate it if you'd give it a try, with our Intellij Plugin or as a standalone jar. While it has come a long way it's still a work in progress, and feedback can be reported on our issue tracker.
-
Visually Edit Decompiled Class File?
You can decompile the classes into .java sourcecode using Fernflower and store that to disk, then use the Attach Sources option to add it to the binary dependency you're using. This allows you to edit the source freely for your reference while continuing to use the original binary.
Mixin
-
Hello I would try to start Modding in Minecraft. Have you any advice or good tutorial for beginning ?
And one day maybe you'll need that to inject code into specific location, but it's to do advanced things: https://github.com/SpongePowered/Mixin/wiki
-
Can someone with an coding brain tell me where the problem is? i dont even have a mod named "spongepowered"
SpongePowered isn't a Mod, they're the group that maintain the Framework for Mixins. The next mod in the stacktrace is cpw.mods.modlauncher
-
MineFortress beta is here! More professions, custom buildings, combats and some other things that I worked on during the past months! Let me know what do you think
That source was probably outdated. Forge didn't natively allow you to do that. You could do Java voodoo to allow a library that implemented(? Not sure if it implemented the feature or simply allowed it to be used in a specific way) Mixins, those allow you to modify the game's bytecode. Modern Forge has that library natively. Source: First paragraph of https://github.com/SpongePowered/Mixin/wiki/Mixins-on-Minecraft-Forge
- A Critique of Mojang, and Microsoft. I couldn't post this in r/minecraft for some dumb reason. feel free to critique me if you want!.
- Any advice for a new mod maker?
-
Scratch Is a Big Deal
These days Mojang provides obfuscation maps, so you can work with proper class and method names (though no parameter or local variable names). There's also been a lot of effort been put into the tooling. Nowadays there exists Gradle plugins that will download the game jar, decompile it and deobfuscate it using the official mappings. You develop against the deobfuscated code, then the plugin will turn the unobfuscated names back into their obfuscated versions when you compile. There's also been technology developed that lets you easily modify specific parts of a method in the game, so you can e.g. insert calls to your own functions at runtime.[1] This saves from you having to modify the game jar itself.
[1]: https://github.com/SpongePowered/Mixin
- How tf do i set up mixins
-
New open source Java decompiler
quilt (and fabric) take mojang's jar and preprocess it similarly, but the rest of the modifications to the code are done at runtime using a ridiculously powerful instrumenting classloader. the game is not decompiled at all, other than giving you something to look at in the IDE.
-
Questions on Coremods
If you can't use the API, I suggest you to use Mixins or really asking yourself if your idea should worth the instability/effort of creating a coremod.
-
Minecraft 1.18 Pre-Release 2: Minecraft 1.18 will require Java 17
see spongepowered's mixin wiki
What are some alternatives?
cfr - This is the public repository for the CFR Java decompiler
fabric-example-mod - Example Fabric mod
JByteMod-Beta - Java bytecode editor
Visual Studio Code - Visual Studio Code
jadx - Dex to Java decompiler
MCPConfig - Public facing repo for MCP SRG mappings.
vineflower - Modern Java decompiler aiming to be as accurate as possible, with an emphasis on output quality. Fork of the Fernflower decompiler.
bytecode-viewer - A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)
cfr_tests - Test suite for CFR. (see docs for why it's a whole different repo!)
jabel - Jabel - unlock Javac 9+ syntax when targeting Java 8
ForgeFlower - Forge's modifications to FernFlower. Fixing various bugs/inconsistencies. Main Repo: https://github.com/MinecraftForge/FernFlower
Perses - A project to cause (controlled) destruction on your jvm application