diff --git a/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java b/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java index 634a699b..44677781 100644 --- a/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java +++ b/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java @@ -43,8 +43,6 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; public class DimensionalDoorsInitializer implements ModInitializer { public static final Identifier MONOLITH_PARTICLE_PACKET = new Identifier("dimdoors", "monolith_particle_packet"); public static ConfigHolder CONFIG_MANAGER; - public static ModConfig CONFIG; - private static Map UUID_SERVER_PLAY_NETWORK_HANDLER_MAP = new HashMap<>(); private static MinecraftServer server; @@ -60,7 +58,11 @@ public class DimensionalDoorsInitializer implements ModInitializer { return getServer().getWorld(key); } - @Override + public static ModConfig getConfig() { + return CONFIG_MANAGER.get(); + } + + @Override public void onInitialize() { ServerLifecycleEvents.SERVER_STARTING.register((minecraftServer) -> { server = minecraftServer; diff --git a/src/main/java/org/dimdev/dimdoors/block/entity/DetachedRiftBlockEntity.java b/src/main/java/org/dimdev/dimdoors/block/entity/DetachedRiftBlockEntity.java index 7be9f759..c195d52a 100644 --- a/src/main/java/org/dimdev/dimdoors/block/entity/DetachedRiftBlockEntity.java +++ b/src/main/java/org/dimdev/dimdoors/block/entity/DetachedRiftBlockEntity.java @@ -46,7 +46,7 @@ public class DetachedRiftBlockEntity extends RiftBlockEntity { return; } - if (!world.isClient() && random.nextDouble() < DimensionalDoorsInitializer.CONFIG.getGeneralConfig().endermanSpawnChance) { + if (!world.isClient() && random.nextDouble() < DimensionalDoorsInitializer.getConfig().getGeneralConfig().endermanSpawnChance) { EndermanEntity enderman = EntityType.ENDERMAN.spawn( (ServerWorld) world, null, @@ -58,7 +58,7 @@ public class DetachedRiftBlockEntity extends RiftBlockEntity { false ); - if (random.nextDouble() < DimensionalDoorsInitializer.CONFIG.getGeneralConfig().endermanAggressiveChance) { + if (random.nextDouble() < DimensionalDoorsInitializer.getConfig().getGeneralConfig().endermanAggressiveChance) { if (enderman != null) { enderman.setTarget(world.getClosestPlayer(enderman, 50)); } @@ -67,12 +67,12 @@ public class DetachedRiftBlockEntity extends RiftBlockEntity { if (blockEntity.closing) { if (blockEntity.size > 0) { - blockEntity.size -= DimensionalDoorsInitializer.CONFIG.getGeneralConfig().riftCloseSpeed; + blockEntity.size -= DimensionalDoorsInitializer.getConfig().getGeneralConfig().riftCloseSpeed; } else { world.removeBlock(pos, false); } } else if (!blockEntity.stabilized) { - blockEntity.size += DimensionalDoorsInitializer.CONFIG.getGeneralConfig().riftGrowthSpeed / (blockEntity.size + 1); + blockEntity.size += DimensionalDoorsInitializer.getConfig().getGeneralConfig().riftGrowthSpeed / (blockEntity.size + 1); } } diff --git a/src/main/java/org/dimdev/dimdoors/block/entity/EntranceRiftBlockEntity.java b/src/main/java/org/dimdev/dimdoors/block/entity/EntranceRiftBlockEntity.java index 37bc6111..ee66b4e4 100644 --- a/src/main/java/org/dimdev/dimdoors/block/entity/EntranceRiftBlockEntity.java +++ b/src/main/java/org/dimdev/dimdoors/block/entity/EntranceRiftBlockEntity.java @@ -43,7 +43,7 @@ public class EntranceRiftBlockEntity extends RiftBlockEntity { @Override public boolean receiveEntity(Entity entity, float yawOffset) { - Vec3d targetPos = Vec3d.ofCenter(this.pos).add(Vec3d.of(this.getOrientation().getOpposite().getVector()).multiply(DimensionalDoorsInitializer.CONFIG.getGeneralConfig().teleportOffset + 0.5)); + Vec3d targetPos = Vec3d.ofCenter(this.pos).add(Vec3d.of(this.getOrientation().getOpposite().getVector()).multiply(DimensionalDoorsInitializer.getConfig().getGeneralConfig().teleportOffset + 0.5)); TeleportUtil.teleport(entity, this.world, targetPos, yawOffset); return true; } diff --git a/src/main/java/org/dimdev/dimdoors/client/DetachedRiftBlockEntityRenderer.java b/src/main/java/org/dimdev/dimdoors/client/DetachedRiftBlockEntityRenderer.java index aa52d3a5..61bd341d 100644 --- a/src/main/java/org/dimdev/dimdoors/client/DetachedRiftBlockEntityRenderer.java +++ b/src/main/java/org/dimdev/dimdoors/client/DetachedRiftBlockEntityRenderer.java @@ -28,7 +28,7 @@ public class DetachedRiftBlockEntityRenderer implements BlockEntityRenderer= MAX_AGGRO && DimensionalDoorsInitializer.CONFIG.getMonolithsConfig().monolithTeleportation && !this.target.isCreative() && this.mob.isDangerous()) { + if (this.mob.getAggro() >= MAX_AGGRO && DimensionalDoorsInitializer.getConfig().getMonolithsConfig().monolithTeleportation && !this.target.isCreative() && this.mob.isDangerous()) { this.mob.setAggro(0); //Location destination = LimboDimension.getLimboSkySpawn(player); //TeleportUtil.teleport(player, destination, 0, 0); diff --git a/src/main/java/org/dimdev/dimdoors/item/DimensionalDoorItem.java b/src/main/java/org/dimdev/dimdoors/item/DimensionalDoorItem.java index 28c23df2..6adc5b94 100644 --- a/src/main/java/org/dimdev/dimdoors/item/DimensionalDoorItem.java +++ b/src/main/java/org/dimdev/dimdoors/item/DimensionalDoorItem.java @@ -44,7 +44,7 @@ public class DimensionalDoorItem extends TallBlockItem { if (context.getWorld().isClient) { context.getPlayer().sendMessage(new TranslatableText("rifts.entrances.rift_too_close"), true); - RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.CONFIG.getGraphicsConfig().highlightRiftCoreFor; + RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor; } return ActionResult.FAIL; diff --git a/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java b/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java index 35c45e7c..fe3576c7 100644 --- a/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java +++ b/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java @@ -63,7 +63,7 @@ public class RiftBladeItem extends SwordItem { return new TypedActionResult<>(ActionResult.SUCCESS, stack); } else { player.sendMessage(new TranslatableText(this.getTranslationKey() + ".rift_miss"), true); - RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.CONFIG.getGraphicsConfig().highlightRiftCoreFor; + RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor; return new TypedActionResult<>(ActionResult.FAIL, stack); } } diff --git a/src/main/java/org/dimdev/dimdoors/item/RiftRemoverItem.java b/src/main/java/org/dimdev/dimdoors/item/RiftRemoverItem.java index c3193a71..c03b6b41 100644 --- a/src/main/java/org/dimdev/dimdoors/item/RiftRemoverItem.java +++ b/src/main/java/org/dimdev/dimdoors/item/RiftRemoverItem.java @@ -46,7 +46,7 @@ public class RiftRemoverItem extends Item { if (world.isClient) { if (!RaycastHelper.hitsDetachedRift(hit, world)) { player.sendMessage(new TranslatableText("tools.rift_miss"), true); - RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.CONFIG.getGraphicsConfig().highlightRiftCoreFor; + RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor; } return new TypedActionResult<>(ActionResult.FAIL, stack); } diff --git a/src/main/java/org/dimdev/dimdoors/item/RiftStabilizerItem.java b/src/main/java/org/dimdev/dimdoors/item/RiftStabilizerItem.java index 607d15aa..278b2f2c 100644 --- a/src/main/java/org/dimdev/dimdoors/item/RiftStabilizerItem.java +++ b/src/main/java/org/dimdev/dimdoors/item/RiftStabilizerItem.java @@ -40,7 +40,7 @@ public class RiftStabilizerItem extends Item { return new TypedActionResult<>(ActionResult.SUCCESS, stack); } else { player.sendMessage(new TranslatableText("tools.rift_miss"), true); - RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.CONFIG.getGraphicsConfig().highlightRiftCoreFor; + RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor; return new TypedActionResult<>(ActionResult.FAIL, stack); } } diff --git a/src/main/java/org/dimdev/dimdoors/pockets/PocketGenerator.java b/src/main/java/org/dimdev/dimdoors/pockets/PocketGenerator.java index 30b37af8..dabdc647 100644 --- a/src/main/java/org/dimdev/dimdoors/pockets/PocketGenerator.java +++ b/src/main/java/org/dimdev/dimdoors/pockets/PocketGenerator.java @@ -5,7 +5,6 @@ import java.util.Random; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.dimdev.dimdoors.DimensionalDoorsInitializer; -import org.dimdev.dimdoors.ModConfig; import org.dimdev.dimdoors.pockets.virtual.reference.PocketGeneratorReference; import org.dimdev.dimdoors.rift.registry.LinkProperties; import org.dimdev.dimdoors.rift.targets.VirtualTarget; @@ -84,7 +83,7 @@ public final class PocketGenerator { float netherProbability = DimensionalDoorsInitializer.getWorld(virtualLocation.getWorld()).getDimension().isUltrawarm() ? 1 : (float) depth / 200; // TODO: improve nether probability Random random = new Random(); String group = random.nextFloat() < netherProbability ? "nether" : "ruins"; - PocketTemplate pocketTemplate = SchematicHandler.INSTANCE.getRandomTemplate(group, depth, DimensionalDoorsInitializer.CONFIG.getPocketsConfig().maxPocketSize, false); + PocketTemplate pocketTemplate = SchematicHandler.INSTANCE.getRandomTemplate(group, depth, DimensionalDoorsInitializer.getConfig().getPocketsConfig().maxPocketSize, false); return generatePocketFromTemplate(DimensionalDoorsInitializer.getWorld(ModDimensions.DUNGEON), pocketTemplate, virtualLocation, linkTo, linkProperties); } diff --git a/src/main/java/org/dimdev/dimdoors/pockets/SchematicHandler.java b/src/main/java/org/dimdev/dimdoors/pockets/SchematicHandler.java index 97266107..46c85bb7 100644 --- a/src/main/java/org/dimdev/dimdoors/pockets/SchematicHandler.java +++ b/src/main/java/org/dimdev/dimdoors/pockets/SchematicHandler.java @@ -220,7 +220,7 @@ public class SchematicHandler { // TODO: parts of this should be moved to the or for (JsonElement pocketElement : pockets) { JsonObject pocket = pocketElement.getAsJsonObject(); int size = pocket.get("size").getAsInt(); - if (!DimensionalDoorsInitializer.CONFIG.getPocketsConfig().loadAllSchematics && size > DimensionalDoorsInitializer.CONFIG.getPocketsConfig().maxPocketSize) + if (!DimensionalDoorsInitializer.getConfig().getPocketsConfig().loadAllSchematics && size > DimensionalDoorsInitializer.getConfig().getPocketsConfig().maxPocketSize) continue; String id = pocket.get("id").getAsString(); String type = pocket.has("type") ? pocket.get("type").getAsString() : null; @@ -319,11 +319,11 @@ public class SchematicHandler { // TODO: parts of this should be moved to the or } public PocketTemplate getPersonalPocketTemplate() { - return this.getRandomTemplate("private", -1, DimensionalDoorsInitializer.CONFIG.getPocketsConfig().privatePocketSize, true); + return this.getRandomTemplate("private", -1, DimensionalDoorsInitializer.getConfig().getPocketsConfig().privatePocketSize, true); } public PocketTemplate getPublicPocketTemplate() { - return this.getRandomTemplate("public", -1, DimensionalDoorsInitializer.CONFIG.getPocketsConfig().publicPocketSize, true); + return this.getRandomTemplate("public", -1, DimensionalDoorsInitializer.getConfig().getPocketsConfig().publicPocketSize, true); } public static void saveSchematic(Schematic schematic, String id) { @@ -391,7 +391,7 @@ public class SchematicHandler { // TODO: parts of this should be moved to the or } public boolean isUsedOftenEnough(PocketTemplate template) { - int maxNrOfCachedSchematics = DimensionalDoorsInitializer.CONFIG.getPocketsConfig().cachedSchematics; + int maxNrOfCachedSchematics = DimensionalDoorsInitializer.getConfig().getPocketsConfig().cachedSchematics; int usageRank = this.usageMap.get(template); return usageRank < maxNrOfCachedSchematics; } @@ -420,9 +420,9 @@ public class SchematicHandler { // TODO: parts of this should be moved to the or this.usageList.set(insertionIndex, new SimpleEntry(template, newUsage)); this.usageMap.put(template, insertionIndex); - if (insertionIndex < DimensionalDoorsInitializer.CONFIG.getPocketsConfig().cachedSchematics) { //if the schematic of this template is supposed to get cached - if (this.usageList.size() > DimensionalDoorsInitializer.CONFIG.getPocketsConfig().cachedSchematics) { //if there are more used templates than there are schematics allowed to be cached - this.usageList.get(DimensionalDoorsInitializer.CONFIG.getPocketsConfig().cachedSchematics).getKey().setSchematic(null); //make sure that the number of cached schematics is limited + if (insertionIndex < DimensionalDoorsInitializer.getConfig().getPocketsConfig().cachedSchematics) { //if the schematic of this template is supposed to get cached + if (this.usageList.size() > DimensionalDoorsInitializer.getConfig().getPocketsConfig().cachedSchematics) { //if there are more used templates than there are schematics allowed to be cached + this.usageList.get(DimensionalDoorsInitializer.getConfig().getPocketsConfig().cachedSchematics).getKey().setSchematic(null); //make sure that the number of cached schematics is limited } } } diff --git a/src/main/java/org/dimdev/dimdoors/util/PocketGenerationParameters.java b/src/main/java/org/dimdev/dimdoors/util/PocketGenerationParameters.java index 7630a526..7f2167c3 100644 --- a/src/main/java/org/dimdev/dimdoors/util/PocketGenerationParameters.java +++ b/src/main/java/org/dimdev/dimdoors/util/PocketGenerationParameters.java @@ -3,10 +3,8 @@ package org.dimdev.dimdoors.util; import net.minecraft.server.world.ServerWorld; import org.dimdev.dimdoors.DimensionalDoorsInitializer; -import org.dimdev.dimdoors.ModConfig; import org.dimdev.dimdoors.rift.registry.LinkProperties; import org.dimdev.dimdoors.rift.targets.VirtualTarget; -import org.dimdev.dimdoors.world.level.DimensionalRegistry; import org.dimdev.dimdoors.world.pocket.VirtualLocation; import java.util.Map; @@ -48,8 +46,8 @@ public class PocketGenerationParameters { public Map toVariableMap(Map stringDoubleMap) { stringDoubleMap.put("depth", (double) this.sourceVirtualLocation.getDepth()); - stringDoubleMap.put("public_size", (double) DimensionalDoorsInitializer.CONFIG.getPocketsConfig().publicPocketSize); - stringDoubleMap.put("private_size", (double) DimensionalDoorsInitializer.CONFIG.getPocketsConfig().privatePocketSize); + stringDoubleMap.put("public_size", (double) DimensionalDoorsInitializer.getConfig().getPocketsConfig().publicPocketSize); + stringDoubleMap.put("private_size", (double) DimensionalDoorsInitializer.getConfig().getPocketsConfig().privatePocketSize); return stringDoubleMap; } } diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java b/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java index 28e3a2f5..a431469c 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java @@ -70,7 +70,7 @@ public final class ModFeatures { } static { - int gatewayChance = FabricLoader.getInstance().isDevelopmentEnvironment() ? 20 : DimensionalDoorsInitializer.CONFIG.getWorldConfig().gatewayGenChance; + int gatewayChance = FabricLoader.getInstance().isDevelopmentEnvironment() ? 20 : DimensionalDoorsInitializer.getConfig().getWorldConfig().gatewayGenChance; SANDSTONE_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicV2GatewayFeatureConfig(SchematicV2Gateway.ID_SCHEMATIC_MAP.inverse().get(SANDSTONE_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); TWO_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicV2GatewayFeatureConfig(SchematicV2Gateway.ID_SCHEMATIC_MAP.inverse().get(TWO_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); LIMBO_GATEWAY_CONFIGURED_FEATURE = LIMBO_GATEWAY_FEATURE.configure(DefaultFeatureConfig.INSTANCE).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); diff --git a/src/main/java/org/dimdev/dimdoors/world/limbo/LimboDecay.java b/src/main/java/org/dimdev/dimdoors/world/limbo/LimboDecay.java index ef3ae17d..d639372d 100644 --- a/src/main/java/org/dimdev/dimdoors/world/limbo/LimboDecay.java +++ b/src/main/java/org/dimdev/dimdoors/world/limbo/LimboDecay.java @@ -168,7 +168,7 @@ public final class LimboDecay { public static void applySpreadDecay(World world, BlockPos pos) { //Check if we randomly apply decay spread or not. This can be used to moderate the frequency of //full spread decay checks, which can also shift its performance impact on the game. - if (random.nextDouble() < DimensionalDoorsInitializer.CONFIG.getLimboConfig().decaySpreadChance) { + if (random.nextDouble() < DimensionalDoorsInitializer.getConfig().getLimboConfig().decaySpreadChance) { //Apply decay to the blocks above, below, and on all four sides. //World.getBlockId() implements bounds checking, so we don't have to worry about reaching out of the world boolean flag = decayBlock(world, pos.up()); diff --git a/src/main/java/org/dimdev/dimdoors/world/pocket/PocketDirectory.java b/src/main/java/org/dimdev/dimdoors/world/pocket/PocketDirectory.java index b6a6d68e..17ab8028 100644 --- a/src/main/java/org/dimdev/dimdoors/world/pocket/PocketDirectory.java +++ b/src/main/java/org/dimdev/dimdoors/world/pocket/PocketDirectory.java @@ -23,7 +23,7 @@ public class PocketDirectory { RegistryKey worldKey; public PocketDirectory(RegistryKey worldKey) { - this.gridSize = DimensionalDoorsInitializer.CONFIG.getPocketsConfig().pocketGridSize; + this.gridSize = DimensionalDoorsInitializer.getConfig().getPocketsConfig().pocketGridSize; this.worldKey = worldKey; this.nextID = 0; this.pockets = new HashMap<>(); diff --git a/src/main/java/org/dimdev/dimdoors/world/pocket/VirtualLocation.java b/src/main/java/org/dimdev/dimdoors/world/pocket/VirtualLocation.java index 91d23817..d2868634 100644 --- a/src/main/java/org/dimdev/dimdoors/world/pocket/VirtualLocation.java +++ b/src/main/java/org/dimdev/dimdoors/world/pocket/VirtualLocation.java @@ -70,7 +70,7 @@ public class VirtualLocation { virtualLocation = null; // TODO: door was placed in a pockets dim but outside of a pockets... } } else if (ModDimensions.isLimboDimension(location.getWorld())) { // TODO: convert to interface on worldprovider - virtualLocation = new VirtualLocation(location.world, location.getX(), location.getZ(), DimensionalDoorsInitializer.CONFIG.getDungeonsConfig().maxDungeonDepth); + virtualLocation = new VirtualLocation(location.world, location.getX(), location.getZ(), DimensionalDoorsInitializer.getConfig().getDungeonsConfig().maxDungeonDepth); } // TODO: nether coordinate transform if (virtualLocation == null) { @@ -86,7 +86,7 @@ public class VirtualLocation { world = world.getServer().getWorld(OVERWORLD); } - float spread = DimensionalDoorsInitializer.CONFIG.getGeneralConfig().depthSpreadFactor * this.depth; + float spread = DimensionalDoorsInitializer.getConfig().getGeneralConfig().depthSpreadFactor * this.depth; int newX = (int) (this.x + spread * 2 * (Math.random() - 0.5)); int newZ = (int) (this.z + spread * 2 * (Math.random() - 0.5)); BlockPos pos = world.getTopPosition(Heightmap.Type.WORLD_SURFACE, new BlockPos(newX, 0, newZ));