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;
|
package org.embeddedt.modernfix.testing.util;
|
||||||
|
|
||||||
import net.minecraft.DetectedVersion;
|
import net.minecraft.DetectedVersion;
|
||||||
|
import net.minecraft.core.MappedRegistry;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.server.Bootstrap;
|
import net.minecraft.server.Bootstrap;
|
||||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||||
import org.junit.jupiter.api.extension.Extension;
|
import org.junit.jupiter.api.extension.Extension;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
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.
|
* 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 {
|
public void beforeAll(ExtensionContext context) throws Exception {
|
||||||
DetectedVersion.tryDetectVersion();
|
DetectedVersion.tryDetectVersion();
|
||||||
Bootstrap.bootStrap();
|
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
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user