reconnect players on dimension type registry change

This commit is contained in:
Julian Krings
2024-09-06 14:58:09 +02:00
parent 613575c0c5
commit c98ed48ee2
12 changed files with 877 additions and 56 deletions

View File

@@ -832,6 +832,7 @@ public class Iris extends VolmitPlugin implements Listener {
if (!INMS.get().registerDimension(worldName, dim)) {
throw new IllegalStateException("Unable to register dimension " + dim.getName());
}
INMS.get().reconnectAll();
return new BukkitChunkGenerator(w, false, ff, dim.getLoadKey());
}

View File

@@ -36,6 +36,7 @@ import org.bukkit.block.Biome;
import org.bukkit.entity.Dolphin;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.structure.Structure;
@@ -43,6 +44,8 @@ import org.bukkit.inventory.ItemStack;
import java.io.File;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Collection;
public interface INMSBinding {
boolean hasTile(Material material);
@@ -147,4 +150,11 @@ public interface INMSBinding {
IPackRepository getPackRepository();
KList<String> getStructureKeys();
default void reconnectAll() {
new ArrayList<>(Bukkit.getOnlinePlayers())
.forEach(this::reconnect);
}
void reconnect(Player player);
}

View File

@@ -45,6 +45,7 @@ import org.bukkit.block.Biome;
import org.bukkit.entity.Dolphin;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.structure.Structure;
@@ -145,6 +146,11 @@ public class NMSBinding1X implements INMSBinding {
return new KList<>(list);
}
@Override
public void reconnect(Player player) {
}
@Override
public CompoundTag serializeEntity(Entity location) {
return null;

View File

@@ -83,6 +83,7 @@ public class IrisWorldCreator {
if (!INMS.get().registerDimension(name, dim)) {
throw new IllegalStateException("Unable to register dimension " + dim.getName());
}
INMS.get().reconnectAll();
return new WorldCreator(name)
.environment(findEnvironment())