FountainMC / FountainAPI

A 'simple but beautiful' Minecraft Server Plugin API
https://fountainmc.org/
MIT License
5 stars 5 forks source link

More plugin functionality #3

Closed PizzaCrust closed 8 years ago

PizzaCrust commented 8 years ago

I sometimes fix plugins and wish I could ASM them. An idea, I have been thinking of for a while; is for these features:


A leecher will be loaded by the same folder that plugins do. The plugin loader will scan for annotations in the plugin. If a plugin is defined with the annotation specified, it will be loaded as a leech. At the same time, the plugins in that folder is loaded.

The leech will be carried over to a state called 'LeechPluginLevelStage', which allows the leech to transform plugins; allowing developers to fix, patch, add, scan, and so many things that developers couldn't do before. After that stage, the developers can transform Minecraft during the stage, 'LeechMinecraftLevelStage'.


Core Leech Plugins have priorities, so during LeechPluginLevelStage; one may transform other leeches before the other leeches execute.

Techcable commented 8 years ago

We are not going to turn into forge and let plugins bytecode modify each other and the core server. In the future we may use bytecode transformation internaly, and plugins can hook into that, but it will not be supported.

Nothing against you, just not going down the 'bytecode modify all the things' path.

phase commented 8 years ago

If you want to "fix" a plugin, just decompile it, change the code, and recompile. Boom, bam, pow.