All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.craftbukkit.CraftWorldBorder Maven / Gradle / Ivy

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().getWorldBorder();
  }

  @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.getSize();
  }

  @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.transitionSizeBetween(this.handle.getSize(), newSize, time * 1000L);
    } else {
      this.handle.setSize(newSize);
    }
  }

  @Override
  public Location getCenter() {
    double x = this.handle.getCenterX();
    double z = this.handle.getCenterZ();

    return new Location(this.world, x, 0, z);
  }

  @Override
  public void setCenter(Location location) {
    this.setCenter(location.getX(), location.getZ());
  }

  @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.setCenter(x, z);
  }

  @Override
  public double getDamageBuffer() {
    return this.handle.getDamageBuffer();
  }

  @Override
  public void setDamageBuffer(double blocks) {
    this.handle.setDamageBuffer(blocks);
  }

  @Override
  public double getDamageAmount() {
    return this.handle.getDamageAmount();
  }

  @Override
  public void setDamageAmount(double damage) {
    this.handle.setDamageAmount(damage);
  }

  @Override
  public int getWarningTime() {
    return this.handle.getWarningTime();
  }

  @Override
  public void setWarningTime(int time) {
    this.handle.setWarningTime(time);
  }

  @Override
  public int getWarningDistance() {
    return this.handle.getWarningDistance();
  }

  @Override
  public void setWarningDistance(int distance) {
    this.handle.setWarningDistance(distance);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy