-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Require Paper and stip legacy code #119
Draft
Techcable
wants to merge
8
commits into
master
Choose a base branch
from
require-paper
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is a massive update, chaning a ton of internals. It broke a ton of obfuscated names, the entity registry system, and ruined my nice API for spawn eggs. It's been a while since , so I'm already jumping Now that , I have to have a class . I call but it's horribly broken because Material.valueOf doesn't work. I fear this is some sort of bizarre classpath issue, which I do **not** want to deal with right now. I've put over 4.5 hours into this single commit and I'm ready to call it a day.
This update still isn't complete and won't even load. The alpha probably will break your config files, alhtough your databases are probably safe. Bukkit has pretty much dropped support for integer block ids. If that's not enough, they've written a compelex bytecode rewriting backwards compatibility system which screws with my attempt to support 1.13. I can use reflection to bypass it, but it's still kind of clumsy. The new bukkit API for dealing with `BlockData` is great, but the `ItemMeta` API is still lagging way behind. I'm going to have to rewrite and expand the `ItemData` system in order to abstract around these differences. I also intend to write a new `BlockData` API, which will abstract over the differences between versions (so I don't have to use reflection). For 1.13 compatibility, we must finally stop using all block and item ids. However, we must do this without using any of Bukkit's new APIs (for 1.12 compat). The only solution I can come up with is rerouting all item manipulation and access through my new `ItemData` and `BlockData` APIs.
Eventually this will make things simpler, but for now....
…o item data APIs This was my attempt - essentially requires rewriting the entire bukkit API from scratch then abstracting over the differences between different (incompatible) versions......... Clearly legacy version support is a dead-end!!!!!
…ions The project is still officially unmaintained and I'm still officially dead. Please ignore my activity. It is a hallucination I'm requiring Paper for three reasons: 1. The software itself is more stable. It is inherently less prone to bugs 2. I'm already a Paper contributor and I'm more comfortable with their community 3. I intend to start adding new APIs to Paper that I will use inside SonarPet I'm releasing all my changes to this project under the MIT license (retroactively). Generally speaking, I find the GPL distaseful. Users still must comply with the terms of the GPL when using the plugin as a whole because we still use DSH105's original code. However they may freely copy any of my changes into their own projects, including my NPC code and my bizzare set of utilities and abstractions. If it's in kotlin or under my package name it's probably my code (although it could be a different contributor).
I may decide to a couple older versions for a while. This code is currently undergoing crazy insane change. This breaks everything - we don't compile at all. The main problem is our plugin dependencies - lots of maven repos have moved or become inactive. My personal repo at repo.techcable.net no longer works - which had much of the stuff I need to build SonarPets........ Update guava to an actually modern version (21.0 instead of 17.0). We don't care about compat with 1.8.8 anymore. Update gradle to v6.4 Update ProtocolLib to 4.5.0 (why cant gradle find this)?
Remove some associated compatibility code (but not all of it). I'm kind of just deleting at random and hoping I hit something good :D
What was I thinking with 1.8.8 support?????
Also the Minecraft 1.13 update basically completely rewrote the material system. My attempts to abstract around this nonsense is what initially lead me to stop supporting this update. Essentially I would have to use reflection anytime I accessed materials, attempting to emulate the 1.13 material system on older versions of minecraft. Expect 1.12 support to be dropped |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
From now on Paper will be a hard requirement.
I'm requiring Paper for three reasons:
I'm slowly dropping support for legacy Minecraft versions. Minecraft has gone through radical internal changes between all the versions SonarPet supported. The transition from 1.8.8 was especially hard. The plugin already bends over backward to achieve compatibility with 1.8.8. There are unacceptable hacks all over the place.
I've already dropped support for 1.8, 1.9, 1.10, and 1.11. More radical changes will come soon.
I've already removed the NMS modules but there's still plenty of compatibility code left over.
Right now this is basically working off of my attempt (from two years ago) to update to 1.13. I now intend to try and update it to 1.15. There have been massive changes to the Minecraft codebase so this may take a while.
SonarPet will be completely free from now on, and I will no longer offer paid support.
SonarPet was previously released as a paid resource on Spigot (with a portion of all revenue going to the old authors). After a couple of versions of updates and support, I suddenly died without any funeral. Don't give me too hard a time: My code was still better than 99.9% of all other paid plugins.
The project is still officially unmaintained and I'm still officially dead. Please do not conduct a seance. Any activity you see here is a hallucination and should be treated as such.