Revert "New API to hook into level loading"
This reverts commit a489655ddd
.
This commit is contained in:
parent
e4ca217170
commit
bf8368b515
2 changed files with 0 additions and 125 deletions
|
@ -1,121 +0,0 @@
|
||||||
package ru.bclib.api;
|
|
||||||
|
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.resources.ResourceKey;
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
|
||||||
import net.minecraft.server.level.ServerLevel;
|
|
||||||
import net.minecraft.server.level.progress.ChunkProgressListener;
|
|
||||||
import net.minecraft.world.level.CustomSpawner;
|
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.level.biome.Biome;
|
|
||||||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
|
||||||
import net.minecraft.world.level.dimension.DimensionType;
|
|
||||||
import net.minecraft.world.level.storage.LevelStorageSource;
|
|
||||||
import net.minecraft.world.level.storage.LevelStorageSource.LevelStorageAccess;
|
|
||||||
import net.minecraft.world.level.storage.ServerLevelData;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* provides some lifetime hooks for a Minecraft instance
|
|
||||||
*/
|
|
||||||
public class LifeCycleAPI {
|
|
||||||
private final static List<LevelLoadBiomesCall> onLoadLevelBiomes = new ArrayList<>(2);
|
|
||||||
private final static List<LevelLoadCall> onLoadLevel = new ArrayList<>(2);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A callback function that is used for each new ServerLevel instance
|
|
||||||
*/
|
|
||||||
public interface LevelLoadBiomesCall {
|
|
||||||
void onLoad(ServerLevel world, long seed, Registry<Biome> registry);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A callback function that is used for each new ServerLevel instance
|
|
||||||
*/
|
|
||||||
public interface LevelLoadCall {
|
|
||||||
void onLoad(
|
|
||||||
ServerLevel world,
|
|
||||||
MinecraftServer minecraftServer,
|
|
||||||
Executor executor,
|
|
||||||
LevelStorageSource.LevelStorageAccess levelStorageAccess,
|
|
||||||
ServerLevelData serverLevelData,
|
|
||||||
ResourceKey<Level> resourceKey,
|
|
||||||
DimensionType dimensionType,
|
|
||||||
ChunkProgressListener chunkProgressListener,
|
|
||||||
ChunkGenerator chunkGenerator,
|
|
||||||
boolean bl,
|
|
||||||
long l,
|
|
||||||
List<CustomSpawner> list,
|
|
||||||
boolean bl2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a callback that is called when a new {@code ServerLevel is instantiated}.
|
|
||||||
* This callback will receive the world seed as well as it's biome registry.
|
|
||||||
* @param call The calbback Method
|
|
||||||
*/
|
|
||||||
public static void onLevelLoad(LevelLoadBiomesCall call){
|
|
||||||
onLoadLevelBiomes.add(call);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a callback that is called when a new {@code ServerLevel is instantiated}.
|
|
||||||
* This callbacl will receiv all parameters that were passed to the ServerLevel's constructor
|
|
||||||
* @param call The calbback Method
|
|
||||||
*/
|
|
||||||
public static void onLevelLoad(LevelLoadCall call){
|
|
||||||
onLoadLevel.add(call);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* For internal use, You should not call this method!
|
|
||||||
* @param minecraftServer
|
|
||||||
* @param executor
|
|
||||||
* @param levelStorageAccess
|
|
||||||
* @param serverLevelData
|
|
||||||
* @param resourceKey
|
|
||||||
* @param dimensionType
|
|
||||||
* @param chunkProgressListener
|
|
||||||
* @param chunkGenerator
|
|
||||||
* @param bl
|
|
||||||
* @param l
|
|
||||||
* @param list
|
|
||||||
* @param bl2
|
|
||||||
*/
|
|
||||||
public static void _onLevelLoad(ServerLevel world,
|
|
||||||
MinecraftServer minecraftServer,
|
|
||||||
Executor executor,
|
|
||||||
LevelStorageSource.LevelStorageAccess levelStorageAccess,
|
|
||||||
ServerLevelData serverLevelData,
|
|
||||||
ResourceKey<Level> resourceKey,
|
|
||||||
DimensionType dimensionType,
|
|
||||||
ChunkProgressListener chunkProgressListener,
|
|
||||||
ChunkGenerator chunkGenerator,
|
|
||||||
boolean bl,
|
|
||||||
long l,
|
|
||||||
List<CustomSpawner> list,
|
|
||||||
boolean bl2){
|
|
||||||
onLoadLevel.forEach(c -> c.onLoad(
|
|
||||||
world,
|
|
||||||
minecraftServer,
|
|
||||||
executor,
|
|
||||||
levelStorageAccess,
|
|
||||||
serverLevelData,
|
|
||||||
resourceKey,
|
|
||||||
dimensionType,
|
|
||||||
chunkProgressListener,
|
|
||||||
chunkGenerator,
|
|
||||||
bl,
|
|
||||||
l,
|
|
||||||
list,
|
|
||||||
bl2)
|
|
||||||
);
|
|
||||||
|
|
||||||
final long seed = world.getSeed();
|
|
||||||
final Registry<Biome> biomeRegistry = world.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY);
|
|
||||||
onLoadLevelBiomes.forEach(c -> c.onLoad(world, seed, biomeRegistry));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -17,7 +17,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import ru.bclib.api.BiomeAPI;
|
import ru.bclib.api.BiomeAPI;
|
||||||
import ru.bclib.api.LifeCycleAPI;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
@ -41,8 +40,5 @@ public abstract class ServerLevelMixin extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
bclib_lastWorld = session.getLevelId();
|
bclib_lastWorld = session.getLevelId();
|
||||||
|
|
||||||
ServerLevel world = ServerLevel.class.cast(this);
|
|
||||||
LifeCycleAPI._onLevelLoad(world, server, workerExecutor, session, properties, registryKey, dimensionType, worldGenerationProgressListener, chunkGenerator, debugWorld, l, list, bl);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue