Add explicit config init hooks
Last commit moved the config to ConfigHolder, which is no longer referenced during init by any code. As a result, we need an explicit init hook to initialise the class and the config.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package ca.spottedleaf.moonrise.mixin.config;
|
||||
|
||||
import ca.spottedleaf.moonrise.common.util.ConfigHolder;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(Minecraft.class)
|
||||
abstract class MinecraftMixin {
|
||||
|
||||
/**
|
||||
* @reason Init for config
|
||||
* @author Spottedleaf
|
||||
*/
|
||||
@Inject(
|
||||
method = "<init>",
|
||||
at = @At(
|
||||
value = "RETURN"
|
||||
)
|
||||
)
|
||||
private void initConfig(final CallbackInfo ci) {
|
||||
ConfigHolder.getConfig(); // force class init
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package ca.spottedleaf.moonrise.mixin.config;
|
||||
|
||||
import ca.spottedleaf.moonrise.common.util.ConfigHolder;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(MinecraftServer.class)
|
||||
abstract class MinecraftServerMixin {
|
||||
|
||||
/**
|
||||
* @reason Init for config
|
||||
* @author Spottedleaf
|
||||
*/
|
||||
@Inject(
|
||||
method = "spin",
|
||||
at = @At(
|
||||
value = "HEAD"
|
||||
)
|
||||
)
|
||||
private static <S extends MinecraftServer> void initConfig(final CallbackInfoReturnable<S> cir) {
|
||||
ConfigHolder.getConfig(); // force class init
|
||||
}
|
||||
}
|
||||
@@ -1,132 +1,134 @@
|
||||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "ca.spottedleaf.moonrise.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"mixins": [
|
||||
"bitstorage.SimpleBitStorageMixin",
|
||||
"bitstorage.ZeroBitStorageMixin",
|
||||
"block_counting.BitStorageMixin",
|
||||
"block_counting.LevelChunkSectionMixin",
|
||||
"block_counting.SimpleBitStorageMixin",
|
||||
"block_counting.ZeroBitStorageMixin",
|
||||
"block_entity_remove.LevelMixin",
|
||||
"blockstate_propertyaccess.BooleanPropertyMixin",
|
||||
"blockstate_propertyaccess.EnumPropertyMixin",
|
||||
"blockstate_propertyaccess.IntegerPropertyMixin",
|
||||
"blockstate_propertyaccess.PropertyMixin",
|
||||
"blockstate_propertyaccess.StateHolderMixin",
|
||||
"chunk_getblock.ChunkAccessMixin",
|
||||
"chunk_getblock.LevelChunkMixin",
|
||||
"chunk_system.ChunkBufferMixin",
|
||||
"chunk_system.ChunkGeneratorMixin",
|
||||
"chunk_system.ChunkHolderMixin",
|
||||
"chunk_system.ChunkMap$DistanceManagerMixin",
|
||||
"chunk_system.ChunkMapMixin",
|
||||
"chunk_system.ChunkPyramidMixin",
|
||||
"chunk_system.ChunkSerializerMixin",
|
||||
"chunk_system.ChunkStatusMixin",
|
||||
"chunk_system.ChunkStepMixin",
|
||||
"chunk_system.ChunkStorageMixin",
|
||||
"chunk_system.DistanceManagerMixin",
|
||||
"chunk_system.EntityGetterMixin",
|
||||
"chunk_system.EntityMixin",
|
||||
"chunk_system.EntityTickListMixin",
|
||||
"chunk_system.GenerationChunkHolderMixin",
|
||||
"chunk_system.LevelChunkMixin",
|
||||
"chunk_system.LevelChunkTicksMixin",
|
||||
"chunk_system.LevelMixin",
|
||||
"chunk_system.LevelReaderMixin",
|
||||
"chunk_system.MinecraftServerMixin",
|
||||
"chunk_system.NoiseBasedChunkGeneratorMixin",
|
||||
"chunk_system.PlayerListMixin",
|
||||
"chunk_system.PoiManagerMixin",
|
||||
"chunk_system.PoiSectionMixin",
|
||||
"chunk_system.RegionFileMixin",
|
||||
"chunk_system.RegionFileStorageMixin",
|
||||
"chunk_system.SectionStorageMixin",
|
||||
"chunk_system.ServerChunkCache$MainThreadExecutorMixin",
|
||||
"chunk_system.ServerChunkCacheMixin",
|
||||
"chunk_system.ServerLevelMixin",
|
||||
"chunk_system.ServerPlayerMixin",
|
||||
"chunk_system.SortedArraySetMixin",
|
||||
"chunk_system.StructureCheckMixin",
|
||||
"chunk_system.StructureTemplate$PaletteMixin",
|
||||
"chunk_system.TicketMixin",
|
||||
"chunk_tick_iteration.ChunkMapMixin",
|
||||
"chunk_tick_iteration.DistanceManagerMixin",
|
||||
"chunk_tick_iteration.ServerChunkCacheMixin",
|
||||
"collisions.ArmorStandMixin",
|
||||
"collisions.ArrayVoxelShapeMixin",
|
||||
"collisions.BitSetDiscreteVoxelShapeMixin",
|
||||
"collisions.BlockMixin",
|
||||
"collisions.BlockPosMixin",
|
||||
"collisions.BlockStateBaseMixin",
|
||||
"collisions.CubeVoxelShapeMixin",
|
||||
"collisions.DirectionMixin",
|
||||
"collisions.DiscreteVoxelShapeMixin",
|
||||
"collisions.EntityGetterMixin",
|
||||
"collisions.EntityMixin",
|
||||
"collisions.ExplosionMixin",
|
||||
"collisions.LevelMixin",
|
||||
"collisions.LivingEntityMixin",
|
||||
"collisions.ServerEntityMixin",
|
||||
"collisions.ShapesMixin",
|
||||
"collisions.SliceShapeMixin",
|
||||
"collisions.VoxelShapeMixin",
|
||||
"command.CommandsMixin",
|
||||
"entity_tracker.ChunkMapMixin",
|
||||
"entity_tracker.EntityMixin",
|
||||
"entity_tracker.TrackedEntityMixin",
|
||||
"fast_palette.CrudeIncrementalIntIdentityHashBiMapMixin",
|
||||
"fast_palette.HashMapPaletteMixin",
|
||||
"fast_palette.LinearPaletteMixin",
|
||||
"fast_palette.PalettedContainer$DataMixin",
|
||||
"fast_palette.PalettedContainerMixin",
|
||||
"fast_palette.PaletteMixin",
|
||||
"fast_palette.SingleValuePaletteMixin",
|
||||
"fluid.FlowingFluidMixin",
|
||||
"fluid.FluidStateMixin",
|
||||
"keep_alive_client.ServerGamePacketListenerImplMixin",
|
||||
"poi_lookup.AcquirePoiMixin",
|
||||
"poi_lookup.PoiManagerMixin",
|
||||
"poi_lookup.PortalForcerMixin",
|
||||
"random_ticking.BiomeManagerMixin",
|
||||
"random_ticking.BiomeMixin",
|
||||
"random_ticking.LevelMixin",
|
||||
"random_ticking.ServerLevelMixin",
|
||||
"serverlist.ConnectionMixin",
|
||||
"starlight.blockstate.BlockStateBaseMixin",
|
||||
"starlight.chunk.ChunkAccessMixin",
|
||||
"starlight.chunk.EmptyLevelChunkMixin",
|
||||
"starlight.chunk.ImposterProtoChunkMixin",
|
||||
"starlight.chunk.LevelChunkMixin",
|
||||
"starlight.chunk.ProtoChunkMixin",
|
||||
"starlight.lightengine.LevelLightEngineMixin",
|
||||
"starlight.lightengine.ThreadedLevelLightEngineMixin",
|
||||
"starlight.world.ChunkSerializerMixin",
|
||||
"starlight.world.WorldGenRegionMixin",
|
||||
"util_thread_counts.UtilMixin",
|
||||
"util_threading_detector.ThreadingDetectorMixin",
|
||||
"util_time_source.UtilMixin"
|
||||
],
|
||||
"client": [
|
||||
"chunk_system.ClientLevelMixin",
|
||||
"chunk_system.OptionsMixin",
|
||||
"collisions.LiquidBlockRendererMixin",
|
||||
"collisions.ParticleMixin",
|
||||
"loading_screen.LevelLoadStatusManagerMixin",
|
||||
"profiler.MinecraftMixin",
|
||||
"render.SectionRenderDispatcherMixin",
|
||||
"serverlist.ClientConnectionMixin",
|
||||
"serverlist.ServerAddressResolverMixin",
|
||||
"serverlist.ServerSelectionListMixin",
|
||||
"starlight.multiplayer.ClientPacketListenerMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
},
|
||||
"overwrites": {
|
||||
"conformVisibility": true
|
||||
}
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "ca.spottedleaf.moonrise.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"mixins": [
|
||||
"bitstorage.SimpleBitStorageMixin",
|
||||
"bitstorage.ZeroBitStorageMixin",
|
||||
"block_counting.BitStorageMixin",
|
||||
"block_counting.LevelChunkSectionMixin",
|
||||
"block_counting.SimpleBitStorageMixin",
|
||||
"block_counting.ZeroBitStorageMixin",
|
||||
"block_entity_remove.LevelMixin",
|
||||
"blockstate_propertyaccess.BooleanPropertyMixin",
|
||||
"blockstate_propertyaccess.EnumPropertyMixin",
|
||||
"blockstate_propertyaccess.IntegerPropertyMixin",
|
||||
"blockstate_propertyaccess.PropertyMixin",
|
||||
"blockstate_propertyaccess.StateHolderMixin",
|
||||
"chunk_getblock.ChunkAccessMixin",
|
||||
"chunk_getblock.LevelChunkMixin",
|
||||
"chunk_system.ChunkBufferMixin",
|
||||
"chunk_system.ChunkGeneratorMixin",
|
||||
"chunk_system.ChunkHolderMixin",
|
||||
"chunk_system.ChunkMap$DistanceManagerMixin",
|
||||
"chunk_system.ChunkMapMixin",
|
||||
"chunk_system.ChunkPyramidMixin",
|
||||
"chunk_system.ChunkSerializerMixin",
|
||||
"chunk_system.ChunkStatusMixin",
|
||||
"chunk_system.ChunkStepMixin",
|
||||
"chunk_system.ChunkStorageMixin",
|
||||
"chunk_system.DistanceManagerMixin",
|
||||
"chunk_system.EntityGetterMixin",
|
||||
"chunk_system.EntityMixin",
|
||||
"chunk_system.EntityTickListMixin",
|
||||
"chunk_system.GenerationChunkHolderMixin",
|
||||
"chunk_system.LevelChunkMixin",
|
||||
"chunk_system.LevelChunkTicksMixin",
|
||||
"chunk_system.LevelMixin",
|
||||
"chunk_system.LevelReaderMixin",
|
||||
"chunk_system.MinecraftServerMixin",
|
||||
"chunk_system.NoiseBasedChunkGeneratorMixin",
|
||||
"chunk_system.PlayerListMixin",
|
||||
"chunk_system.PoiManagerMixin",
|
||||
"chunk_system.PoiSectionMixin",
|
||||
"chunk_system.RegionFileMixin",
|
||||
"chunk_system.RegionFileStorageMixin",
|
||||
"chunk_system.SectionStorageMixin",
|
||||
"chunk_system.ServerChunkCache$MainThreadExecutorMixin",
|
||||
"chunk_system.ServerChunkCacheMixin",
|
||||
"chunk_system.ServerLevelMixin",
|
||||
"chunk_system.ServerPlayerMixin",
|
||||
"chunk_system.SortedArraySetMixin",
|
||||
"chunk_system.StructureCheckMixin",
|
||||
"chunk_system.StructureTemplate$PaletteMixin",
|
||||
"chunk_system.TicketMixin",
|
||||
"chunk_tick_iteration.ChunkMapMixin",
|
||||
"chunk_tick_iteration.DistanceManagerMixin",
|
||||
"chunk_tick_iteration.ServerChunkCacheMixin",
|
||||
"collisions.ArmorStandMixin",
|
||||
"collisions.ArrayVoxelShapeMixin",
|
||||
"collisions.BitSetDiscreteVoxelShapeMixin",
|
||||
"collisions.BlockMixin",
|
||||
"collisions.BlockPosMixin",
|
||||
"collisions.BlockStateBaseMixin",
|
||||
"collisions.CubeVoxelShapeMixin",
|
||||
"collisions.DirectionMixin",
|
||||
"collisions.DiscreteVoxelShapeMixin",
|
||||
"collisions.EntityGetterMixin",
|
||||
"collisions.EntityMixin",
|
||||
"collisions.ExplosionMixin",
|
||||
"collisions.LevelMixin",
|
||||
"collisions.LivingEntityMixin",
|
||||
"collisions.ServerEntityMixin",
|
||||
"collisions.ShapesMixin",
|
||||
"collisions.SliceShapeMixin",
|
||||
"collisions.VoxelShapeMixin",
|
||||
"command.CommandsMixin",
|
||||
"config.MinecraftServerMixin",
|
||||
"entity_tracker.ChunkMapMixin",
|
||||
"entity_tracker.EntityMixin",
|
||||
"entity_tracker.TrackedEntityMixin",
|
||||
"fast_palette.CrudeIncrementalIntIdentityHashBiMapMixin",
|
||||
"fast_palette.HashMapPaletteMixin",
|
||||
"fast_palette.LinearPaletteMixin",
|
||||
"fast_palette.PalettedContainer$DataMixin",
|
||||
"fast_palette.PalettedContainerMixin",
|
||||
"fast_palette.PaletteMixin",
|
||||
"fast_palette.SingleValuePaletteMixin",
|
||||
"fluid.FlowingFluidMixin",
|
||||
"fluid.FluidStateMixin",
|
||||
"keep_alive_client.ServerGamePacketListenerImplMixin",
|
||||
"poi_lookup.AcquirePoiMixin",
|
||||
"poi_lookup.PoiManagerMixin",
|
||||
"poi_lookup.PortalForcerMixin",
|
||||
"random_ticking.BiomeManagerMixin",
|
||||
"random_ticking.BiomeMixin",
|
||||
"random_ticking.LevelMixin",
|
||||
"random_ticking.ServerLevelMixin",
|
||||
"serverlist.ConnectionMixin",
|
||||
"starlight.blockstate.BlockStateBaseMixin",
|
||||
"starlight.chunk.ChunkAccessMixin",
|
||||
"starlight.chunk.EmptyLevelChunkMixin",
|
||||
"starlight.chunk.ImposterProtoChunkMixin",
|
||||
"starlight.chunk.LevelChunkMixin",
|
||||
"starlight.chunk.ProtoChunkMixin",
|
||||
"starlight.lightengine.LevelLightEngineMixin",
|
||||
"starlight.lightengine.ThreadedLevelLightEngineMixin",
|
||||
"starlight.world.ChunkSerializerMixin",
|
||||
"starlight.world.WorldGenRegionMixin",
|
||||
"util_thread_counts.UtilMixin",
|
||||
"util_threading_detector.ThreadingDetectorMixin",
|
||||
"util_time_source.UtilMixin"
|
||||
],
|
||||
"client": [
|
||||
"chunk_system.ClientLevelMixin",
|
||||
"chunk_system.OptionsMixin",
|
||||
"collisions.LiquidBlockRendererMixin",
|
||||
"collisions.ParticleMixin",
|
||||
"config.MinecraftMixin",
|
||||
"loading_screen.LevelLoadStatusManagerMixin",
|
||||
"profiler.MinecraftMixin",
|
||||
"render.SectionRenderDispatcherMixin",
|
||||
"serverlist.ClientConnectionMixin",
|
||||
"serverlist.ServerAddressResolverMixin",
|
||||
"serverlist.ServerSelectionListMixin",
|
||||
"starlight.multiplayer.ClientPacketListenerMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
},
|
||||
"overwrites": {
|
||||
"conformVisibility": true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user