Unfreeze block registry ourselves in tests
This commit is contained in:
parent
6a365be734
commit
6f4212ebc8
|
|
@ -1,12 +1,17 @@
|
|||
package org.embeddedt.modernfix.testing.util;
|
||||
|
||||
import net.minecraft.DetectedVersion;
|
||||
import net.minecraft.core.MappedRegistry;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.server.Bootstrap;
|
||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||
import org.junit.jupiter.api.extension.Extension;
|
||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.IdentityHashMap;
|
||||
|
||||
/**
|
||||
* Simple extension to run vanilla bootstrap, inspired by AE2.
|
||||
*/
|
||||
|
|
@ -15,6 +20,15 @@ public class BootstrapMinecraftExtension implements Extension, BeforeAllCallback
|
|||
public void beforeAll(ExtensionContext context) throws Exception {
|
||||
DetectedVersion.tryDetectVersion();
|
||||
Bootstrap.bootStrap();
|
||||
// Allow blocks to be created in tests
|
||||
Field field = MappedRegistry.class.getDeclaredField("unregisteredIntrusiveHolders");
|
||||
field.setAccessible(true);
|
||||
if(field.get(BuiltInRegistries.BLOCK) == null) {
|
||||
field.set(BuiltInRegistries.BLOCK, new IdentityHashMap<>());
|
||||
field = MappedRegistry.class.getDeclaredField("frozen");
|
||||
field.setAccessible(true);
|
||||
field.setBoolean(BuiltInRegistries.BLOCK, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user