mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-25 09:34:44 +01:00
Implement WorldBorder API
By: TheCutter <info@thecutter.net>
This commit is contained in:
parent
98f24029bb
commit
e08cf83757
2 changed files with 122 additions and 0 deletions
|
@ -22,6 +22,7 @@ import org.bukkit.Location;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.TreeType;
|
import org.bukkit.TreeType;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.WorldBorder;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
@ -56,6 +57,7 @@ public class CraftWorld implements World {
|
||||||
public static final int CUSTOM_DIMENSION_OFFSET = 10;
|
public static final int CUSTOM_DIMENSION_OFFSET = 10;
|
||||||
|
|
||||||
private final WorldServer world;
|
private final WorldServer world;
|
||||||
|
private WorldBorder worldBorder;
|
||||||
private Environment environment;
|
private Environment environment;
|
||||||
private final CraftServer server = (CraftServer) Bukkit.getServer();
|
private final CraftServer server = (CraftServer) Bukkit.getServer();
|
||||||
private final ChunkGenerator generator;
|
private final ChunkGenerator generator;
|
||||||
|
@ -1282,6 +1284,15 @@ public class CraftWorld implements World {
|
||||||
return getHandle().getGameRules().contains(rule);
|
return getHandle().getGameRules().contains(rule);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorldBorder getWorldBorder() {
|
||||||
|
if (this.worldBorder == null) {
|
||||||
|
this.worldBorder = new CraftWorldBorder(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.worldBorder;
|
||||||
|
}
|
||||||
|
|
||||||
public void processChunkGC() {
|
public void processChunkGC() {
|
||||||
chunkGCTickCount++;
|
chunkGCTickCount++;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
package org.bukkit.craftbukkit;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.WorldBorder;
|
||||||
|
|
||||||
|
public class CraftWorldBorder implements WorldBorder {
|
||||||
|
|
||||||
|
private final World world;
|
||||||
|
private final net.minecraft.server.WorldBorder handle;
|
||||||
|
|
||||||
|
public CraftWorldBorder(CraftWorld world) {
|
||||||
|
this.world = world;
|
||||||
|
this.handle = world.getHandle().af(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reset() {
|
||||||
|
this.setSize(6.0E7D);
|
||||||
|
this.setDamageAmount(0.2D);
|
||||||
|
this.setDamageBuffer(5.0D);
|
||||||
|
this.setWarningDistance(5);
|
||||||
|
this.setWarningTime(15);
|
||||||
|
this.setCenter(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getSize() {
|
||||||
|
return this.handle.h(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSize(double newSize) {
|
||||||
|
this.setSize(newSize, 0L);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSize(double newSize, long time) {
|
||||||
|
// PAIL: TODO: Magic Values
|
||||||
|
newSize = Math.min(6.0E7D, Math.max(1.0D, newSize));
|
||||||
|
time = Math.min(9223372036854775L, Math.max(0L, time));
|
||||||
|
|
||||||
|
if (time > 0L) {
|
||||||
|
this.handle.a(this.handle.h(), newSize, time * 1000L); // PAIL: Rename
|
||||||
|
} else {
|
||||||
|
this.handle.a(newSize); // PAIL: Rename
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getCenter() {
|
||||||
|
double x = this.handle.f(); // PAIL: Rename
|
||||||
|
double z = this.handle.g(); // PAIL: Rename
|
||||||
|
|
||||||
|
return new Location(this.world, x, 0, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCenter(double x, double z) {
|
||||||
|
// PAIL: TODO: Magic Values
|
||||||
|
x = Math.min(3.0E7D, Math.max(-3.0E7D, x));
|
||||||
|
z = Math.min(3.0E7D, Math.max(-3.0E7D, z));
|
||||||
|
|
||||||
|
this.handle.c(x, z); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCenter(Location location) {
|
||||||
|
this.setCenter(location.getX(), location.getZ());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDamageBuffer() {
|
||||||
|
return this.handle.m(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDamageBuffer(double blocks) {
|
||||||
|
this.handle.b(blocks); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDamageAmount() {
|
||||||
|
return this.handle.n(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDamageAmount(double damage) {
|
||||||
|
this.handle.c(damage); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getWarningTime() {
|
||||||
|
return this.handle.p(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWarningTime(int time) {
|
||||||
|
this.handle.b(time); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getWarningDistance() {
|
||||||
|
return this.handle.q(); // PAIL: Rename
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setWarningDistance(int distance) {
|
||||||
|
this.handle.c(distance); // PAIL: Rename
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue