Skip to content

Commit ea1be25

Browse files
committed
change: delay loading dynamic dimensions until all normal dimensions are loaded
1 parent d1408c0 commit ea1be25

File tree

4 files changed

+8
-11
lines changed

4 files changed

+8
-11
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ DimensionType type;
6969
// ... initialize chunk generator and dimension type ...
7070

7171
DynamicDimensionRegistry registry = DynamicDimensionRegistry.from(server);
72-
ServerLevel level = registry.createDynamicDimension(new ResourceLocation("mymod", "dynamic"), generator, type);
72+
ServerLevel level = registry.createDynamicDimension(ResourceLocation.fromNamespaceAndPath("mymod", "dynamic"), generator, type);
7373

7474
if (level == null) {
7575
// failed to create level
@@ -98,7 +98,7 @@ DimensionType type;
9898
// ... initialize chunk generator and dimension type ...
9999

100100
DynamicDimensionRegistry registry = DynamicDimensionRegistry.from(server);
101-
ServerLevel level = registry.loadDynamicDimension(new ResourceLocation("mymod", "dynamic"), generator, type);
101+
ServerLevel level = registry.loadDynamicDimension(ResourceLocation.fromNamespaceAndPath("mymod", "dynamic"), generator, type);
102102

103103
if (level == null) {
104104
// failed to create level
@@ -118,7 +118,7 @@ Call
118118
with the ID of your dimension and (optionally) a callback to move connected players off-world.
119119
```java
120120
DynamicDimensionRegistry registry = DynamicDimensionRegistry.from(server);
121-
registry.unloadDynamicDimension(new ResourceLocation("mymod", "dynamic"), null);
121+
registry.unloadDynamicDimension(ResourceLocation.fromNamespaceAndPath("mymod", "dynamic"), null);
122122
```
123123
The dimension will be saved to disk before being unloaded. You can use
124124
`loadDynamicDimension`
@@ -133,7 +133,7 @@ Call
133133
with the ID of your dimension and (optionally) a callback to move connected players off-world.
134134
```java
135135
DynamicDimensionRegistry registry = DynamicDimensionRegistry.from(server);
136-
registry.deleteDynamicDimension(new ResourceLocation("mymod", "dynamic"), null);
136+
registry.deleteDynamicDimension(ResourceLocation.fromNamespaceAndPath("mymod", "dynamic"), null);
137137
```
138138
The dimension will be unloaded, then all the dimension files will be deleted.
139139

common/src/main/java/dev/galacticraft/dynamicdimensions/api/event/DynamicDimensionLoadCallback.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.jetbrains.annotations.NotNull;
3232

3333
/**
34-
* Called when a dynamic dimension is added.
34+
* Called when dynamic dimensions should be loaded from the server.
3535
*
3636
* @since 0.5.0
3737
*/

common/src/main/java/dev/galacticraft/dynamicdimensions/impl/mixin/MinecraftServerMixin.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
import dev.galacticraft.dynamicdimensions.impl.internal.DimensionRemovalTicket;
3636
import dev.galacticraft.dynamicdimensions.impl.network.S2CPackets;
3737
import dev.galacticraft.dynamicdimensions.impl.registry.RegistryUtil;
38-
import io.netty.buffer.Unpooled;
39-
import lol.bai.badpackets.api.PacketSender;
4038
import net.minecraft.core.Holder;
4139
import net.minecraft.core.LayeredRegistryAccess;
4240
import net.minecraft.core.Registry;
@@ -45,7 +43,6 @@
4543
import net.minecraft.nbt.CompoundTag;
4644
import net.minecraft.nbt.NbtOps;
4745
import net.minecraft.nbt.Tag;
48-
import net.minecraft.network.FriendlyByteBuf;
4946
import net.minecraft.network.protocol.common.ClientboundUpdateTagsPacket;
5047
import net.minecraft.resources.ResourceKey;
5148
import net.minecraft.resources.ResourceLocation;
@@ -205,7 +202,7 @@ private void registerLevel(ServerLevel level) {
205202
level.tick(() -> true);
206203
}
207204

208-
@Inject(method = "tickChildren", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/ServerFunctionManager;tick()V", shift = At.Shift.AFTER))
205+
@Inject(method = "tickChildren", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;getAllLevels()Ljava/lang/Iterable;", shift = At.Shift.BEFORE))
209206
private void markTickingLevels(BooleanSupplier booleanSupplier, CallbackInfo ci) {
210207
this.tickingLevels = true;
211208
}
@@ -215,7 +212,7 @@ private void markNotTickingLevels(BooleanSupplier booleanSupplier, CallbackInfo
215212
this.tickingLevels = false;
216213
}
217214

218-
@Inject(method = "createLevels", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/Registry;entrySet()Ljava/util/Set;", shift = At.Shift.BEFORE))
215+
@Inject(method = "createLevels", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/border/WorldBorder;applySettings(Lnet/minecraft/world/level/border/WorldBorder$Settings;)V", shift = At.Shift.BEFORE))
219216
private void loadDynamicDimensions(CallbackInfo ci) {
220217
final Registry<DimensionType> typeRegistry = this.registryAccess().registryOrThrow(Registries.DIMENSION_TYPE);
221218
final Registry<LevelStem> stemRegistry = this.registries().compositeAccess().registryOrThrow(Registries.LEVEL_STEM);

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ mod.id=dynamicdimensions
66
mod.name=Dynamic Dimensions
77
mod.description=Library to facilitate the runtime addition and removal of Minecraft dimensions.
88
mod.license=MIT
9-
mod.version=0.7.0
9+
mod.version=0.8.0
1010

1111
# Loader dependencies
1212
minecraft.version=1.21

0 commit comments

Comments
 (0)