I am so tired of getting reports on GitHub about third party server builds. This is a simple class which will detect if your plugin is running on a spoon, print a message to the console, disable your plugin, and force the user to agree to read and agree to a predefined message. To use it in your plugin you must add the following to your onEnable method PHP: SpoonDetector::printSpoon($this, 'spoon.txt');
Interesting, but is it really that much of a problem? Personally I have not experienced any third party forks causing trouble for any of my plugins.
Depends on the plugin. I had enough errors which were caused by using another server software than the plugin was written for. And btw, I love you for this @falk <3
Do you have any examples of such issues? Unless they've made some heavy alterations I don't see how it should affect plugins.
I've had a quite extreme issue actually @ProjectInfinity. When using generateCustomCommandData inside of a Command class, PocketMine accepts arrays as input, while spoons/forks accept a stdClass. This results in every single command dissapearing on spoons, while working perfectly fine on PocketMine.
For example, this piece of mess. https://github.com/NiekertDev/Title...67bc/src/Niekert/Titler/SendTitle.php#L20-L29 Asking why not to support spoon is like asking why not to load plugins with incompatible API versions. What do you think? @falk consider making this into a virion?
tbh this is still very much roughly hacked together since 0.16... most of the problems result from spoons claiming to support newer PocketMine API versions with hefty changes, while failing to copy-paste all of the (often extensive) changes and bugfixes. I document the majority of changes in the release notes when I create a new tag, so plugin devs know exactly what in their plugins will break and what needs fixing. Spoons do no such thing, and as a result it is nearly impossible for developers to maintain consistency if they try to support spoons. Hence, why this is so useful (and also highly amusing).
It is under MIT right now because it is released as a component of SimpleWarp, but if I release it as a virion later it will be in the public domain.
And now it up as it's own GitHub repo (https://github.com/Falkirks/spoondetector), building on poggit as a virion, and released in the public domain.