Third-party updates/stewardship?
gdude2002 opened this issue · 12 comments
Hiya,
Since this project seems to have moved on from Forge, would you accept a pull request that updates the mod to a modern Forge version, or would you be happy to allow another modder to take over stewardship of the Forge version? Failing that, would you be okay if someone forked this repo, updated it and released it as a separate mod (with all appropriate credit given, of course)?
While I do love Fabric and its community, I don't feel like the modding community is ready to ditch Forge just yet - while I'd love to see the community as a whole moving to Fabric, that's just not something that's going to happen overnight and a lot of people are still using mods that require Forge.
I do not foresee maintaining any Forge mods in the future, including this one. I am guided by what development that brings me joy, which happens to miss the obviously larger audience in Forge. Pull requests are unlikely to be accepted. Forks are fine, the license permits it and I have no moral objections.
I will keep ownership of the CurseForge project because the mod still has a significant presence in 1.12 (and a significant revenue stream).
Alright, thanks for the response!
I'm going to look into porting it up today, assuming nothing else comes up. I'm not interested in Curse revenue - that's not why I'd like to see this port through - so personally I'd prefer that the builds end up on your CF page, assuming you're happy with them.
I'm pretty busy lately, but we just saw the release of 1.16.x so I doubt there'll be any issues with maintaining the port after it's been updated, at least not for the foreseeable future.
EDIT: The port to forge 1.15.2 is basically done, I think the last thing left for me to do is get the config files in.
It would be up to the maintainer of the fork. I will not be vetting builds. If someone proves they can port and maintain the project, I can give them permission to maintain the project on CurseForge which permits uploading without vetting. I will still keep ownership, which means I will control most things, including the revenue split.
Another option would be to open a new project like "Trumpet Skeleton: ReDooted" to host the fork. That's fine too.
I think I'm done with the port to Forge for 1.15.2 - I'm at this fork. I decided the best approach to take was to port over from the Fabric version rather than trying to port up the Forge version, as there would be less friction overall and users will be expecting those features to be present (such as the config file) in the same context.
I'll port up to 1.16.x as well, of course.
I had a chat with my partner (who is also a modder) and, since my schedule has suddenly opened up and she's willing to help with the management side, we've decided to start a separate CF page - this would allow us to deal with the community management aspect of running the project without adding to your workload or spamming your Curse notifications. It hasn't been created yet - are you happy with us to use the ReDooted
suffix that you suggested? It's just fantastic!
If you feel like trying the build, I'll get it uploaded for your approval, or you can always build it yourself. Testing has shown parity with the Fabric version as far as either of us can see, however.
By the way, the trumpet use animation based on the eating transform is a pretty great idea. Unfortunately, discussing mixins (coremods) in the forge community tends to lead to bans and I couldn't figure out how to do it myself - I ended up just setting the use action to DRINK
and providing null
for the sound effect for it.
Thanks for your work on this mod, and your others, by the way. We've been enjoying your quality content for some time!
Thanks for all that feedback!
Looks like a copy/paste error.
It was indeed, sakurarosea
is the mod ID of another project I'm part of.
This method of reflection should be avoided to work in all environments...
I was actually already using the SRG name, but I wasn't aware of ObfuscationReflectionHelper
- I'm using that now.
This doesn't quite seem to match the changes made to the AI in the Fabric version.
I've updated the port to more closely match the logic in the Fabric version, however, even in the Fabric version the skeletons only doot and I can't get them to bonk me. Is that intended?
I don't see registration of SoundEvents, don't you need that?
Technically no, but I've gone ahead and registered them anyway.
In the fabric version, a spawn restriction is registered for the entity, otherwise they literally start raining from the sky.
I hadn't noticed this issue, but I've likewise registered the spawn with EntitySpawnPlacementRegistry
anyway.
Yeah, most likely that's just a forge hook - UseAction.DRINK
doesn't spawn any particles in the first place, so it was just a case of getting the sound to not play.
Use whatever project name you want, it was only a creative suggestion.
Instead of checking out a build, I've skimmed through your fork to see if things are OK, and have some notes:
-
https://github.com/gdude2002/trumpet-skeleton/blob/master/src/main/resources/META-INF/mods.toml#L15 Looks like a copy/paste error.
-
https://github.com/gdude2002/trumpet-skeleton/blob/master/src/main/java/com/jamieswhiteshirt/trumpetskeleton/TrumpetSkeleton.java#L78 This method of reflection should be avoided to work in all environments, see this. Forge should have an API to help you fix this. Alternatively, use an access transformer.
-
https://github.com/gdude2002/trumpet-skeleton/blob/master/src/main/java/com/jamieswhiteshirt/trumpetskeleton/entities/TrumpetSkeletonEntity.java#L46-L52 This doesn't quite seem to match the changes made to the AI in the Fabric version. The Trumpet Skeleton is now a pacifist and only seeks to annoy you.
-
I don't see registration of SoundEvents, don't you need that? I suspect it might be necessary to work in multiplayer.
-
In the fabric version, a spawn restriction is registered for the entity, otherwise they literally start raining from the sky. Make sure not registering one doesn't cause trouble for you.
Using UseAction.DRINK with no drinking sound is probably fine. I did what I did to avoid sounds and particles. I'm guessing your solution is made possible by some hook in forge.
I was actually already using the SRG name, but I wasn't aware of ObfuscationReflectionHelper - I'm using that now.
To clarify, the issue is with hardcoding the MCP name based on the one in your own development environment - this causes the mentioned issue if the mod is installed in an environment where MCP name for field_192017_bK
is something other than IMITATION_SOUND_EVENTS
. Your fix ensures that this is no longer an issue.
I've updated the port to more closely match the logic in the Fabric version, however, even in the Fabric version the skeletons only doot and I can't get them to bonk me. Is that intended?
The changes are intended. They will not hurt you, only doot at you menacingly. Obviously, most people expect them to attack as they do in 1.12, so it wouldn't be out of the question to change this, it's up to you.
To clarify, the issue is with hardcoding the MCP name based on the one in your own development environment...
Ah, okay, that makes a lot of sense. Thanks for that, it was something I was thinking about as a potential issue for a while in the back of my mind, but never got around to looking into.
The changes are intended. They will not hurt you, only doot at you menacingly.
Alright, that's fine. I think overall I prefer that behaviour as well, honestly.
Alright, seems like I just need to get the 1.16.x port sorted and then we can proceed with launch. Thanks again for providing so much input, you've gone above and beyond the line of duty with this issue!
Everything's done and ready to go. Sorry this took so long, we uploaded this to Curseforge on Saturday and it took them until now to approve it.
I have updated the README on this repository to point to your repository for the MinecraftForge 1.15+ port. I have similarly updated the description on the CurseForge project. Let me know if you want this done differently.
This is now resolved, so I am closing this issue.