View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001361||Industrial-Craft²||crossmod-compatibility / submodules / API||public||2014-08-29 17:58||2014-08-31 09:58|
|Product Version||Builds for MC 1.7.10|
|Target Version||Fixed in Version|
|Summary||0001361: Misuse of @API annotation|
|Description||The IC2 api's package-info.java files all declare provision of the entire IC2API. This leads FML's @Optional removal system to believe that the entire IC2API is present when in fact only a subset of the subpackages are.|
For example, RedstoneArsenal includes files from the ic2.api.tile package, including the relevant package-info.java. This prevents @Optional removal of all IC2 interfaces, for example those in the ic2.api.energy.tile package.
|Additional Information||Proposed solution is to create a proper API hierarchy, with subpackages providing their own sub-apis ("IC2API|energy", "IC2API|tile", etc) owned by IC2API.|
|Tags||No tags attached.|
It's not misused, you simply can't reliably use APIs as a modid for @Optional, it always needs the "real" mod.
Even if each package had its own sub-api, you wouldn't know if every class in that package is actually there. So what you really want is an @Option which checks if a specific class is there, but that's not what it currently does.