elifoster / WitcheryPatch

:bug: A small mod to fix Witchery bugs
https://modrinth.com/mod/witcherypatch
MIT License
4 stars 0 forks source link

could this work as an unofficial API to produce Witchery addons ? #4

Open ghost opened 7 years ago

ghost commented 7 years ago

I am wondering if you could somehow turn this mod into an unofficial API for Witchery addons.

The mod by itself would function just the same but what I propose is you would add hooks or a whole new layer to allow for custom Witchery recipes for certain Witchery devices that are easier to implement. People would download your mod and use it as an API to create custom recipes and add their own items to Witchery devices via hooks you would provide using ASM or reflection or however you got to modify the original mod as you seem skilled in this department.

Obvs they would require this mod to be present along with their mod in order for their addon(s) to work.

This would provide the ability to add new custom recipes only and not modify or remove already existing ones). This would be simpler than adding zenscript (Mine Tweaker's own scripting) or Minecraft commands like my other request.

On the most basic level maybe allow for Cauldron, Kettle and Oven custom recipes. This should allow custom saplings to be burned in the Oven producing custom fumes and custom items to be produced via Cauldron and Kettle .

On a more advanced level it would be custom Circle Magic rituals.

Other devices to provide hooks to would be Distillery , Spinning Wheel recipes and Brazier items to be burned for custom effects

Also consider my other request: https://github.com/elifoster/WitcheryPatch/issues/3

elifoster commented 7 years ago

Technically that should already be possible. Witchery itself has internal APIs that it uses. If someone were to simply add Witchery as a dependency to their mod and use the APIs already provided they could very well make addons. Technically this itself is an addon to Witchery. The thing I'm not sure about is the legality of actually decompiling the mod so that you can do that as I am not a copyright lawyer.

ghost commented 7 years ago

@elifoster I understand . As far as I know Emoniph clearly states not to decompile his code . But I didn't know Witchery provides it's own API that's good to know thank you.

ghost commented 7 years ago

"4. Derivative Works / Modification This Mod may not be decompiled, reproduced and/or modified under any circumstances without prior written permission of the Owner. This Mod is not open source." :(

elifoster commented 7 years ago

Yeah but it actually isn't that simple because it's digital intellectual property:

Even after U.S. courts ruled that decompilation was acceptable for purposes such as achieving interoperability, a related controversy broke out over the enforceability of licenses forbidding reverse engineering of software and other digital information. More recently, questions have arisen about whether the decompilation of computer programs infringes upon patent rights in software components. ... The challenge is to design legal rules that protect information-rich products against market-destructive cloning while providing enough breathing room for reverse engineering to enable new entrants to compete and innovate in a competitively healthy way. ... Intellectual property rights, if made too strong, may impede innovation and conflict with other economic and policy objectives. —Pamela Samuelson and Suzanne Scotchmer, "The Law and Economics of Reverse Engineering"

It's much easier to restrict redistribution of decompiled, reproduced and/or modified material however there's basically no way to enforce restrictions against decompilation itself. Theoretically one could even reverse engineer a mod just by looking at a variety of crash reports and figuring out how stuff works that way.

elifoster commented 7 years ago

Furthermore, (and I would like to reiterate I am not a lawyer nor do I have any legal training), it is possible that Witchery itself violates the licenses of other mods.

As an example, Section 4 of CC-A-NC-3.0 Unported, the license of Ars Magica 2 which Witchery could be considered an Adaptation of, states:

If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author").

However this does not appear to be fulfilled anywhere that Witchery is hosted.

The reality is mods violate other mods' licenses all the time and there isn't really much to do about it. Most of the time they are worded very ambiguously (for example, the AM2 license says to provide attribution "however reasonable" without really explaining what that means) and there is basically no legal mechanism for which mod developers can use in a timely manner to enforce their licenses. In my several years in modded Minecraft, licenses are mostly used as guidelines and the only way people have ever actually enforced their licenses is by inserting DRM which usually ends up pissing off the userbase once it's exposed anyway.

ghost commented 7 years ago

@elifoster Let's just say is complicated. If you could reach out to the author (emoniph) and ask him his permission in writing it will all be okay (providing of course you wanted to do this in the first place). Without his permission you go into gray copyright areas. I doubt anyone would come after you to sue you. Is a mod for Minecraft you don't make any money from it it would be pointless. No court would green light this case . Is silly. But you may get in trouble with curse, minecraft forums or MC community (or not).

Either way was a only a question/suggestion to see if this if this is possible . Tank you for your replies. 👍

elifoster commented 7 years ago

I would absolutely do that if it were possible. Emoniph has essentially disappeared and hasn't been around in over a year. In fact, if it were possible, I would just be recommending the changes that this mod makes to him directly and the mod wouldn't exist.

ghost commented 7 years ago

@elifoster have a look at this https://en.wikipedia.org/wiki/Orphan_works

Orphan works are special limited licenses provided in case author is uncontactable and work is abandoned. You could claim Orphan work status on any abandoned piece of software until owner returns and claims ownership again in which case you lose orphan work status.

Thus you could legally say Witchery is abandonware as the author simply vanished and thus his official license no longer applies and you could reverse engineer/ASM whatever you want create and API for mods until the author returns.

You could claim orphan license in best faith that is not trying to make money off someone else's work and not trying to take advance of someone else's work but simply to be able to keep the produc in circulation and update it.

ghost commented 7 years ago

So the way you would do this you would simply write up an orphan works license something like

"I, NAME HERE, claim that, to the best of my knowledge, Witchery mod for Minecraft written by Emoniph is currently abandoned as the original creator, Emoniph, is not reachable via any form of contact he has provided and furthermore he no longer communicates via his normal channels Minecraft Forums or Curse mod site. To all intents and purposes this piece of code is currently "abandonware" and thus I volunteer to, in good faith, release the copyright holds on Witchery mod for Minecraft written by Emoniph. By good faith I mean I do not aim to profit, take advange or take credit from his work but rather keep the mod alive and in circulation so that this valuable piece of software does not and will continue being usable by the community it was created for."

ETC something like that. This is how Abandonware games work. So when he comes back you simply remove this mod from circulation and apologize to him saying you thought he abandoned as he wasn't contactable or reachable in any way that you were able to and apologize. Is perfectly legal.

I think this is what a modder by the name of Goto Link does sometimes. He would take abandoned code and update it for newer versions of MC

elifoster commented 7 years ago

Thanks for the info! I'll read more up on orphan works and stuff when I get a chance.

ghost commented 7 years ago

Sorry deleted previous comment gave wrong information.

ghost commented 7 years ago

OK so current law in the states (assuming you live there) is actually very simple. You simply declare something is abandoned because the author cannot be contacted and simply vanished any any attempts to do so have failed thus you get a limited "fair use" license to open up copyrighted works for yourself to use.

To further claim fair use to be on the safe side simply say you are doing it from a research/scholarly reason as you want to learn ASM or more advanced java features and you decided to practice it on Witchery mod because is a popular mod that you enjoy, because is a complex piece of software, because it could help you and others learn a lot and because is abandoned by the original creator.

Sunconure11 commented 7 years ago

I'm curious, what became of this attempt to mark Witchery as abandonware?

elifoster commented 7 years ago

Nothing, basically.

draknyte1 commented 6 years ago

I know this is > year old, but if anyone stumbles across it, it may be useful. https://github.com/draknyte1/WitcheryExtras