I rewrote the plugin.
Changelog:
- You know that weird issue on windows terminals where you would need to press a key multiple times to make it enter that key in console? Fixed. Also custom colored logging is fixed lol
- Vanilla logging formatting is back!
- Rewrote mod api
- Fixed
getPlugin
andgetProvidingPlugin
static methods inJavaPlugin
- Basically reorganize packages everywhere
- Rewrote context carriers
- Rewrote launch init and game launch
- Rewrote property service and removed blackboard api
- Support 1.21.4
- Rewrote Ember to use OptionSet instead of String[]
- Named classloaders(MRJ)
- BootstrapEntryContext compile/decompile(context carriers rewrite)
- Added mappings resolver
- Basically verifies if the mappings for the plugin are correct and warns if it isnt mojmapped
- Nested library loading! You can now bundle libraries, plugins, and mixin plugins into your jar by putting htem in
META-INF/mods
directory of your resources! - Entrypoint api! Basically fabrics
ModInitializer
api, but more customizable :) - Way too many improvements and fixes
- I forgot a lot of things
- Added javadocs for more things
- More APIs
- Rewrote game patches and transformer services
- Improved logging impl
- Datapack entrypoint
- Allows loading your plugin as a vanilla datapack instance, similar to a fabric mod
- Cleaned original server instance process more during startup
- Mod entrypoint API
- Clean redundant code
- JVM ManagementFactory for identifying which JDK to use - resolves hosts not setting JAVA_HOME ENV_VAR
- JVM Instrumentation for original process to retrieve OptionSet
- Merge Ignite/Eclipse files to avoid uneccessary management
- Eclipse gradle plugin :
- Updated to
1.2.0
Eclipse - Includes AccessWideners for IDE environment
- Bundles the mixin/mixinextras libraries
- Includes the Eclipse jar for development
- Updated to
- Uses
paper-plugin.yml
(or.yaml
) for mixin defining instead ofmixin-plugin.json
- Fix JVM args from not being provided to new
ProcessBuilder
- DOES NOT work for args like--nogui
yet, making a Paper PR for access to that in plugin bootstrap - Add
MixinPlugin
API access, meaning you can now cast aJavaPlugin
to aMixinPlugin
, and it will provide nullable methods for getting information from Ignite(if any of those is null, then the plugin is NOT a mixin plugin) - Documents the mixins in Eclipse a bit more
- Rewrite the
ModernPluginLoadingStrategyMixin
to just use normal injectors rather than using@Overwrite
- Better support for library loading with paper plugins
- With mixin plugins, it is HIGHLY different in classloading, and some instances will frankly just fail to apply. I am working on a new feature that will bundle libraries like Fabric Loom does for mixin plugins, but that will be in
1.3.0
along with properMinecraftServer
optionset providers for bootstrapping.
- With mixin plugins, it is HIGHLY different in classloading, and some instances will frankly just fail to apply. I am working on a new feature that will bundle libraries like Fabric Loom does for mixin plugins, but that will be in
- Rewrite
PaperGameLocator
to a newEclipseGameLocator
to be more version-agnostic and fix possible jar-corruption of the server jar during Eclipse process init. - Better cleanup of the Eclipse process
- Some more debugging logs
- Better termination output logs