Skip to content

Commit b0e0d44

Browse files
committed
Another fix to registration flow
Hopefully this is the last one...
1 parent c2e1802 commit b0e0d44

File tree

2 files changed

+6
-29
lines changed

2 files changed

+6
-29
lines changed

src/mod/java/dev/su5ed/sinytra/connector/mod/mixin/registries/BootstrapMixin.java

-15
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,13 @@
1616

1717
package dev.su5ed.sinytra.connector.mod.mixin.registries;
1818

19-
import net.minecraft.core.MappedRegistry;
20-
import net.minecraft.core.Registry;
21-
import net.minecraft.core.registries.BuiltInRegistries;
2219
import net.minecraft.server.Bootstrap;
2320
import org.spongepowered.asm.mixin.Mixin;
2421
import org.spongepowered.asm.mixin.injection.At;
25-
import org.spongepowered.asm.mixin.injection.Inject;
2622
import org.spongepowered.asm.mixin.injection.Redirect;
27-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2823

2924
@Mixin(Bootstrap.class)
3025
public abstract class BootstrapMixin {
31-
@Inject(method = "bootStrap", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/registries/BuiltInRegistries;bootStrap()V", shift = At.Shift.AFTER))
32-
private static void initialize(CallbackInfo ci) {
33-
// Unfreeze registries
34-
// We let the get frozen first as some forge mods may rely on registering their contents in the BuiltInRegistries.freeze() method
35-
((MappedRegistry<?>) BuiltInRegistries.REGISTRY).unfreeze();
36-
for (Registry<?> registry : BuiltInRegistries.REGISTRY) {
37-
((MappedRegistry<?>) registry).unfreeze();
38-
}
39-
}
40-
4126
@Redirect(method = "bootStrap", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/registries/GameData;vanillaSnapshot()V", remap = false))
4227
private static void skipVanillaSnapshot() {
4328
// Don't lock registries just yet
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
11
package dev.su5ed.sinytra.connector.mod.mixin.registries;
22

3+
import net.minecraft.core.Registry;
34
import net.minecraft.core.registries.BuiltInRegistries;
45
import org.spongepowered.asm.mixin.Mixin;
5-
import org.spongepowered.asm.mixin.Unique;
66
import org.spongepowered.asm.mixin.injection.At;
7-
import org.spongepowered.asm.mixin.injection.Inject;
8-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
7+
import org.spongepowered.asm.mixin.injection.Redirect;
98

109
@Mixin(BuiltInRegistries.class)
11-
public class BuiltInRegistriesMixin {
12-
@Unique
13-
private static boolean hasInitialised = false;
14-
15-
@Inject(method = "createContents", at = @At("HEAD"), cancellable = true)
16-
private static void init(CallbackInfo ci) {
17-
if (hasInitialised) {
18-
ci.cancel();
19-
}
20-
21-
hasInitialised = true;
10+
public abstract class BuiltInRegistriesMixin {
11+
@Redirect(method = "freeze", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/Registry;freeze()Lnet/minecraft/core/Registry;"))
12+
private static Registry<?> init(Registry<?> instance) {
13+
return instance;
2214
}
2315
}

0 commit comments

Comments
 (0)