View Issue Details

IDProjectCategoryView StatusLast Update
0001361Industrial-Craft²crossmod-compatibility / submodules / APIpublic2014-08-31 09:58
Reporterunpairedbracket Assigned ToPlayer  
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product VersionBuilds for MC 1.7.10 
Summary0001361: Misuse of @API annotation
DescriptionThe 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 InformationProposed solution is to create a proper API hierarchy, with subpackages providing their own sub-apis ("IC2API|energy", "IC2API|tile", etc) owned by IC2API.
TagsNo tags attached.
Minecraft Version

Activities

Player

2014-08-31 09:58

administrator   ~0003391

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.

Issue History

Date Modified Username Field Change
2014-08-29 17:58 unpairedbracket New Issue
2014-08-31 07:48 Thunderdark Assigned To => Player
2014-08-31 07:48 Thunderdark Status new => assigned
2014-08-31 09:58 Player Note Added: 0003391