This commit is contained in:
dfsek
2021-11-17 16:28:40 -07:00
parent 172006f2f6
commit 3737e3510d
46 changed files with 133 additions and 152 deletions
@@ -7,14 +7,12 @@ import org.bukkit.entity.EntityType;
import java.io.File;
import java.util.Locale;
import java.util.Optional;
import com.dfsek.terra.AbstractPlatform;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.handle.ItemHandle;
import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.bukkit.handles.BukkitItemHandle;
import com.dfsek.terra.bukkit.handles.BukkitWorldHandle;
@@ -83,11 +81,6 @@ public class PlatformImpl extends AbstractPlatform {
return new JavaLogger(plugin.getLogger());
}
@Override
protected Optional<TerraAddon> getPlatformAddon() {
return Optional.of(new BukkitAddon(this));
}
private BukkitBiome parseBiome(String id) throws LoadException {
if(!id.startsWith("minecraft:")) throw new LoadException("Invalid biome identifier " + id);
return new BukkitBiome(org.bukkit.block.Biome.valueOf(id.toUpperCase(Locale.ROOT).substring(10)));
@@ -1,7 +1,5 @@
package com.dfsek.terra.bukkit.listeners;
import com.dfsek.terra.api.Platform;
import org.bukkit.Material;
import org.bukkit.TreeType;
import org.bukkit.block.Block;
@@ -11,6 +9,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.world.StructureGrowEvent;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Tree;
@@ -1,11 +1,11 @@
package com.dfsek.terra.bukkit.listeners;
import com.dfsek.terra.api.Platform;
import io.papermc.paper.event.world.StructureLocateEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.dfsek.terra.api.Platform;
public class PaperListener implements Listener {
private final Platform platform;
@@ -1,7 +1,5 @@
package com.dfsek.terra.bukkit.listeners;
import com.dfsek.terra.api.Platform;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -10,6 +8,8 @@ import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.VillagerAcquireTradeEvent;
import org.bukkit.event.entity.VillagerCareerChangeEvent;
import com.dfsek.terra.api.Platform;
/**
* Listener to load on Spigot servers, contains Villager crash prevention and hacky ender eye redirection.
@@ -1,7 +1,5 @@
package com.dfsek.terra.bukkit.population;
import com.dfsek.terra.api.Platform;
import org.bukkit.generator.BlockPopulator;
import org.jetbrains.annotations.NotNull;
@@ -10,6 +8,7 @@ import java.io.IOException;
import java.util.HashSet;
import java.util.Random;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
@@ -1,12 +1,11 @@
package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.Platform;
import org.bukkit.TreeType;
import java.util.Locale;
import java.util.Random;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.collection.MaterialSet;
@@ -2,10 +2,6 @@ package com.dfsek.terra.fabric;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
import com.dfsek.terra.fabric.util.FabricUtil;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.Identifier;
@@ -14,16 +10,15 @@ import org.apache.logging.log4j.LogManager;
import java.io.File;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import com.dfsek.terra.AbstractPlatform;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.handle.ItemHandle;
import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.util.generic.Lazy;
import com.dfsek.terra.config.lang.LangUtil;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
import com.dfsek.terra.fabric.handle.FabricItemHandle;
import com.dfsek.terra.fabric.handle.FabricWorldHandle;
import com.dfsek.terra.fabric.util.ProtoBiome;
@@ -37,20 +32,20 @@ public class PlatformImpl extends AbstractPlatform {
private final Set<ServerWorld> worlds = new HashSet<>();
public void addWorld(ServerWorld world) {
worlds.add(world);
}
public PlatformImpl() {
load();
}
public void addWorld(ServerWorld world) {
worlds.add(world);
}
@Override
public boolean reload() {
getTerraConfig().load(this);
LangUtil.load(getTerraConfig().getLanguage(), this); // Load language.
boolean succeed = getRawConfigRegistry().loadAll(this);
worlds.forEach(world -> {
FabricChunkGeneratorWrapper chunkGeneratorWrapper = ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator());
chunkGeneratorWrapper.setPack(getConfigRegistry().get(chunkGeneratorWrapper.getPack().getID()));
@@ -60,9 +60,8 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
);
private final long seed;
private ChunkGenerator delegate;
private final TerraBiomeSource biomeSource;
private ChunkGenerator delegate;
private ConfigPack pack;
private ServerWorld world;
@@ -77,14 +76,6 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
this.seed = seed;
}
public void setPack(ConfigPack pack) {
this.pack = pack;
this.delegate = pack.getGeneratorProvider().newInstance(pack);
biomeSource.setPack(pack);
delegate.getPlatform().logger().info("Loading world with config pack " + pack.getID());
}
@Override
protected Codec<? extends net.minecraft.world.gen.chunk.ChunkGenerator> getCodec() {
return CODEC;
@@ -235,6 +226,14 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
return pack;
}
public void setPack(ConfigPack pack) {
this.pack = pack;
this.delegate = pack.getGeneratorProvider().newInstance(pack);
biomeSource.setPack(pack);
delegate.getPlatform().logger().info("Loading world with config pack " + pack.getID());
}
public void setWorld(ServerWorld world) {
this.world = world;
}
@@ -36,10 +36,6 @@ public class TerraBiomeSource extends BiomeSource {
private final long seed;
private ConfigPack pack;
public void setPack(ConfigPack pack) {
this.pack = pack;
}
public TerraBiomeSource(Registry<Biome> biomes, long seed, ConfigPack pack) {
super(biomes.stream()
.filter(biome -> Objects.requireNonNull(biomes.getId(biome))
@@ -51,6 +47,10 @@ public class TerraBiomeSource extends BiomeSource {
this.pack = pack;
}
public void setPack(ConfigPack pack) {
this.pack = pack;
}
@Override
protected Codec<? extends BiomeSource> getCodec() {
return CODEC;
@@ -18,6 +18,7 @@ public class ServerMainMixin {
"Lnet/minecraft/util/registry/DynamicRegistryManager$Impl;"))
private static void injectConstructor(String[] args, CallbackInfo ci) {
FabricEntryPoint.getPlatform().getEventManager().callEvent(
new PlatformInitializationEvent()); // Load during MinecraftServer construction, after other mods have registered blocks and stuff
new PlatformInitializationEvent()); // Load during MinecraftServer construction, after other mods have registered blocks
// and stuff
}
}
@@ -59,7 +59,7 @@ public class DirectWorld implements World {
@Override
public void setBlockData(int x, int y, int z, BlockState data, boolean physics) {
}
@Override
@@ -5,9 +5,9 @@ import org.spongepowered.api.Sponge;
import java.io.File;
import com.dfsek.terra.AbstractPlatform;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.api.handle.ItemHandle;
import com.dfsek.terra.api.handle.WorldHandle;
import com.dfsek.terra.api.util.Logger;
import com.dfsek.terra.sponge.handle.SpongeWorldHandle;