mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-06-19 07:11:02 +00:00
f
This commit is contained in:
@@ -123,18 +123,24 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onWorldInit(WorldInitEvent event) {
|
public void onWorldInit(WorldInitEvent event) {
|
||||||
try {
|
try {
|
||||||
ServerLevel serverLevel = ((CraftWorld)event.getWorld()).getHandle();
|
if(world.name().equals(event.getWorld().getName()) && world.getRawWorldSeed() == event.getWorld().getSeed()) {
|
||||||
Engine engine = getEngine(event.getWorld());
|
ServerLevel serverLevel = ((CraftWorld)event.getWorld()).getHandle();
|
||||||
Class<?> clazz = serverLevel.getChunkSource().chunkMap.generator.getClass();
|
Engine engine = getEngine(event.getWorld());
|
||||||
Field biomeSource = getField(clazz, "c");
|
Class<?> clazz = serverLevel.getChunkSource().chunkMap.generator.getClass();
|
||||||
biomeSource.setAccessible(true);
|
Field biomeSource = getField(clazz, "c");
|
||||||
Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
|
biomeSource.setAccessible(true);
|
||||||
unsafeField.setAccessible(true);
|
Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
|
||||||
Unsafe unsafe = (Unsafe) unsafeField.get(null);
|
unsafeField.setAccessible(true);
|
||||||
CustomBiomeSource customBiomeSource = new CustomBiomeSource(event.getWorld().getSeed(), engine, event.getWorld());
|
Unsafe unsafe = (Unsafe) unsafeField.get(null);
|
||||||
unsafe.putObject(biomeSource.get(serverLevel.getChunkSource().chunkMap.generator), unsafe.objectFieldOffset(biomeSource), customBiomeSource);
|
CustomBiomeSource customBiomeSource = new CustomBiomeSource(event.getWorld().getSeed(), engine, event.getWorld());
|
||||||
biomeSource.set(serverLevel.getChunkSource().chunkMap.generator, customBiomeSource);
|
unsafe.putObject(biomeSource.get(serverLevel.getChunkSource().chunkMap.generator), unsafe.objectFieldOffset(biomeSource), customBiomeSource);
|
||||||
Iris.info("Injected Iris Biome Source into " + event.getWorld().getName());
|
biomeSource.set(serverLevel.getChunkSource().chunkMap.generator, customBiomeSource);
|
||||||
|
Iris.info("Injected Iris Biome Source into " + event.getWorld().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
Iris.info("World " + event.getWorld().getName() + " is not an Iris world in this context");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
catch(Throwable e) {
|
catch(Throwable e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user