mirror of
https://github.com/barkeser2002/CatServer.git
synced 2026-09-25 08:00:02 +03:00
90 lines
4.0 KiB
Diff
90 lines
4.0 KiB
Diff
--- ../src-base/minecraft/net/minecraft/world/WorldServerMulti.java
|
|
+++ ../src-work/minecraft/net/minecraft/world/WorldServerMulti.java
|
|
@@ -7,16 +7,18 @@
|
|
import net.minecraft.world.border.WorldBorder;
|
|
import net.minecraft.world.storage.DerivedWorldInfo;
|
|
import net.minecraft.world.storage.ISaveHandler;
|
|
+import net.minecraft.world.storage.WorldInfo;
|
|
|
|
public class WorldServerMulti extends WorldServer
|
|
{
|
|
private final WorldServer delegate;
|
|
private IBorderListener borderListener;
|
|
|
|
- public WorldServerMulti(MinecraftServer server, ISaveHandler saveHandlerIn, int dimensionId, WorldServer delegate, Profiler profilerIn)
|
|
+ public WorldServerMulti(MinecraftServer server, ISaveHandler saveHandlerIn, int dimensionId, WorldServer delegate, Profiler profilerIn, WorldInfo info, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen)
|
|
{
|
|
- super(server, saveHandlerIn, new DerivedWorldInfo(delegate.getWorldInfo()), dimensionId, profilerIn);
|
|
+ super(server, saveHandlerIn, /*new DerivedWorldInfo(delegate.getWorldInfo())*/ info, dimensionId, profilerIn, env, gen);
|
|
this.delegate = delegate;
|
|
+ this.mapStorage = delegate.mapStorage;
|
|
this.borderListener = new IBorderListener()
|
|
{
|
|
public void onSizeChanged(WorldBorder border, double newSize)
|
|
@@ -50,11 +52,55 @@
|
|
};
|
|
this.delegate.getWorldBorder().addListener(this.borderListener);
|
|
}
|
|
+ public WorldServerMulti(MinecraftServer server, ISaveHandler saveHandlerIn, int dimensionId, WorldServer delegate, Profiler profilerIn, WorldInfo info)
|
|
+ {
|
|
+ super(server, saveHandlerIn, info, dimensionId, profilerIn);
|
|
+ this.delegate = delegate;
|
|
+ this.mapStorage = delegate.mapStorage;
|
|
+ this.worldScoreboard = delegate.getScoreboard();
|
|
+ this.worldInfo = new DerivedWorldInfo(delegate.getWorldInfo());
|
|
+ this.borderListener = new IBorderListener()
|
|
+ {
|
|
+ public void onSizeChanged(WorldBorder border, double newSize)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setTransition(newSize);
|
|
+ }
|
|
+ public void onTransitionStarted(WorldBorder border, double oldSize, double newSize, long time)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setTransition(oldSize, newSize, time);
|
|
+ }
|
|
+ public void onCenterChanged(WorldBorder border, double x, double z)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setCenter(x, z);
|
|
+ }
|
|
+ public void onWarningTimeChanged(WorldBorder border, int newTime)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setWarningTime(newTime);
|
|
+ }
|
|
+ public void onWarningDistanceChanged(WorldBorder border, int newDistance)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setWarningDistance(newDistance);
|
|
+ }
|
|
+ public void onDamageAmountChanged(WorldBorder border, double newAmount)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setDamageAmount(newAmount);
|
|
+ }
|
|
+ public void onDamageBufferChanged(WorldBorder border, double newSize)
|
|
+ {
|
|
+ WorldServerMulti.this.getWorldBorder().setDamageBuffer(newSize);
|
|
+ }
|
|
+ };
|
|
+ this.delegate.getWorldBorder().addListener(this.borderListener);
|
|
+ }
|
|
|
|
- protected void saveLevel() throws MinecraftException
|
|
+ /* we handle all saving including perWorldStorage in WorldServer.saveLevel. This needs to be disabled since we follow
|
|
+ // bukkit's world saving methods by using a seperate save handler for each world. Each world folder needs to generate a corresponding
|
|
+ // level.dat for plugins that require it such as MultiWorld.
|
|
+ public void saveLevel() throws MinecraftException
|
|
{
|
|
this.perWorldStorage.saveAllData();
|
|
}
|
|
+ */
|
|
|
|
public World init()
|
|
{
|
|
@@ -76,7 +122,7 @@
|
|
}
|
|
|
|
this.initCapabilities();
|
|
- return this;
|
|
+ return super.init();
|
|
}
|
|
|
|
|