Paradise Lost

Paradise Lost

7M Downloads

Superfluous access wideners can be replaced

SollyW opened this issue ยท 1 comments

commented

Here is a line-numbered copy of the_aether.accesswidener:

0.  accessible    class     net/minecraft/world/gen/feature/ConfiguredFeatures$Decorators
1.  accessible    class     net/minecraft/client/particle/ParticleManager$SpriteAwareFactory
2.  accessible    method    net/minecraft/world/gen/feature/ConfiguredFeatures          pool                         ()Lnet/minecraft/util/collection/DataPool$Builder;
3.  accessible    method    net/minecraft/item/Item$Settings                            rarity                       (Lnet/minecraft/util/Rarity;)Lnet/minecraft/item/Item$Settings;
4.  accessible    method    net/minecraft/particle/DefaultParticleType                  <init>                       (Z)V
5.  accessible    method    net/minecraft/block/StairsBlock                             <init>                       (Lnet/minecraft/block/BlockState;Lnet/minecraft/block/AbstractBlock$Settings;)V
6.  accessible    method    net/minecraft/block/PaneBlock                               <init>                       (Lnet/minecraft/block/AbstractBlock$Settings;)V
7.  accessible    method    net/minecraft/entity/SpawnRestriction                       register                     (Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/SpawnRestriction$Location;Lnet/minecraft/world/Heightmap$Type;Lnet/minecraft/entity/SpawnRestriction$SpawnPredicate;)V
8.  accessible    method    net/minecraft/client/item/ModelPredicateProviderRegistry    register                     (Lnet/minecraft/item/Item;Lnet/minecraft/util/Identifier;Lnet/minecraft/client/item/UnclampedModelPredicateProvider;)V
9.  accessible    method    net/minecraft/client/render/entity/EntityRenderers          register                     (Lnet/minecraft/entity/EntityType;Lnet/minecraft/client/render/entity/EntityRendererFactory;)V
10. accessible    method    net/minecraft/world/gen/feature/StructureFeature            register                     (Ljava/lang/String;Lnet/minecraft/world/gen/feature/StructureFeature;Lnet/minecraft/world/gen/GenerationStep$Feature;)Lnet/minecraft/world/gen/feature/StructureFeature;
11. accessible    method    net/minecraft/block/FireBlock                               registerFlammableBlock       (Lnet/minecraft/block/Block;II)V
12. accessible    method    net/minecraft/block/ComposterBlock                          registerCompostableItem      (FLnet/minecraft/item/ItemConvertible;)V
13. accessible    field     net/minecraft/entity/attribute/DefaultAttributeRegistry     DEFAULT_ATTRIBUTE_REGISTRY   Ljava/util/Map;
14. accessible    field     net/minecraft/client/render/RenderLayers                    BLOCKS                       Ljava/util/Map;
15. accessible    field     net/minecraft/client/render/RenderLayers                    FLUIDS                       Ljava/util/Map;
16. accessible    field     net/minecraft/client/render/entity/model/EntityModelLayers  LAYERS                       Ljava/util/Set;
17. mutable       field     net/minecraft/client/render/entity/model/EntityModelLayers  LAYERS                       Ljava/util/Set;

Of these:

0: AetherConfiguredFeatures can extend ConfiguredFeatures, allowing access to the protected class
2 to 12: invoker mixin if private/package-private, extend the class if protected
13 to 16: accessor mixin if private/package-private, extend the class if protected
17: mutable mixin

commented

Narrowed our current list down to 1