mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Finalize immutable locations and add a platform world implementation
This commit is contained in:
parent
cf1b027db9
commit
5341015cb1
@ -50,6 +50,7 @@ import com.plotsquared.bukkit.util.BukkitRegionManager;
|
|||||||
import com.plotsquared.bukkit.util.BukkitSetupUtils;
|
import com.plotsquared.bukkit.util.BukkitSetupUtils;
|
||||||
import com.plotsquared.bukkit.util.BukkitTaskManager;
|
import com.plotsquared.bukkit.util.BukkitTaskManager;
|
||||||
import com.plotsquared.bukkit.util.BukkitUtil;
|
import com.plotsquared.bukkit.util.BukkitUtil;
|
||||||
|
import com.plotsquared.bukkit.util.BukkitWorld;
|
||||||
import com.plotsquared.bukkit.util.SetGenCB;
|
import com.plotsquared.bukkit.util.SetGenCB;
|
||||||
import com.plotsquared.bukkit.util.UpdateUtility;
|
import com.plotsquared.bukkit.util.UpdateUtility;
|
||||||
import com.plotsquared.bukkit.uuid.BungeePermsUUIDService;
|
import com.plotsquared.bukkit.uuid.BungeePermsUUIDService;
|
||||||
@ -1168,4 +1169,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
|||||||
return this.playerManager;
|
return this.playerManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override @NotNull public com.plotsquared.core.location.World<?> getPlatformWorld(@NotNull final String worldName) {
|
||||||
|
return BukkitWorld.of(worldName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -150,23 +150,23 @@ public class ChunkListener implements Listener {
|
|||||||
int z = chunkZ << 4;
|
int z = chunkZ << 4;
|
||||||
int x2 = x + 15;
|
int x2 = x + 15;
|
||||||
int z2 = z + 15;
|
int z2 = z + 15;
|
||||||
Plot plot = new Location(world, x, 1, z).getOwnedPlotAbs();
|
Plot plot = Location.at(world, x, 1, z).getOwnedPlotAbs();
|
||||||
if (plot != null && plot.hasOwner()) {
|
if (plot != null && plot.hasOwner()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
plot = new Location(world, x2, 1, z2).getOwnedPlotAbs();
|
plot = Location.at(world, x2, 1, z2).getOwnedPlotAbs();
|
||||||
if (plot != null && plot.hasOwner()) {
|
if (plot != null && plot.hasOwner()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
plot = new Location(world, x2, 1, z).getOwnedPlotAbs();
|
plot = Location.at(world, x2, 1, z).getOwnedPlotAbs();
|
||||||
if (plot != null && plot.hasOwner()) {
|
if (plot != null && plot.hasOwner()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
plot = new Location(world, x, 1, z2).getOwnedPlotAbs();
|
plot = Location.at(world, x, 1, z2).getOwnedPlotAbs();
|
||||||
if (plot != null && plot.hasOwner()) {
|
if (plot != null && plot.hasOwner()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
plot = new Location(world, x + 7, 1, z + 7).getOwnedPlotAbs();
|
plot = Location.at(world, x + 7, 1, z + 7).getOwnedPlotAbs();
|
||||||
return plot != null && plot.hasOwner();
|
return plot != null && plot.hasOwner();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,7 +305,7 @@ public class PaperListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location location = BukkitUtil.getLocation(entity);
|
Location location = BukkitUtil.getLocation(entity);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlotPlayer<?> pp = BukkitUtil.getPlayer((Player) shooter);
|
PlotPlayer<?> pp = BukkitUtil.getPlayer((Player) shooter);
|
||||||
|
@ -256,7 +256,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
|
|
||||||
for (final PlotPlayer<?> player : PlotSquared.platform().getPlayerManager().getPlayers()) {
|
for (final PlotPlayer<?> player : PlotSquared.platform().getPlayerManager().getPlayers()) {
|
||||||
Location location = player.getLocation();
|
Location location = player.getLocation();
|
||||||
if (location.getWorld().equals(world)) {
|
if (location.getWorldName().equals(world)) {
|
||||||
if (16 * Math.abs(location.getX() - x) / 16 > distance
|
if (16 * Math.abs(location.getX() - x) / 16 > distance
|
||||||
|| 16 * Math.abs(location.getZ() - z) / 16 > distance) {
|
|| 16 * Math.abs(location.getZ() - z) / 16 > distance) {
|
||||||
continue;
|
continue;
|
||||||
@ -455,16 +455,16 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
}
|
}
|
||||||
switch (piston.getFacing()) {
|
switch (piston.getFacing()) {
|
||||||
case EAST:
|
case EAST:
|
||||||
location.setX(location.getX() + 1);
|
location = location.add(1, 0, 0);
|
||||||
break;
|
break;
|
||||||
case SOUTH:
|
case SOUTH:
|
||||||
location.setX(location.getX() - 1);
|
location = location.add(-1, 0, 0);
|
||||||
break;
|
break;
|
||||||
case WEST:
|
case WEST:
|
||||||
location.setZ(location.getZ() + 1);
|
location = location.add(0, 0, 1);
|
||||||
break;
|
break;
|
||||||
case NORTH:
|
case NORTH:
|
||||||
location.setZ(location.getZ() - 1);
|
location = location.add(0, 0, -1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Plot newPlot = area.getOwnedPlotAbs(location);
|
Plot newPlot = area.getOwnedPlotAbs(location);
|
||||||
@ -490,7 +490,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location location = BukkitUtil.getLocation(entity);
|
Location location = BukkitUtil.getLocation(entity);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlotPlayer<Player> pp = BukkitUtil.getPlayer((Player) shooter);
|
PlotPlayer<Player> pp = BukkitUtil.getPlayer((Player) shooter);
|
||||||
@ -504,7 +504,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
@EventHandler public boolean onProjectileHit(ProjectileHitEvent event) {
|
@EventHandler public boolean onProjectileHit(ProjectileHitEvent event) {
|
||||||
Projectile entity = event.getEntity();
|
Projectile entity = event.getEntity();
|
||||||
Location location = BukkitUtil.getLocation(entity);
|
Location location = BukkitUtil.getLocation(entity);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
@ -1078,7 +1078,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
boolean plotArea = location.isPlotArea();
|
boolean plotArea = location.isPlotArea();
|
||||||
if (!plotArea) {
|
if (!plotArea) {
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -1505,7 +1505,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
Vector relative = new Vector(face.getModX(), face.getModY(), face.getModZ());
|
Vector relative = new Vector(face.getModX(), face.getModY(), face.getModZ());
|
||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (Block block1 : event.getBlocks()) {
|
for (Block block1 : event.getBlocks()) {
|
||||||
@ -1542,7 +1542,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
Location location = BukkitUtil.getLocation(block.getLocation());
|
Location location = BukkitUtil.getLocation(block.getLocation());
|
||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.pistonBlocks) {
|
if (this.pistonBlocks) {
|
||||||
@ -1840,7 +1840,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
public void onPotionSplash(LingeringPotionSplashEvent event) {
|
public void onPotionSplash(LingeringPotionSplashEvent event) {
|
||||||
Projectile entity = event.getEntity();
|
Projectile entity = event.getEntity();
|
||||||
Location location = BukkitUtil.getLocation(entity);
|
Location location = BukkitUtil.getLocation(entity);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.onProjectileHit(event)) {
|
if (!this.onProjectileHit(event)) {
|
||||||
@ -1907,7 +1907,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
public void onBigBoom(BlockExplodeEvent event) {
|
public void onBigBoom(BlockExplodeEvent event) {
|
||||||
Block block = event.getBlock();
|
Block block = event.getBlock();
|
||||||
Location location = BukkitUtil.getLocation(block.getLocation());
|
Location location = BukkitUtil.getLocation(block.getLocation());
|
||||||
String world = location.getWorld();
|
String world = location.getWorldName();
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2707,7 +2707,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
public void onPotionSplash(PotionSplashEvent event) {
|
public void onPotionSplash(PotionSplashEvent event) {
|
||||||
ThrownPotion damager = event.getPotion();
|
ThrownPotion damager = event.getPotion();
|
||||||
Location location = BukkitUtil.getLocation(damager);
|
Location location = BukkitUtil.getLocation(damager);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@ -2737,7 +2737,7 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
|
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
|
||||||
Entity damager = event.getDamager();
|
Entity damager = event.getDamager();
|
||||||
Location location = BukkitUtil.getLocation(damager);
|
Location location = BukkitUtil.getLocation(damager);
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorld())) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Entity victim = event.getEntity();
|
Entity victim = event.getEntity();
|
||||||
|
@ -241,7 +241,7 @@ public class BukkitPlayer extends PlotPlayer<Player> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final org.bukkit.Location bukkitLocation =
|
final org.bukkit.Location bukkitLocation =
|
||||||
new org.bukkit.Location(BukkitUtil.getWorld(location.getWorld()), location.getX() + 0.5,
|
new org.bukkit.Location(BukkitUtil.getWorld(location.getWorldName()), location.getX() + 0.5,
|
||||||
location.getY(), location.getZ() + 0.5, location.getYaw(), location.getPitch());
|
location.getY(), location.getZ() + 0.5, location.getYaw(), location.getPitch());
|
||||||
PaperLib.teleportAsync(player, bukkitLocation, getTeleportCause(cause));
|
PaperLib.teleportAsync(player, bukkitLocation, getTeleportCause(cause));
|
||||||
}
|
}
|
||||||
@ -259,7 +259,7 @@ public class BukkitPlayer extends PlotPlayer<Player> {
|
|||||||
|
|
||||||
@Override public void setCompassTarget(Location location) {
|
@Override public void setCompassTarget(Location location) {
|
||||||
this.player.setCompassTarget(
|
this.player.setCompassTarget(
|
||||||
new org.bukkit.Location(BukkitUtil.getWorld(location.getWorld()), location.getX(),
|
new org.bukkit.Location(BukkitUtil.getWorld(location.getWorldName()), location.getX(),
|
||||||
location.getY(), location.getZ()));
|
location.getY(), location.getZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public class GenChunk extends ScopedLocalBlockQueue {
|
|||||||
@Getter @Setter private ChunkData chunkData = null;
|
@Getter @Setter private ChunkData chunkData = null;
|
||||||
|
|
||||||
public GenChunk() {
|
public GenChunk() {
|
||||||
super(null, new Location(null, 0, 0, 0), new Location(null, 15, 255, 15));
|
super(null, Location.at("", 0, 0, 0), Location.at("", 15, 255, 15));
|
||||||
this.biomes = Biome.values();
|
this.biomes = Biome.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,11 +196,11 @@ public class GenChunk extends ScopedLocalBlockQueue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getMax() {
|
@Override public Location getMax() {
|
||||||
return new Location(getWorld(), 15 + (getX() << 4), 255, 15 + (getZ() << 4));
|
return Location.at(getWorld(), 15 + (getX() << 4), 255, 15 + (getZ() << 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getMin() {
|
@Override public Location getMin() {
|
||||||
return new Location(getWorld(), getX() << 4, 0, getZ() << 4);
|
return Location.at(getWorld(), getX() << 4, 0, getZ() << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GenChunk clone() {
|
public GenChunk clone() {
|
||||||
|
@ -198,9 +198,9 @@ public class BukkitRegionManager extends RegionManager {
|
|||||||
|
|
||||||
final CuboidRegion region =
|
final CuboidRegion region =
|
||||||
RegionUtil.createRegion(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
RegionUtil.createRegion(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
||||||
final World oldWorld = Bukkit.getWorld(pos1.getWorld());
|
final World oldWorld = Bukkit.getWorld(pos1.getWorldName());
|
||||||
final BukkitWorld oldBukkitWorld = new BukkitWorld(oldWorld);
|
final BukkitWorld oldBukkitWorld = new BukkitWorld(oldWorld);
|
||||||
final World newWorld = Bukkit.getWorld(newPos.getWorld());
|
final World newWorld = Bukkit.getWorld(newPos.getWorldName());
|
||||||
assert newWorld != null;
|
assert newWorld != null;
|
||||||
assert oldWorld != null;
|
assert oldWorld != null;
|
||||||
final String newWorldName = newWorld.getName();
|
final String newWorldName = newWorld.getName();
|
||||||
@ -248,7 +248,7 @@ public class BukkitRegionManager extends RegionManager {
|
|||||||
@Override
|
@Override
|
||||||
public boolean regenerateRegion(final Location pos1, final Location pos2,
|
public boolean regenerateRegion(final Location pos1, final Location pos2,
|
||||||
final boolean ignoreAugment, final Runnable whenDone) {
|
final boolean ignoreAugment, final Runnable whenDone) {
|
||||||
final String world = pos1.getWorld();
|
final String world = pos1.getWorldName();
|
||||||
|
|
||||||
final int p1x = pos1.getX();
|
final int p1x = pos1.getX();
|
||||||
final int p1z = pos1.getZ();
|
final int p1z = pos1.getZ();
|
||||||
@ -401,7 +401,7 @@ public class BukkitRegionManager extends RegionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public void clearAllEntities(Location pos1, Location pos2) {
|
@Override public void clearAllEntities(Location pos1, Location pos2) {
|
||||||
String world = pos1.getWorld();
|
String world = pos1.getWorldName();
|
||||||
List<Entity> entities = BukkitUtil.getEntities(world);
|
List<Entity> entities = BukkitUtil.getEntities(world);
|
||||||
int bx = pos1.getX();
|
int bx = pos1.getX();
|
||||||
int bz = pos1.getZ();
|
int bz = pos1.getZ();
|
||||||
@ -428,8 +428,8 @@ public class BukkitRegionManager extends RegionManager {
|
|||||||
RegionUtil.createRegion(bot1.getX(), top1.getX(), bot1.getZ(), top1.getZ());
|
RegionUtil.createRegion(bot1.getX(), top1.getX(), bot1.getZ(), top1.getZ());
|
||||||
CuboidRegion region2 =
|
CuboidRegion region2 =
|
||||||
RegionUtil.createRegion(bot2.getX(), top2.getX(), bot2.getZ(), top2.getZ());
|
RegionUtil.createRegion(bot2.getX(), top2.getX(), bot2.getZ(), top2.getZ());
|
||||||
final World world1 = Bukkit.getWorld(bot1.getWorld());
|
final World world1 = Bukkit.getWorld(bot1.getWorldName());
|
||||||
final World world2 = Bukkit.getWorld(bot2.getWorld());
|
final World world2 = Bukkit.getWorld(bot2.getWorldName());
|
||||||
checkNotNull(world1, "Critical error during swap.");
|
checkNotNull(world1, "Critical error during swap.");
|
||||||
checkNotNull(world2, "Critical error during swap.");
|
checkNotNull(world2, "Critical error during swap.");
|
||||||
int relX = bot2.getX() - bot1.getX();
|
int relX = bot2.getX() - bot1.getX();
|
||||||
@ -456,9 +456,9 @@ public class BukkitRegionManager extends RegionManager {
|
|||||||
@Override
|
@Override
|
||||||
public void setBiome(final CuboidRegion region, final int extendBiome, final BiomeType biome,
|
public void setBiome(final CuboidRegion region, final int extendBiome, final BiomeType biome,
|
||||||
final String world, final Runnable whenDone) {
|
final String world, final Runnable whenDone) {
|
||||||
Location pos1 = new Location(world, region.getMinimumPoint().getX() - extendBiome,
|
Location pos1 = Location.at(world, region.getMinimumPoint().getX() - extendBiome,
|
||||||
region.getMinimumPoint().getY(), region.getMinimumPoint().getZ() - extendBiome);
|
region.getMinimumPoint().getY(), region.getMinimumPoint().getZ() - extendBiome);
|
||||||
Location pos2 = new Location(world, region.getMaximumPoint().getX() + extendBiome,
|
Location pos2 = Location.at(world, region.getMaximumPoint().getX() + extendBiome,
|
||||||
region.getMaximumPoint().getY(), region.getMaximumPoint().getZ() + extendBiome);
|
region.getMaximumPoint().getY(), region.getMaximumPoint().getZ() + extendBiome);
|
||||||
final LocalBlockQueue queue = GlobalBlockQueue.IMP.getNewQueue(world, false);
|
final LocalBlockQueue queue = GlobalBlockQueue.IMP.getNewQueue(world, false);
|
||||||
|
|
||||||
|
@ -276,18 +276,18 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Location getLocation(@NonNull final org.bukkit.Location location) {
|
public static Location getLocation(@NonNull final org.bukkit.Location location) {
|
||||||
return new Location(location.getWorld().getName(), MathMan.roundInt(location.getX()),
|
return Location.at(com.plotsquared.bukkit.util.BukkitWorld.of(location.getWorld()),
|
||||||
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
|
MathMan.roundInt(location.getX()), MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Location getLocationFull(@NonNull final org.bukkit.Location location) {
|
public static Location getLocationFull(@NonNull final org.bukkit.Location location) {
|
||||||
return new Location(location.getWorld().getName(), MathMan.roundInt(location.getX()),
|
return Location.at(com.plotsquared.bukkit.util.BukkitWorld.of(location.getWorld()),
|
||||||
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()), location.getYaw(),
|
MathMan.roundInt(location.getX()), MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()), location.getYaw(),
|
||||||
location.getPitch());
|
location.getPitch());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static org.bukkit.Location getLocation(@NonNull final Location location) {
|
public static org.bukkit.Location getLocation(@NonNull final Location location) {
|
||||||
return new org.bukkit.Location(getWorld(location.getWorld()), location.getX(),
|
return new org.bukkit.Location((World) location.getWorld().getPlatformWorld(), location.getX(),
|
||||||
location.getY(), location.getZ());
|
location.getY(), location.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,13 +311,13 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
public static Location getLocation(@NonNull final Entity entity) {
|
public static Location getLocation(@NonNull final Entity entity) {
|
||||||
final org.bukkit.Location location = entity.getLocation();
|
final org.bukkit.Location location = entity.getLocation();
|
||||||
String world = location.getWorld().getName();
|
String world = location.getWorld().getName();
|
||||||
return new Location(world, location.getBlockX(), location.getBlockY(),
|
return Location.at(world, location.getBlockX(), location.getBlockY(),
|
||||||
location.getBlockZ());
|
location.getBlockZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull public static Location getLocationFull(@NonNull final Entity entity) {
|
@NotNull public static Location getLocationFull(@NonNull final Entity entity) {
|
||||||
final org.bukkit.Location location = entity.getLocation();
|
final org.bukkit.Location location = entity.getLocation();
|
||||||
return new Location(location.getWorld().getName(), MathMan.roundInt(location.getX()),
|
return Location.at(location.getWorld().getName(), MathMan.roundInt(location.getX()),
|
||||||
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()), location.getYaw(),
|
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()), location.getYaw(),
|
||||||
location.getPitch());
|
location.getPitch());
|
||||||
}
|
}
|
||||||
@ -409,7 +409,7 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable public String[] getSignSynchronous(@NonNull final Location location) {
|
@Override @Nullable public String[] getSignSynchronous(@NonNull final Location location) {
|
||||||
Block block = getWorld(location.getWorld())
|
Block block = getWorld(location.getWorldName())
|
||||||
.getBlockAt(location.getX(), location.getY(), location.getZ());
|
.getBlockAt(location.getX(), location.getY(), location.getZ());
|
||||||
return TaskManager.IMP.sync(new RunnableVal<String[]>() {
|
return TaskManager.IMP.sync(new RunnableVal<String[]>() {
|
||||||
@Override public void run(String[] value) {
|
@Override public void run(String[] value) {
|
||||||
@ -423,12 +423,12 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
|
|
||||||
@Override public Location getSpawn(@NonNull final String world) {
|
@Override public Location getSpawn(@NonNull final String world) {
|
||||||
final org.bukkit.Location temp = getWorld(world).getSpawnLocation();
|
final org.bukkit.Location temp = getWorld(world).getSpawnLocation();
|
||||||
return new Location(world, temp.getBlockX(), temp.getBlockY(), temp.getBlockZ(),
|
return Location.at(world, temp.getBlockX(), temp.getBlockY(), temp.getBlockZ(),
|
||||||
temp.getYaw(), temp.getPitch());
|
temp.getYaw(), temp.getPitch());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void setSpawn(@NonNull final Location location) {
|
@Override public void setSpawn(@NonNull final Location location) {
|
||||||
final World world = getWorld(location.getWorld());
|
final World world = getWorld(location.getWorldName());
|
||||||
if (world != null) {
|
if (world != null) {
|
||||||
world.setSpawnLocation(location.getX(), location.getY(), location.getZ());
|
world.setSpawnLocation(location.getX(), location.getY(), location.getZ());
|
||||||
}
|
}
|
||||||
@ -526,14 +526,14 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
@Override
|
@Override
|
||||||
public void getBlock(@NonNull final Location location, final Consumer<BlockState> result) {
|
public void getBlock(@NonNull final Location location, final Consumer<BlockState> result) {
|
||||||
ensureLoaded(location, chunk -> {
|
ensureLoaded(location, chunk -> {
|
||||||
final World world = getWorld(location.getWorld());
|
final World world = getWorld(location.getWorldName());
|
||||||
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
||||||
result.accept(BukkitAdapter.asBlockType(block.getType()).getDefaultState());
|
result.accept(BukkitAdapter.asBlockType(block.getType()).getDefaultState());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public BlockState getBlockSynchronous(@NonNull final Location location) {
|
@Override public BlockState getBlockSynchronous(@NonNull final Location location) {
|
||||||
final World world = getWorld(location.getWorld());
|
final World world = getWorld(location.getWorldName());
|
||||||
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
final Block block = world.getBlockAt(location.getX(), location.getY(), location.getZ());
|
||||||
return BukkitAdapter.asBlockType(block.getType()).getDefaultState();
|
return BukkitAdapter.asBlockType(block.getType()).getDefaultState();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
* _____ _ _ _____ _
|
||||||
|
* | __ \| | | | / ____| | |
|
||||||
|
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||||
|
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||||
|
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||||
|
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||||
|
* | |
|
||||||
|
* |_|
|
||||||
|
* PlotSquared plot management system for Minecraft
|
||||||
|
* Copyright (C) 2020 IntellectualSites
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.bukkit.util;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.plotsquared.core.location.World;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.ToString;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@EqualsAndHashCode @ToString public class BukkitWorld implements World<org.bukkit.World> {
|
||||||
|
|
||||||
|
private static final Map<String, BukkitWorld> worldMap = Maps.newHashMap();
|
||||||
|
|
||||||
|
private final org.bukkit.World world;
|
||||||
|
|
||||||
|
private BukkitWorld(@NotNull final org.bukkit.World world) {
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a new {@link BukkitWorld} from a world name
|
||||||
|
*
|
||||||
|
* @param worldName World name
|
||||||
|
* @return World instance
|
||||||
|
*/
|
||||||
|
@NotNull public static BukkitWorld of(@NotNull final String worldName) {
|
||||||
|
final org.bukkit.World bukkitWorld = Bukkit.getWorld(worldName);
|
||||||
|
if (bukkitWorld == null) {
|
||||||
|
throw new IllegalArgumentException(String.format("There is no world with the name '%s'", worldName));
|
||||||
|
}
|
||||||
|
return of(bukkitWorld);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a new {@link BukkitWorld} from a Bukkit world
|
||||||
|
*
|
||||||
|
* @param world Bukkit world
|
||||||
|
* @return World instance
|
||||||
|
*/
|
||||||
|
@NotNull public static BukkitWorld of(@NotNull final org.bukkit.World world) {
|
||||||
|
BukkitWorld bukkitWorld = worldMap.get(world.getName());
|
||||||
|
if (bukkitWorld != null && bukkitWorld.getPlatformWorld().equals(world)) {
|
||||||
|
return bukkitWorld;
|
||||||
|
}
|
||||||
|
bukkitWorld = new BukkitWorld(world);
|
||||||
|
worldMap.put(world.getName(), bukkitWorld);
|
||||||
|
return bukkitWorld;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull @Override public org.bukkit.World getPlatformWorld() {
|
||||||
|
return this.world;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public @NotNull String getName() {
|
||||||
|
return this.world.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -29,6 +29,7 @@ import com.plotsquared.core.backup.BackupManager;
|
|||||||
import com.plotsquared.core.generator.GeneratorWrapper;
|
import com.plotsquared.core.generator.GeneratorWrapper;
|
||||||
import com.plotsquared.core.generator.HybridUtils;
|
import com.plotsquared.core.generator.HybridUtils;
|
||||||
import com.plotsquared.core.generator.IndependentPlotGenerator;
|
import com.plotsquared.core.generator.IndependentPlotGenerator;
|
||||||
|
import com.plotsquared.core.location.World;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.queue.QueueProvider;
|
import com.plotsquared.core.queue.QueueProvider;
|
||||||
import com.plotsquared.core.util.ChatManager;
|
import com.plotsquared.core.util.ChatManager;
|
||||||
@ -302,4 +303,12 @@ public interface PlotPlatform<P> extends ILogger {
|
|||||||
*/
|
*/
|
||||||
@NotNull PlayerManager<? extends PlotPlayer<P>, ? extends P> getPlayerManager();
|
@NotNull PlayerManager<? extends PlotPlayer<P>, ? extends P> getPlayerManager();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a platform world wrapper from a world name
|
||||||
|
*
|
||||||
|
* @param worldName World name
|
||||||
|
* @return Platform world wrapper
|
||||||
|
*/
|
||||||
|
@NotNull World<?> getPlatformWorld(@NotNull final String worldName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -129,13 +129,13 @@ import java.util.zip.ZipInputStream;
|
|||||||
* An implementation of the core, with a static getter for easy access.
|
* An implementation of the core, with a static getter for easy access.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({"WeakerAccess"})
|
@SuppressWarnings({"WeakerAccess"})
|
||||||
public class PlotSquared<P> {
|
public class PlotSquared {
|
||||||
|
|
||||||
private static final Set<Plot> EMPTY_SET = Collections.unmodifiableSet(Collections.emptySet());
|
private static final Set<Plot> EMPTY_SET = Collections.unmodifiableSet(Collections.emptySet());
|
||||||
private static PlotSquared<?> instance;
|
private static PlotSquared instance;
|
||||||
|
|
||||||
// Implementation
|
// Implementation
|
||||||
private final PlotPlatform<P> platform;
|
private final PlotPlatform<?> platform;
|
||||||
// Current thread
|
// Current thread
|
||||||
private final Thread thread;
|
private final Thread thread;
|
||||||
// UUID pipelines
|
// UUID pipelines
|
||||||
@ -174,7 +174,7 @@ public class PlotSquared<P> {
|
|||||||
* @param iPlotMain Implementation of {@link PlotPlatform} used
|
* @param iPlotMain Implementation of {@link PlotPlatform} used
|
||||||
* @param platform The platform being used
|
* @param platform The platform being used
|
||||||
*/
|
*/
|
||||||
public PlotSquared(final PlotPlatform<P> iPlotMain, final String platform) {
|
public PlotSquared(final PlotPlatform<?> iPlotMain, final String platform) {
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
throw new IllegalStateException("Cannot re-initialize the PlotSquared singleton");
|
throw new IllegalStateException("Cannot re-initialize the PlotSquared singleton");
|
||||||
}
|
}
|
||||||
@ -375,11 +375,10 @@ public class PlotSquared<P> {
|
|||||||
*
|
*
|
||||||
* @return instance of PlotSquared
|
* @return instance of PlotSquared
|
||||||
*/
|
*/
|
||||||
public static PlotSquared<?> get() {
|
public static PlotSquared get() {
|
||||||
return PlotSquared.instance;
|
return PlotSquared.instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the platform specific implementation of PlotSquared
|
* Get the platform specific implementation of PlotSquared
|
||||||
*
|
*
|
||||||
@ -1700,7 +1699,7 @@ public class PlotSquared<P> {
|
|||||||
*/
|
*/
|
||||||
public boolean isNonStandardGeneration(@NotNull final String world,
|
public boolean isNonStandardGeneration(@NotNull final String world,
|
||||||
@NotNull final BlockVector2 chunkCoordinates) {
|
@NotNull final BlockVector2 chunkCoordinates) {
|
||||||
final Location location = new Location(world, chunkCoordinates.getBlockX() << 4, 64, chunkCoordinates.getBlockZ() << 4);
|
final Location location = Location.at(world, chunkCoordinates.getBlockX() << 4, 64, chunkCoordinates.getBlockZ() << 4);
|
||||||
final PlotArea area = plotAreaManager.getApplicablePlotArea(location);
|
final PlotArea area = plotAreaManager.getApplicablePlotArea(location);
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -104,7 +104,7 @@ public class Area extends SubCommand {
|
|||||||
MainUtil.sendMessage(player, Captions.SINGLE_AREA_NEEDS_NAME);
|
MainUtil.sendMessage(player, Captions.SINGLE_AREA_NEEDS_NAME);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final PlotArea existingArea = PlotSquared.get().getPlotAreaManager().getPlotArea(player.getLocation().getWorld(), args[1]);
|
final PlotArea existingArea = PlotSquared.get().getPlotAreaManager().getPlotArea(player.getLocation().getWorldName(), args[1]);
|
||||||
if (existingArea != null && existingArea.getId().equalsIgnoreCase(args[1])) {
|
if (existingArea != null && existingArea.getId().equalsIgnoreCase(args[1])) {
|
||||||
MainUtil.sendMessage(player, Captions.SINGLE_AREA_NAME_TAKEN);
|
MainUtil.sendMessage(player, Captions.SINGLE_AREA_NAME_TAKEN);
|
||||||
return false;
|
return false;
|
||||||
@ -139,7 +139,7 @@ public class Area extends SubCommand {
|
|||||||
BlockVector3.at(playerSelectionMax.getX(), 255, playerSelectionMax.getZ()));
|
BlockVector3.at(playerSelectionMax.getX(), 255, playerSelectionMax.getZ()));
|
||||||
// There's only one plot in the area...
|
// There's only one plot in the area...
|
||||||
final PlotId plotId = new PlotId(1, 1);
|
final PlotId plotId = new PlotId(1, 1);
|
||||||
final HybridPlotWorld hybridPlotWorld = new HybridPlotWorld(player.getLocation().getWorld(), args[1],
|
final HybridPlotWorld hybridPlotWorld = new HybridPlotWorld(player.getLocation().getWorldName(), args[1],
|
||||||
Objects.requireNonNull(PlotSquared.platform()).getDefaultGenerator(), plotId, plotId);
|
Objects.requireNonNull(PlotSquared.platform()).getDefaultGenerator(), plotId, plotId);
|
||||||
// Plot size is the same as the region width
|
// Plot size is the same as the region width
|
||||||
hybridPlotWorld.PLOT_WIDTH = hybridPlotWorld.SIZE = (short) selectedRegion.getWidth();
|
hybridPlotWorld.PLOT_WIDTH = hybridPlotWorld.SIZE = (short) selectedRegion.getWidth();
|
||||||
@ -462,7 +462,7 @@ public class Area extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (WorldUtil.IMP.isWorld(pa.getWorldName())) {
|
if (WorldUtil.IMP.isWorld(pa.getWorldName())) {
|
||||||
if (!player.getLocation().getWorld().equals(pa.getWorldName())) {
|
if (!player.getLocation().getWorldName().equals(pa.getWorldName())) {
|
||||||
player.teleport(WorldUtil.IMP.getSpawn(pa.getWorldName()),
|
player.teleport(WorldUtil.IMP.getSpawn(pa.getWorldName()),
|
||||||
TeleportCause.COMMAND);
|
TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
@ -648,15 +648,13 @@ public class Area extends SubCommand {
|
|||||||
player.teleport(center, TeleportCause.COMMAND);
|
player.teleport(center, TeleportCause.COMMAND);
|
||||||
} else {
|
} else {
|
||||||
CuboidRegion region = area.getRegion();
|
CuboidRegion region = area.getRegion();
|
||||||
center = new Location(area.getWorldName(), region.getMinimumPoint().getX()
|
center = Location.at(area.getWorldName(), region.getMinimumPoint().getX()
|
||||||
+ (region.getMaximumPoint().getX() - region.getMinimumPoint().getX()) / 2,
|
+ (region.getMaximumPoint().getX() - region.getMinimumPoint().getX()) / 2,
|
||||||
0, region.getMinimumPoint().getZ()
|
0, region.getMinimumPoint().getZ()
|
||||||
+ (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ()) / 2);
|
+ (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ()) / 2);
|
||||||
WorldUtil.IMP
|
WorldUtil.IMP
|
||||||
.getHighestBlock(area.getWorldName(), center.getX(), center.getZ(), y -> {
|
.getHighestBlock(area.getWorldName(), center.getX(), center.getZ(), y ->
|
||||||
center.setY(1 + y);
|
player.teleport(center.withY(1 + y), TeleportCause.COMMAND));
|
||||||
player.teleport(center, TeleportCause.COMMAND);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
case "delete":
|
case "delete":
|
||||||
|
@ -74,7 +74,7 @@ public class Claim extends SubCommand {
|
|||||||
boolean force = event.getEventResult() == Result.FORCE;
|
boolean force = event.getEventResult() == Result.FORCE;
|
||||||
int currentPlots = Settings.Limit.GLOBAL ?
|
int currentPlots = Settings.Limit.GLOBAL ?
|
||||||
player.getPlotCount() :
|
player.getPlotCount() :
|
||||||
player.getPlotCount(location.getWorld());
|
player.getPlotCount(location.getWorldName());
|
||||||
int grants = 0;
|
int grants = 0;
|
||||||
if (currentPlots >= player.getAllowedPlots() && !force) {
|
if (currentPlots >= player.getAllowedPlots() && !force) {
|
||||||
if (player.hasPersistentMeta("grantedPlots")) {
|
if (player.hasPersistentMeta("grantedPlots")) {
|
||||||
|
@ -117,7 +117,7 @@ public class Cluster extends SubCommand {
|
|||||||
}
|
}
|
||||||
int currentClusters = Settings.Limit.GLOBAL ?
|
int currentClusters = Settings.Limit.GLOBAL ?
|
||||||
player.getClusterCount() :
|
player.getClusterCount() :
|
||||||
player.getPlotCount(player.getLocation().getWorld());
|
player.getPlotCount(player.getLocation().getWorldName());
|
||||||
if (currentClusters >= player.getAllowedPlots()) {
|
if (currentClusters >= player.getAllowedPlots()) {
|
||||||
return sendMessage(player, Captions.CANT_CLAIM_MORE_CLUSTERS);
|
return sendMessage(player, Captions.CANT_CLAIM_MORE_CLUSTERS);
|
||||||
}
|
}
|
||||||
@ -173,7 +173,7 @@ public class Cluster extends SubCommand {
|
|||||||
if (Settings.Limit.GLOBAL) {
|
if (Settings.Limit.GLOBAL) {
|
||||||
current = player.getPlayerClusterCount();
|
current = player.getPlayerClusterCount();
|
||||||
} else {
|
} else {
|
||||||
current = player.getPlayerClusterCount(player.getLocation().getWorld());
|
current = player.getPlayerClusterCount(player.getLocation().getWorldName());
|
||||||
}
|
}
|
||||||
int allowed = Permissions
|
int allowed = Permissions
|
||||||
.hasPermissionRange(player, Captions.PERMISSION_CLUSTER_SIZE,
|
.hasPermissionRange(player, Captions.PERMISSION_CLUSTER_SIZE,
|
||||||
@ -324,7 +324,7 @@ public class Cluster extends SubCommand {
|
|||||||
if (Settings.Limit.GLOBAL) {
|
if (Settings.Limit.GLOBAL) {
|
||||||
current = player.getPlayerClusterCount();
|
current = player.getPlayerClusterCount();
|
||||||
} else {
|
} else {
|
||||||
current = player.getPlayerClusterCount(player.getLocation().getWorld());
|
current = player.getPlayerClusterCount(player.getLocation().getWorldName());
|
||||||
}
|
}
|
||||||
current -= cluster.getArea() + (1 + pos2.x - pos1.x) * (1 + pos2.y - pos1.y);
|
current -= cluster.getArea() + (1 + pos2.x - pos1.x) * (1 + pos2.y - pos1.y);
|
||||||
int allowed = Permissions.hasPermissionRange(player, Captions.PERMISSION_CLUSTER,
|
int allowed = Permissions.hasPermissionRange(player, Captions.PERMISSION_CLUSTER,
|
||||||
@ -454,7 +454,7 @@ public class Cluster extends SubCommand {
|
|||||||
cluster.getName());
|
cluster.getName());
|
||||||
}
|
}
|
||||||
for (final Plot plot : PlotQuery.newQuery().inWorld(player2.getLocation()
|
for (final Plot plot : PlotQuery.newQuery().inWorld(player2.getLocation()
|
||||||
.getWorld()).ownedBy(uuid).asCollection()) {
|
.getWorldName()).ownedBy(uuid).asCollection()) {
|
||||||
PlotCluster current = plot.getCluster();
|
PlotCluster current = plot.getCluster();
|
||||||
if (current != null && current.equals(cluster)) {
|
if (current != null && current.equals(cluster)) {
|
||||||
plot.unclaim();
|
plot.unclaim();
|
||||||
@ -512,7 +512,7 @@ public class Cluster extends SubCommand {
|
|||||||
cluster.invited.remove(uuid);
|
cluster.invited.remove(uuid);
|
||||||
DBFunc.removeInvited(cluster, uuid);
|
DBFunc.removeInvited(cluster, uuid);
|
||||||
MainUtil.sendMessage(player, Captions.CLUSTER_REMOVED, cluster.getName());
|
MainUtil.sendMessage(player, Captions.CLUSTER_REMOVED, cluster.getName());
|
||||||
for (final Plot plot : PlotQuery.newQuery().inWorld(player.getLocation().getWorld())
|
for (final Plot plot : PlotQuery.newQuery().inWorld(player.getLocation().getWorldName())
|
||||||
.ownedBy(uuid).asCollection()) {
|
.ownedBy(uuid).asCollection()) {
|
||||||
PlotCluster current = plot.getCluster();
|
PlotCluster current = plot.getCluster();
|
||||||
if (current != null && current.equals(cluster)) {
|
if (current != null && current.equals(cluster)) {
|
||||||
|
@ -86,7 +86,7 @@ public class Comment extends SubCommand {
|
|||||||
|
|
||||||
String message = StringMan.join(Arrays.copyOfRange(args, index, args.length), " ");
|
String message = StringMan.join(Arrays.copyOfRange(args, index, args.length), " ");
|
||||||
PlotComment comment =
|
PlotComment comment =
|
||||||
new PlotComment(player.getLocation().getWorld(), plot.getId(), message,
|
new PlotComment(player.getLocation().getWorldName(), plot.getId(), message,
|
||||||
player.getName(), inbox.toString(), System.currentTimeMillis());
|
player.getName(), inbox.toString(), System.currentTimeMillis());
|
||||||
boolean result = inbox.addComment(plot, comment);
|
boolean result = inbox.addComment(plot, comment);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
|
@ -63,7 +63,7 @@ public class Debug extends SubCommand {
|
|||||||
MainUtil.sendMessage(player, "Fetching loaded chunks...");
|
MainUtil.sendMessage(player, "Fetching loaded chunks...");
|
||||||
TaskManager.runTaskAsync(() -> MainUtil.sendMessage(player,
|
TaskManager.runTaskAsync(() -> MainUtil.sendMessage(player,
|
||||||
"Loaded chunks: " + RegionManager.manager
|
"Loaded chunks: " + RegionManager.manager
|
||||||
.getChunkChunks(player.getLocation().getWorld()).size() + "(" + (
|
.getChunkChunks(player.getLocation().getWorldName()).size() + "(" + (
|
||||||
System.currentTimeMillis() - start) + "ms) using thread: " + Thread
|
System.currentTimeMillis() - start) + "ms) using thread: " + Thread
|
||||||
.currentThread().getName()));
|
.currentThread().getName()));
|
||||||
return true;
|
return true;
|
||||||
|
@ -77,7 +77,7 @@ public class Delete extends SubCommand {
|
|||||||
final java.util.Set<Plot> plots = plot.getConnectedPlots();
|
final java.util.Set<Plot> plots = plot.getConnectedPlots();
|
||||||
final int currentPlots = Settings.Limit.GLOBAL ?
|
final int currentPlots = Settings.Limit.GLOBAL ?
|
||||||
player.getPlotCount() :
|
player.getPlotCount() :
|
||||||
player.getPlotCount(location.getWorld());
|
player.getPlotCount(location.getWorldName());
|
||||||
Runnable run = () -> {
|
Runnable run = () -> {
|
||||||
if (plot.getRunning() > 0) {
|
if (plot.getRunning() > 0) {
|
||||||
MainUtil.sendMessage(player, Captions.WAIT_FOR_TIMER);
|
MainUtil.sendMessage(player, Captions.WAIT_FOR_TIMER);
|
||||||
|
@ -133,7 +133,7 @@ public class Deny extends SubCommand {
|
|||||||
player.stopSpectating();
|
player.stopSpectating();
|
||||||
}
|
}
|
||||||
Location location = player.getLocation();
|
Location location = player.getLocation();
|
||||||
Location spawn = WorldUtil.IMP.getSpawn(location.getWorld());
|
Location spawn = WorldUtil.IMP.getSpawn(location.getWorldName());
|
||||||
MainUtil.sendMessage(player, Captions.YOU_GOT_DENIED);
|
MainUtil.sendMessage(player, Captions.YOU_GOT_DENIED);
|
||||||
if (plot.equals(spawn.getPlot())) {
|
if (plot.equals(spawn.getPlot())) {
|
||||||
Location newSpawn =
|
Location newSpawn =
|
||||||
|
@ -51,7 +51,7 @@ import java.net.URL;
|
|||||||
public class Download extends SubCommand {
|
public class Download extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
String world = player.getLocation().getWorld();
|
String world = player.getLocation().getWorldName();
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
||||||
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ public class Kick extends SubCommand {
|
|||||||
Captions.CANNOT_KICK_PLAYER.send(player, player2.getName());
|
Captions.CANNOT_KICK_PLAYER.send(player, player2.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location spawn = WorldUtil.IMP.getSpawn(location.getWorld());
|
Location spawn = WorldUtil.IMP.getSpawn(location.getWorldName());
|
||||||
Captions.YOU_GOT_KICKED.send(player2);
|
Captions.YOU_GOT_KICKED.send(player2);
|
||||||
if (plot.equals(spawn.getPlot())) {
|
if (plot.equals(spawn.getPlot())) {
|
||||||
Location newSpawn = WorldUtil.IMP
|
Location newSpawn = WorldUtil.IMP
|
||||||
|
@ -138,7 +138,7 @@ public class ListCmd extends SubCommand {
|
|||||||
page = 0;
|
page = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
String world = player.getLocation().getWorld();
|
String world = player.getLocation().getWorldName();
|
||||||
PlotArea area = player.getApplicablePlotArea();
|
PlotArea area = player.getApplicablePlotArea();
|
||||||
String arg = args[0].toLowerCase();
|
String arg = args[0].toLowerCase();
|
||||||
final boolean[] sort = new boolean[] {true};
|
final boolean[] sort = new boolean[] {true};
|
||||||
|
@ -53,7 +53,7 @@ import java.util.List;
|
|||||||
public class Load extends SubCommand {
|
public class Load extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
String world = player.getLocation().getWorld();
|
String world = player.getLocation().getWorldName();
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
||||||
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ import java.util.UUID;
|
|||||||
public class Save extends SubCommand {
|
public class Save extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
String world = player.getLocation().getWorld();
|
String world = player.getLocation().getWorldName();
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
||||||
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
return !sendMessage(player, Captions.NOT_IN_PLOT_WORLD);
|
||||||
}
|
}
|
||||||
@ -77,8 +77,8 @@ public class Save extends SubCommand {
|
|||||||
TaskManager.runTaskAsync(() -> {
|
TaskManager.runTaskAsync(() -> {
|
||||||
String time = (System.currentTimeMillis() / 1000) + "";
|
String time = (System.currentTimeMillis() / 1000) + "";
|
||||||
Location[] corners = plot.getCorners();
|
Location[] corners = plot.getCorners();
|
||||||
corners[0].setY(0);
|
corners[0] = corners[0].withY(0);
|
||||||
corners[1].setY(255);
|
corners[1] = corners[1].withY(255);
|
||||||
int size = (corners[1].getX() - corners[0].getX()) + 1;
|
int size = (corners[1].getX() - corners[0].getX()) + 1;
|
||||||
PlotId id = plot.getId();
|
PlotId id = plot.getId();
|
||||||
String world1 = plot.getArea().toString().replaceAll(";", "-")
|
String world1 = plot.getArea().toString().replaceAll(";", "-")
|
||||||
|
@ -54,7 +54,7 @@ public class Target extends SubCommand {
|
|||||||
Plot target = null;
|
Plot target = null;
|
||||||
if (StringMan.isEqualIgnoreCaseToAny(args[0], "near", "nearest")) {
|
if (StringMan.isEqualIgnoreCaseToAny(args[0], "near", "nearest")) {
|
||||||
int distance = Integer.MAX_VALUE;
|
int distance = Integer.MAX_VALUE;
|
||||||
for (Plot plot : PlotQuery.newQuery().inWorld(location.getWorld()).asCollection()) {
|
for (Plot plot : PlotQuery.newQuery().inWorld(location.getWorldName()).asCollection()) {
|
||||||
double current = plot.getCenterSynchronous().getEuclideanDistanceSquared(location);
|
double current = plot.getCenterSynchronous().getEuclideanDistanceSquared(location);
|
||||||
if (current < distance) {
|
if (current < distance) {
|
||||||
distance = (int) current;
|
distance = (int) current;
|
||||||
|
@ -153,8 +153,8 @@ public class AugmentedUtils {
|
|||||||
secondaryMask.setForceSync(true);
|
secondaryMask.setForceSync(true);
|
||||||
|
|
||||||
ScopedLocalBlockQueue scoped =
|
ScopedLocalBlockQueue scoped =
|
||||||
new ScopedLocalBlockQueue(secondaryMask, new Location(world, blockX, 0, blockZ),
|
new ScopedLocalBlockQueue(secondaryMask, Location.at(world, blockX, 0, blockZ),
|
||||||
new Location(world, blockX + 15, 255, blockZ + 15));
|
Location.at(world, blockX + 15, 255, blockZ + 15));
|
||||||
generator.generateChunk(scoped, area);
|
generator.generateChunk(scoped, area);
|
||||||
generator.populateChunk(scoped, area);
|
generator.populateChunk(scoped, area);
|
||||||
}
|
}
|
||||||
|
@ -192,10 +192,10 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
if (plot.isBasePlot()) {
|
if (plot.isBasePlot()) {
|
||||||
for (CuboidRegion region : plot.getRegions()) {
|
for (CuboidRegion region : plot.getRegions()) {
|
||||||
Location pos1 =
|
Location pos1 =
|
||||||
new Location(classicPlotWorld.getWorldName(), region.getMinimumPoint().getX(),
|
Location.at(classicPlotWorld.getWorldName(), region.getMinimumPoint().getX(),
|
||||||
maxY, region.getMinimumPoint().getZ());
|
maxY, region.getMinimumPoint().getZ());
|
||||||
Location pos2 =
|
Location pos2 =
|
||||||
new Location(classicPlotWorld.getWorldName(), region.getMaximumPoint().getX(),
|
Location.at(classicPlotWorld.getWorldName(), region.getMaximumPoint().getX(),
|
||||||
maxY, region.getMaximumPoint().getZ());
|
maxY, region.getMaximumPoint().getZ());
|
||||||
queue.setCuboid(pos1, pos2, blocks);
|
queue.setCuboid(pos1, pos2, blocks);
|
||||||
}
|
}
|
||||||
@ -314,31 +314,31 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int ez = pos2.getZ() + 2;
|
int ez = pos2.getZ() + 2;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
int maxY = getWorldHeight();
|
int maxY = getWorldHeight();
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx,
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx,
|
||||||
Math.min(classicPlotWorld.WALL_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz + 1),
|
Math.min(classicPlotWorld.WALL_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, maxY, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), ex, maxY, ez - 1),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx, 0, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx, 0, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, 0, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), ex, 0, ez - 1),
|
||||||
BlockUtil.get((short) 7, (byte) 0));
|
BlockUtil.get((short) 7, (byte) 0));
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT, ez - 1),
|
||||||
classicPlotWorld.WALL_FILLING.toPattern());
|
classicPlotWorld.WALL_FILLING.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
sz + 1),
|
sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), sx, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
ez - 1), classicPlotWorld.WALL_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.WALL_BLOCK.toPattern());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), ex, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), ex, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT, ez - 1),
|
||||||
classicPlotWorld.WALL_FILLING.toPattern());
|
classicPlotWorld.WALL_FILLING.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
sz + 1),
|
sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
ez - 1), classicPlotWorld.WALL_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.WALL_BLOCK.toPattern());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
||||||
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -351,32 +351,32 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int sx = pos1.getX() - 2;
|
int sx = pos1.getX() - 2;
|
||||||
int ex = pos2.getX() + 2;
|
int ex = pos2.getX() + 2;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1,
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1,
|
||||||
Math.min(classicPlotWorld.WALL_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
Math.min(classicPlotWorld.WALL_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1,
|
||||||
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 0, sz),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 0, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, 0, ez),
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, 0, ez),
|
||||||
BlockUtil.get((short) 7, (byte) 0));
|
BlockUtil.get((short) 7, (byte) 0));
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, sz),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT, sz),
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT, sz),
|
||||||
classicPlotWorld.WALL_FILLING.toPattern());
|
classicPlotWorld.WALL_FILLING.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
sz),
|
sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
sz), classicPlotWorld.WALL_BLOCK.toPattern());
|
sz), classicPlotWorld.WALL_BLOCK.toPattern());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, ez),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, ez),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT, ez),
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT, ez),
|
||||||
classicPlotWorld.WALL_FILLING.toPattern());
|
classicPlotWorld.WALL_FILLING.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
ez),
|
ez),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.WALL_HEIGHT + 1,
|
||||||
ez), classicPlotWorld.WALL_BLOCK.toPattern());
|
ez), classicPlotWorld.WALL_BLOCK.toPattern());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
||||||
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -389,15 +389,15 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int ez = sz + classicPlotWorld.ROAD_WIDTH - 1;
|
int ez = sz + classicPlotWorld.ROAD_WIDTH - 1;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.ROAD_HEIGHT + 1,
|
Location.at(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.ROAD_HEIGHT + 1,
|
||||||
sz + 1), new Location(classicPlotWorld.getWorldName(), ex - 1,
|
sz + 1), Location.at(classicPlotWorld.getWorldName(), ex - 1,
|
||||||
classicPlotWorld.getPlotManager().getWorldHeight(), ez - 1),
|
classicPlotWorld.getPlotManager().getWorldHeight(), ez - 1),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 0, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 0, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, 0, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, 0, ez - 1),
|
||||||
BlockUtil.get((short) 7, (byte) 0));
|
BlockUtil.get((short) 7, (byte) 0));
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.ROAD_HEIGHT,
|
||||||
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.ROAD_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -410,17 +410,17 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int sz = pos1.getZ() - 1;
|
int sz = pos1.getZ() - 1;
|
||||||
int ez = pos2.getZ() + 1;
|
int ez = pos2.getZ() + 1;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx,
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx,
|
||||||
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex,
|
Location.at(classicPlotWorld.getWorldName(), ex,
|
||||||
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx, 1, sz + 1),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx, 1, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT - 1,
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT - 1,
|
||||||
ez - 1), classicPlotWorld.MAIN_BLOCK.toPattern());
|
ez - 1), classicPlotWorld.MAIN_BLOCK.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx, classicPlotWorld.PLOT_HEIGHT, sz + 1),
|
Location.at(classicPlotWorld.getWorldName(), sx, classicPlotWorld.PLOT_HEIGHT, sz + 1),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT, ez - 1),
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT, ez - 1),
|
||||||
classicPlotWorld.TOP_BLOCK.toPattern());
|
classicPlotWorld.TOP_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -433,17 +433,17 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int sx = pos1.getX() - 1;
|
int sx = pos1.getX() - 1;
|
||||||
int ex = pos2.getX() + 1;
|
int ex = pos2.getX() + 1;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx,
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx,
|
||||||
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex,
|
Location.at(classicPlotWorld.getWorldName(), ex,
|
||||||
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx + 1, 1, sz),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx + 1, 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.PLOT_HEIGHT - 1,
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.PLOT_HEIGHT - 1,
|
||||||
ez), classicPlotWorld.MAIN_BLOCK.toPattern());
|
ez), classicPlotWorld.MAIN_BLOCK.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.PLOT_HEIGHT, sz),
|
Location.at(classicPlotWorld.getWorldName(), sx + 1, classicPlotWorld.PLOT_HEIGHT, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.PLOT_HEIGHT, ez),
|
Location.at(classicPlotWorld.getWorldName(), ex - 1, classicPlotWorld.PLOT_HEIGHT, ez),
|
||||||
classicPlotWorld.TOP_BLOCK.toPattern());
|
classicPlotWorld.TOP_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -455,17 +455,17 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
int sz = location.getZ() + 1;
|
int sz = location.getZ() + 1;
|
||||||
int ez = sz + classicPlotWorld.ROAD_WIDTH - 1;
|
int ez = sz + classicPlotWorld.ROAD_WIDTH - 1;
|
||||||
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
LocalBlockQueue queue = classicPlotWorld.getQueue(false);
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx,
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx,
|
||||||
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
Math.min(classicPlotWorld.PLOT_HEIGHT, classicPlotWorld.ROAD_HEIGHT) + 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex,
|
Location.at(classicPlotWorld.getWorldName(), ex,
|
||||||
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
classicPlotWorld.getPlotManager().getWorldHeight(), ez),
|
||||||
BlockTypes.AIR.getDefaultState());
|
BlockTypes.AIR.getDefaultState());
|
||||||
queue.setCuboid(new Location(classicPlotWorld.getWorldName(), sx, 1, sz),
|
queue.setCuboid(Location.at(classicPlotWorld.getWorldName(), sx, 1, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT - 1, ez),
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT - 1, ez),
|
||||||
classicPlotWorld.MAIN_BLOCK.toPattern());
|
classicPlotWorld.MAIN_BLOCK.toPattern());
|
||||||
queue.setCuboid(
|
queue.setCuboid(
|
||||||
new Location(classicPlotWorld.getWorldName(), sx, classicPlotWorld.PLOT_HEIGHT, sz),
|
Location.at(classicPlotWorld.getWorldName(), sx, classicPlotWorld.PLOT_HEIGHT, sz),
|
||||||
new Location(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT, ez),
|
Location.at(classicPlotWorld.getWorldName(), ex, classicPlotWorld.PLOT_HEIGHT, ez),
|
||||||
classicPlotWorld.TOP_BLOCK.toPattern());
|
classicPlotWorld.TOP_BLOCK.toPattern());
|
||||||
return queue.enqueue();
|
return queue.enqueue();
|
||||||
}
|
}
|
||||||
@ -529,8 +529,8 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
*/
|
*/
|
||||||
@Override public Location getSignLoc(Plot plot) {
|
@Override public Location getSignLoc(Plot plot) {
|
||||||
plot = plot.getBasePlot(false);
|
plot = plot.getBasePlot(false);
|
||||||
Location bot = plot.getBottomAbs();
|
final Location bot = plot.getBottomAbs();
|
||||||
return new Location(classicPlotWorld.getWorldName(), bot.getX() - 1,
|
return Location.at(classicPlotWorld.getWorldName(), bot.getX() - 1,
|
||||||
classicPlotWorld.ROAD_HEIGHT + 1, bot.getZ() - 2);
|
classicPlotWorld.ROAD_HEIGHT + 1, bot.getZ() - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,9 +103,8 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
PlotId id2 = new PlotId(id.x + 1, id.y);
|
PlotId id2 = new PlotId(id.x + 1, id.y);
|
||||||
Location bot = getPlotBottomLocAbs(id2);
|
Location bot = getPlotBottomLocAbs(id2);
|
||||||
Location top = getPlotTopLocAbs(id);
|
Location top = getPlotTopLocAbs(id);
|
||||||
Location pos1 =
|
Location pos1 = Location.at(hybridPlotWorld.getWorldName(), top.getX() + 1, 0, bot.getZ() - 1);
|
||||||
new Location(hybridPlotWorld.getWorldName(), top.getX() + 1, 0, bot.getZ() - 1);
|
Location pos2 = Location.at(hybridPlotWorld.getWorldName(), bot.getX(),
|
||||||
Location pos2 = new Location(hybridPlotWorld.getWorldName(), bot.getX(),
|
|
||||||
Math.min(getWorldHeight(), 255), top.getZ() + 1);
|
Math.min(getWorldHeight(), 255), top.getZ() + 1);
|
||||||
MainUtil.resetBiome(hybridPlotWorld, pos1, pos2);
|
MainUtil.resetBiome(hybridPlotWorld, pos1, pos2);
|
||||||
if (!hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
if (!hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
||||||
@ -163,9 +162,8 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
PlotId id2 = new PlotId(id.x, id.y + 1);
|
PlotId id2 = new PlotId(id.x, id.y + 1);
|
||||||
Location bot = getPlotBottomLocAbs(id2);
|
Location bot = getPlotBottomLocAbs(id2);
|
||||||
Location top = getPlotTopLocAbs(id);
|
Location top = getPlotTopLocAbs(id);
|
||||||
Location pos1 =
|
Location pos1 = Location.at(hybridPlotWorld.getWorldName(), bot.getX() - 1, 0, top.getZ() + 1);
|
||||||
new Location(hybridPlotWorld.getWorldName(), bot.getX() - 1, 0, top.getZ() + 1);
|
Location pos2 = Location.at(hybridPlotWorld.getWorldName(), top.getX() + 1,
|
||||||
Location pos2 = new Location(hybridPlotWorld.getWorldName(), top.getX() + 1,
|
|
||||||
Math.min(getWorldHeight(), 255), bot.getZ());
|
Math.min(getWorldHeight(), 255), bot.getZ());
|
||||||
MainUtil.resetBiome(hybridPlotWorld, pos1, pos2);
|
MainUtil.resetBiome(hybridPlotWorld, pos1, pos2);
|
||||||
if (!hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
if (!hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
||||||
@ -181,10 +179,8 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
super.createRoadSouthEast(plot);
|
super.createRoadSouthEast(plot);
|
||||||
PlotId id = plot.getId();
|
PlotId id = plot.getId();
|
||||||
PlotId id2 = new PlotId(id.x + 1, id.y + 1);
|
PlotId id2 = new PlotId(id.x + 1, id.y + 1);
|
||||||
Location pos1 = getPlotTopLocAbs(id).add(1, 0, 1);
|
Location pos1 = getPlotTopLocAbs(id).add(1, 0, 1).withY(0);
|
||||||
Location pos2 = getPlotBottomLocAbs(id2);
|
Location pos2 = getPlotBottomLocAbs(id2).withY(Math.min(getWorldHeight(), 255));
|
||||||
pos1.setY(0);
|
|
||||||
pos2.setY(Math.min(getWorldHeight(), 255));
|
|
||||||
LocalBlockQueue queue = hybridPlotWorld.getQueue(false);
|
LocalBlockQueue queue = hybridPlotWorld.getQueue(false);
|
||||||
createSchemAbs(queue, pos1, pos2);
|
createSchemAbs(queue, pos1, pos2);
|
||||||
if (hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
if (hybridPlotWorld.ROAD_SCHEMATIC_ENABLED) {
|
||||||
@ -239,18 +235,18 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
// Set the biome
|
// Set the biome
|
||||||
MainUtil.setBiome(world, value[2], value[3], value[4], value[5], biome);
|
MainUtil.setBiome(world, value[2], value[3], value[4], value[5], biome);
|
||||||
// These two locations are for each component (e.g. bedrock, main block, floor, air)
|
// These two locations are for each component (e.g. bedrock, main block, floor, air)
|
||||||
Location bot = new Location(world, value[2], 0, value[3]);
|
Location bot = Location.at(world, value[2], 0, value[3]);
|
||||||
Location top = new Location(world, value[4], 1, value[5]);
|
Location top = Location.at(world, value[4], 1, value[5]);
|
||||||
queue.setCuboid(bot, top, bedrock);
|
queue.setCuboid(bot, top, bedrock);
|
||||||
// Each component has a different layer
|
// Each component has a different layer
|
||||||
bot.setY(1);
|
bot = bot.withY(1);
|
||||||
top.setY(hybridPlotWorld.PLOT_HEIGHT);
|
top = top.withY(hybridPlotWorld.PLOT_HEIGHT);
|
||||||
queue.setCuboid(bot, top, filling);
|
queue.setCuboid(bot, top, filling);
|
||||||
bot.setY(hybridPlotWorld.PLOT_HEIGHT);
|
bot = bot.withY(hybridPlotWorld.PLOT_HEIGHT);
|
||||||
top.setY(hybridPlotWorld.PLOT_HEIGHT + 1);
|
top = top.withY(hybridPlotWorld.PLOT_HEIGHT + 1);
|
||||||
queue.setCuboid(bot, top, plotfloor);
|
queue.setCuboid(bot, top, plotfloor);
|
||||||
bot.setY(hybridPlotWorld.PLOT_HEIGHT + 1);
|
bot = bot.withY(hybridPlotWorld.PLOT_HEIGHT + 1);
|
||||||
top.setY(getWorldHeight());
|
top = top.withY(getWorldHeight());
|
||||||
queue.setCuboid(bot, top, air);
|
queue.setCuboid(bot, top, air);
|
||||||
// And finally set the schematic, the y value is unimportant for this function
|
// And finally set the schematic, the y value is unimportant for this function
|
||||||
pastePlotSchematic(queue, bot, top);
|
pastePlotSchematic(queue, bot, top);
|
||||||
|
@ -128,15 +128,13 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
return new HybridPlotManager(this);
|
return new HybridPlotManager(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location getSignLocation(Plot plot) {
|
public Location getSignLocation(@NotNull Plot plot) {
|
||||||
plot = plot.getBasePlot(false);
|
plot = plot.getBasePlot(false);
|
||||||
Location bot = plot.getBottomAbs();
|
final Location bot = plot.getBottomAbs();
|
||||||
if (SIGN_LOCATION == null) {
|
if (SIGN_LOCATION == null) {
|
||||||
bot.setY(ROAD_HEIGHT + 1);
|
return bot.withY(ROAD_HEIGHT + 1).add(-1, 0, -2);
|
||||||
return bot.add(-1, 0, -2);
|
|
||||||
} else {
|
} else {
|
||||||
bot.setY(0);
|
return bot.withY(0).add(SIGN_LOCATION.getX(), SIGN_LOCATION.getY(), SIGN_LOCATION.getZ());
|
||||||
return bot.add(SIGN_LOCATION.getX(), SIGN_LOCATION.getY(), SIGN_LOCATION.getZ());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,8 +222,8 @@ public abstract class HybridUtils {
|
|||||||
});
|
});
|
||||||
System.gc();
|
System.gc();
|
||||||
MainUtil.initCache();
|
MainUtil.initCache();
|
||||||
Location botLoc = new Location(world, bot.getX(), bot.getY(), bot.getZ());
|
Location botLoc = Location.at(world, bot.getX(), bot.getY(), bot.getZ());
|
||||||
Location topLoc = new Location(world, top.getX(), top.getY(), top.getZ());
|
Location topLoc = Location.at(world, top.getX(), top.getY(), top.getZ());
|
||||||
ChunkManager.chunkTask(botLoc, topLoc, new RunnableVal<int[]>() {
|
ChunkManager.chunkTask(botLoc, topLoc, new RunnableVal<int[]>() {
|
||||||
@Override public void run(int[] value) {
|
@Override public void run(int[] value) {
|
||||||
int X = value[0];
|
int X = value[0];
|
||||||
|
@ -36,12 +36,13 @@ import com.sk89q.worldedit.world.biome.BiomeTypes;
|
|||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
|
|
||||||
public class SingleWorldGenerator extends IndependentPlotGenerator {
|
public class SingleWorldGenerator extends IndependentPlotGenerator {
|
||||||
private Location bedrock1 = new Location(null, 0, 0, 0);
|
|
||||||
private Location bedrock2 = new Location(null, 15, 0, 15);
|
private static final Location bedrock1 = Location.at("", 0, 0, 0);
|
||||||
private Location dirt1 = new Location(null, 0, 1, 0);
|
private static final Location bedrock2 = Location.at("", 15, 0, 15);
|
||||||
private Location dirt2 = new Location(null, 15, 2, 15);
|
private static final Location dirt1 = Location.at("", 0, 1, 0);
|
||||||
private Location grass1 = new Location(null, 0, 3, 0);
|
private static final Location dirt2 = Location.at("", 15, 2, 15);
|
||||||
private Location grass2 = new Location(null, 15, 3, 15);
|
private static final Location grass1 = Location.at("", 0, 3, 0);
|
||||||
|
private static final Location grass2 = Location.at("", 15, 3, 15);
|
||||||
|
|
||||||
@Override public String getName() {
|
@Override public String getName() {
|
||||||
return "PlotSquared:single";
|
return "PlotSquared:single";
|
||||||
|
@ -62,10 +62,8 @@ public abstract class SquarePlotManager extends GridPlotManager {
|
|||||||
Iterator<CuboidRegion> iterator = regions.iterator();
|
Iterator<CuboidRegion> iterator = regions.iterator();
|
||||||
CuboidRegion region = iterator.next();
|
CuboidRegion region = iterator.next();
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
Location pos1 = new Location(plot.getWorldName(), region.getMinimumPoint().getX(),
|
final Location pos1 = Location.at(plot.getWorldName(), region.getMinimumPoint());
|
||||||
region.getMinimumPoint().getY(), region.getMinimumPoint().getZ());
|
final Location pos2 = Location.at(plot.getWorldName(), region.getMaximumPoint());
|
||||||
Location pos2 = new Location(plot.getWorldName(), region.getMaximumPoint().getX(),
|
|
||||||
region.getMaximumPoint().getY(), region.getMaximumPoint().getZ());
|
|
||||||
RegionManager.manager.regenerateRegion(pos1, pos2, false, this);
|
RegionManager.manager.regenerateRegion(pos1, pos2, false, this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -80,7 +78,7 @@ public abstract class SquarePlotManager extends GridPlotManager {
|
|||||||
+ squarePlotWorld.PLOT_WIDTH))) - (int) Math.floor(squarePlotWorld.ROAD_WIDTH / 2) - 1;
|
+ squarePlotWorld.PLOT_WIDTH))) - (int) Math.floor(squarePlotWorld.ROAD_WIDTH / 2) - 1;
|
||||||
int z = (squarePlotWorld.ROAD_OFFSET_Z + (pz * (squarePlotWorld.ROAD_WIDTH
|
int z = (squarePlotWorld.ROAD_OFFSET_Z + (pz * (squarePlotWorld.ROAD_WIDTH
|
||||||
+ squarePlotWorld.PLOT_WIDTH))) - (int) Math.floor(squarePlotWorld.ROAD_WIDTH / 2) - 1;
|
+ squarePlotWorld.PLOT_WIDTH))) - (int) Math.floor(squarePlotWorld.ROAD_WIDTH / 2) - 1;
|
||||||
return new Location(squarePlotWorld.getWorldName(), x, Math.min(getWorldHeight(), 255), z);
|
return Location.at(squarePlotWorld.getWorldName(), x, Math.min(getWorldHeight(), 255), z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public PlotId getPlotIdAbs(int x, int y, int z) {
|
@Override public PlotId getPlotIdAbs(int x, int y, int z) {
|
||||||
@ -247,7 +245,6 @@ public abstract class SquarePlotManager extends GridPlotManager {
|
|||||||
int z = (squarePlotWorld.ROAD_OFFSET_Z + (pz * (squarePlotWorld.ROAD_WIDTH
|
int z = (squarePlotWorld.ROAD_OFFSET_Z + (pz * (squarePlotWorld.ROAD_WIDTH
|
||||||
+ squarePlotWorld.PLOT_WIDTH))) - squarePlotWorld.PLOT_WIDTH - (int) Math
|
+ squarePlotWorld.PLOT_WIDTH))) - squarePlotWorld.PLOT_WIDTH - (int) Math
|
||||||
.floor(squarePlotWorld.ROAD_WIDTH / 2);
|
.floor(squarePlotWorld.ROAD_WIDTH / 2);
|
||||||
return new Location(squarePlotWorld.getWorldName(), x, squarePlotWorld.getMinBuildHeight(),
|
return Location.at(squarePlotWorld.getWorldName(), x, squarePlotWorld.getMinBuildHeight(), z);
|
||||||
z);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,15 +41,15 @@ import org.khelekore.prtree.SimpleMBR;
|
|||||||
/**
|
/**
|
||||||
* An unmodifiable 6-tuple (world,x,y,z,yaw,pitch)
|
* An unmodifiable 6-tuple (world,x,y,z,yaw,pitch)
|
||||||
*/
|
*/
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode @SuppressWarnings("unused")
|
||||||
public final class Location implements Comparable<Location> {
|
public final class Location implements Comparable<Location> {
|
||||||
|
|
||||||
@Getter private final float yaw;
|
@Getter private final float yaw;
|
||||||
@Getter private final float pitch;
|
@Getter private final float pitch;
|
||||||
@Getter private final String world;
|
|
||||||
@Getter private final BlockVector3 blockVector3;
|
@Getter private final BlockVector3 blockVector3;
|
||||||
|
private final World<?> world;
|
||||||
|
|
||||||
private Location(@NotNull final String world, @NotNull final BlockVector3 blockVector3,
|
private Location(@NotNull final World<?> world, @NotNull final BlockVector3 blockVector3,
|
||||||
final float yaw, final float pitch) {
|
final float yaw, final float pitch) {
|
||||||
this.world = Preconditions.checkNotNull(world, "World may not be null");
|
this.world = Preconditions.checkNotNull(world, "World may not be null");
|
||||||
this.blockVector3 = Preconditions.checkNotNull(blockVector3, "Vector may not be null");
|
this.blockVector3 = Preconditions.checkNotNull(blockVector3, "Vector may not be null");
|
||||||
@ -57,6 +57,19 @@ public final class Location implements Comparable<Location> {
|
|||||||
this.pitch = pitch;
|
this.pitch = pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Location(@NotNull final String worldName, @NotNull final BlockVector3 blockVector3,
|
||||||
|
final float yaw, final float pitch) {
|
||||||
|
Preconditions.checkNotNull(worldName, "World name may not be null");
|
||||||
|
if (worldName.isEmpty()) {
|
||||||
|
this.world = World.nullWorld();
|
||||||
|
} else {
|
||||||
|
this.world = PlotSquared.platform().getPlatformWorld(worldName);
|
||||||
|
}
|
||||||
|
this.blockVector3 = Preconditions.checkNotNull(blockVector3, "Vector may not be null");
|
||||||
|
this.yaw = yaw;
|
||||||
|
this.pitch = pitch;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new location
|
* Construct a new location
|
||||||
*
|
*
|
||||||
@ -113,6 +126,80 @@ public final class Location implements Comparable<Location> {
|
|||||||
return at(world, BlockVector3.at(x, y, z));
|
return at(world, BlockVector3.at(x, y, z));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new location
|
||||||
|
*
|
||||||
|
* @param world World
|
||||||
|
* @param blockVector3 (x,y,z) vector
|
||||||
|
* @param yaw yaw
|
||||||
|
* @param pitch pitch
|
||||||
|
* @return New location
|
||||||
|
*/
|
||||||
|
@NotNull public static Location at(@NotNull final World<?> world,
|
||||||
|
@NotNull final BlockVector3 blockVector3, final float yaw, final float pitch) {
|
||||||
|
return new Location(world, blockVector3, yaw, pitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new location with yaw and pitch equal to 0
|
||||||
|
*
|
||||||
|
* @param world World
|
||||||
|
* @param blockVector3 (x,y,z) vector
|
||||||
|
* @return New location
|
||||||
|
*/
|
||||||
|
@NotNull public static Location at(@NotNull final World<?> world,
|
||||||
|
@NotNull final BlockVector3 blockVector3) {
|
||||||
|
return at(world, blockVector3, 0f, 0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new location
|
||||||
|
*
|
||||||
|
* @param world World
|
||||||
|
* @param x X coordinate
|
||||||
|
* @param y Y coordinate
|
||||||
|
* @param z Z coordinate
|
||||||
|
* @param yaw Yaw
|
||||||
|
* @param pitch Pitch
|
||||||
|
* @return New location
|
||||||
|
*/
|
||||||
|
@NotNull public static Location at(@NotNull final World<?> world, final int x, final int y,
|
||||||
|
final int z, final float yaw, final float pitch) {
|
||||||
|
return at(world, BlockVector3.at(x, y, z), yaw, pitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new location with yaw and pitch equal to 0
|
||||||
|
*
|
||||||
|
* @param world World
|
||||||
|
* @param x X coordinate
|
||||||
|
* @param y Y coordinate
|
||||||
|
* @param z Z coordinate
|
||||||
|
* @return New location
|
||||||
|
*/
|
||||||
|
@NotNull public static Location at(@NotNull final World<?> world, final int x, final int y,
|
||||||
|
final int z) {
|
||||||
|
return at(world, BlockVector3.at(x, y, z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the world object
|
||||||
|
*
|
||||||
|
* @return World object
|
||||||
|
*/
|
||||||
|
@NotNull public World<?> getWorld() {
|
||||||
|
return this.world;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name of the world this location is in
|
||||||
|
*
|
||||||
|
* @return World name
|
||||||
|
*/
|
||||||
|
@NotNull public String getWorldName() {
|
||||||
|
return this.world.getName();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the X coordinate
|
* Get the X coordinate
|
||||||
*
|
*
|
||||||
|
84
Core/src/main/java/com/plotsquared/core/location/World.java
Normal file
84
Core/src/main/java/com/plotsquared/core/location/World.java
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* _____ _ _ _____ _
|
||||||
|
* | __ \| | | | / ____| | |
|
||||||
|
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||||
|
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||||
|
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||||
|
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||||
|
* | |
|
||||||
|
* |_|
|
||||||
|
* PlotSquared plot management system for Minecraft
|
||||||
|
* Copyright (C) 2020 IntellectualSites
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.plotsquared.core.location;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlotSquared representation of a platform world
|
||||||
|
*
|
||||||
|
* @param <T> Platform world type
|
||||||
|
*/
|
||||||
|
public interface World<T> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the platform world represented by this world
|
||||||
|
*
|
||||||
|
* @return Platform world
|
||||||
|
*/
|
||||||
|
@NotNull T getPlatformWorld();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name of the world
|
||||||
|
*
|
||||||
|
* @return World name
|
||||||
|
*/
|
||||||
|
@NotNull String getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a {@link NullWorld} implementation
|
||||||
|
*
|
||||||
|
* @return NullWorld instance
|
||||||
|
*/
|
||||||
|
static <T> NullWorld<T> nullWorld() {
|
||||||
|
return new NullWorld<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
class NullWorld<T> implements World<T> {
|
||||||
|
|
||||||
|
private NullWorld() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull @Override public T getPlatformWorld() {
|
||||||
|
throw new UnsupportedOperationException("Cannot get platform world from NullWorld");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public @NotNull String getName() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public boolean equals(final Object obj) {
|
||||||
|
return obj instanceof NullWorld;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public int hashCode() {
|
||||||
|
return "null".hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -56,11 +56,11 @@ public class ConsolePlayer extends PlotPlayer<Actor> {
|
|||||||
Location location;
|
Location location;
|
||||||
if (area != null) {
|
if (area != null) {
|
||||||
CuboidRegion region = area.getRegion();
|
CuboidRegion region = area.getRegion();
|
||||||
location = new Location(area.getWorldName(),
|
location = Location.at(area.getWorldName(),
|
||||||
region.getMinimumPoint().getX() + region.getMaximumPoint().getX() / 2, 0,
|
region.getMinimumPoint().getX() + region.getMaximumPoint().getX() / 2, 0,
|
||||||
region.getMinimumPoint().getZ() + region.getMaximumPoint().getZ() / 2);
|
region.getMinimumPoint().getZ() + region.getMaximumPoint().getZ() / 2);
|
||||||
} else {
|
} else {
|
||||||
location = new Location("world", 0, 0, 0);
|
location = Location.at("world", 0, 0, 0);
|
||||||
}
|
}
|
||||||
setMeta("location", location);
|
setMeta("location", location);
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer
|
|||||||
*/
|
*/
|
||||||
public int getPlotCount() {
|
public int getPlotCount() {
|
||||||
if (!Settings.Limit.GLOBAL) {
|
if (!Settings.Limit.GLOBAL) {
|
||||||
return getPlotCount(getLocation().getWorld());
|
return getPlotCount(getLocation().getWorldName());
|
||||||
}
|
}
|
||||||
final AtomicInteger count = new AtomicInteger(0);
|
final AtomicInteger count = new AtomicInteger(0);
|
||||||
final UUID uuid = getUUID();
|
final UUID uuid = getUUID();
|
||||||
@ -286,7 +286,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer
|
|||||||
|
|
||||||
public int getClusterCount() {
|
public int getClusterCount() {
|
||||||
if (!Settings.Limit.GLOBAL) {
|
if (!Settings.Limit.GLOBAL) {
|
||||||
return getClusterCount(getLocation().getWorld());
|
return getClusterCount(getLocation().getWorldName());
|
||||||
}
|
}
|
||||||
final AtomicInteger count = new AtomicInteger(0);
|
final AtomicInteger count = new AtomicInteger(0);
|
||||||
PlotSquared.get().getPlotAreaManager().forEachPlotArea(value -> {
|
PlotSquared.get().getPlotAreaManager().forEachPlotArea(value -> {
|
||||||
|
@ -1442,7 +1442,7 @@ public class Plot {
|
|||||||
return this.getDefaultHomeSynchronous(true);
|
return this.getDefaultHomeSynchronous(true);
|
||||||
} else {
|
} else {
|
||||||
Location bottom = this.getBottomAbs();
|
Location bottom = this.getBottomAbs();
|
||||||
Location location = Location.at(bottom.getWorld(), bottom.getX() + home.getX(),
|
Location location = Location.at(bottom.getWorldName(), bottom.getX() + home.getX(),
|
||||||
bottom.getY() + home.getY(), bottom.getZ() + home.getZ(), home.getYaw(),
|
bottom.getY() + home.getY(), bottom.getZ() + home.getZ(), home.getYaw(),
|
||||||
home.getPitch());
|
home.getPitch());
|
||||||
if (!isLoaded()) {
|
if (!isLoaded()) {
|
||||||
@ -1466,7 +1466,7 @@ public class Plot {
|
|||||||
this.getDefaultHome(result);
|
this.getDefaultHome(result);
|
||||||
} else {
|
} else {
|
||||||
Location bottom = this.getBottomAbs();
|
Location bottom = this.getBottomAbs();
|
||||||
Location location = Location.at(bottom.getWorld(), bottom.getX() + home.getX(),
|
Location location = Location.at(bottom.getWorldName(), bottom.getX() + home.getX(),
|
||||||
bottom.getY() + home.getY(), bottom.getZ() + home.getZ(), home.getYaw(),
|
bottom.getY() + home.getY(), bottom.getZ() + home.getZ(), home.getYaw(),
|
||||||
home.getPitch());
|
home.getPitch());
|
||||||
if (!isLoaded()) {
|
if (!isLoaded()) {
|
||||||
@ -1850,7 +1850,7 @@ public class Plot {
|
|||||||
*/
|
*/
|
||||||
public void getBiome(Consumer<BiomeType> result) {
|
public void getBiome(Consumer<BiomeType> result) {
|
||||||
this.getCenter(location -> WorldUtil.IMP
|
this.getCenter(location -> WorldUtil.IMP
|
||||||
.getBiome(location.getWorld(), location.getX(), location.getZ(), result));
|
.getBiome(location.getWorldName(), location.getX(), location.getZ(), result));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1859,7 +1859,7 @@ public class Plot {
|
|||||||
@Deprecated public BiomeType getBiomeSynchronous() {
|
@Deprecated public BiomeType getBiomeSynchronous() {
|
||||||
final Location location = this.getCenterSynchronous();
|
final Location location = this.getCenterSynchronous();
|
||||||
return WorldUtil.IMP
|
return WorldUtil.IMP
|
||||||
.getBiomeSynchronous(location.getWorld(), location.getX(), location.getZ());
|
.getBiomeSynchronous(location.getWorldName(), location.getX(), location.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Better documentation needed.
|
//TODO Better documentation needed.
|
||||||
|
@ -585,7 +585,7 @@ public abstract class PlotArea {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean contains(@NotNull final Location location) {
|
public boolean contains(@NotNull final Location location) {
|
||||||
return StringMan.isEqual(location.getWorld(), this.getWorldName()) && (
|
return StringMan.isEqual(location.getWorldName(), this.getWorldName()) && (
|
||||||
getRegionAbs() == null || this.region.contains(location.getBlockVector3()));
|
getRegionAbs() == null || this.region.contains(location.getBlockVector3()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import com.plotsquared.core.location.Location;
|
|||||||
import com.plotsquared.core.util.MainUtil;
|
import com.plotsquared.core.util.MainUtil;
|
||||||
import com.plotsquared.core.util.RegionUtil;
|
import com.plotsquared.core.util.RegionUtil;
|
||||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -151,17 +152,17 @@ public class PlotCluster {
|
|||||||
+ this.pos2.y;
|
+ this.pos2.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getHome(Consumer<Location> result) {
|
public void getHome(@NotNull final Consumer<Location> result) {
|
||||||
BlockLoc home = this.settings.getPosition();
|
final BlockLoc home = this.settings.getPosition();
|
||||||
Consumer<Location> locationConsumer = toReturn -> {
|
Consumer<Location> locationConsumer = toReturn ->
|
||||||
MainUtil.getHighestBlock(this.area.getWorldName(), toReturn.getX(), toReturn.getZ(),
|
MainUtil.getHighestBlock(this.area.getWorldName(), toReturn.getX(), toReturn.getZ(),
|
||||||
max -> {
|
max -> {
|
||||||
if (max > toReturn.getY()) {
|
if (max > toReturn.getY()) {
|
||||||
toReturn.setY(1 + max);
|
result.accept(toReturn.withY(1 + max));
|
||||||
|
} else {
|
||||||
|
result.accept(toReturn);
|
||||||
}
|
}
|
||||||
result.accept(toReturn);
|
});
|
||||||
});
|
|
||||||
};
|
|
||||||
if (home.getY() == 0) {
|
if (home.getY() == 0) {
|
||||||
// default pos
|
// default pos
|
||||||
Plot center = getCenterPlot();
|
Plot center = getCenterPlot();
|
||||||
@ -170,7 +171,7 @@ public class PlotCluster {
|
|||||||
if (toReturn.getY() == 0) {
|
if (toReturn.getY() == 0) {
|
||||||
PlotManager manager = this.area.getPlotManager();
|
PlotManager manager = this.area.getPlotManager();
|
||||||
Location locationSign = manager.getSignLoc(center);
|
Location locationSign = manager.getSignLoc(center);
|
||||||
toReturn.setY(locationSign.getY());
|
toReturn = toReturn.withY(locationSign.getY());
|
||||||
}
|
}
|
||||||
locationConsumer.accept(toReturn);
|
locationConsumer.accept(toReturn);
|
||||||
});
|
});
|
||||||
|
@ -58,7 +58,7 @@ public class DefaultPlotAreaManager implements PlotAreaManager {
|
|||||||
if (location == null) {
|
if (location == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final PlotWorld world = this.plotWorlds.get(location.getWorld());
|
final PlotWorld world = this.plotWorlds.get(location.getWorldName());
|
||||||
if (world == null) {
|
if (world == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -156,23 +156,23 @@ public class SinglePlotArea extends GridPlotWorld {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable @Override public Plot getOwnedPlot(@NotNull final Location location) {
|
@Nullable @Override public Plot getOwnedPlot(@NotNull final Location location) {
|
||||||
PlotId pid = PlotId.fromStringOrNull(location.getWorld());
|
PlotId pid = PlotId.fromStringOrNull(location.getWorldName());
|
||||||
Plot plot = pid == null ? null : this.plots.get(pid);
|
Plot plot = pid == null ? null : this.plots.get(pid);
|
||||||
return plot == null ? null : plot.getBasePlot(false);
|
return plot == null ? null : plot.getBasePlot(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable @Override public Plot getOwnedPlotAbs(@NotNull Location location) {
|
@Nullable @Override public Plot getOwnedPlotAbs(@NotNull Location location) {
|
||||||
PlotId pid = PlotId.fromStringOrNull(location.getWorld());
|
PlotId pid = PlotId.fromStringOrNull(location.getWorldName());
|
||||||
return pid == null ? null : plots.get(pid);
|
return pid == null ? null : plots.get(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable @Override public Plot getPlot(@NotNull final Location location) {
|
@Nullable @Override public Plot getPlot(@NotNull final Location location) {
|
||||||
PlotId pid = PlotId.fromStringOrNull(location.getWorld());
|
PlotId pid = PlotId.fromStringOrNull(location.getWorldName());
|
||||||
return pid == null ? null : getPlot(pid);
|
return pid == null ? null : getPlot(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable @Override public Plot getPlotAbs(@NotNull final Location location) {
|
@Nullable @Override public Plot getPlotAbs(@NotNull final Location location) {
|
||||||
final PlotId pid = PlotId.fromStringOrNull(location.getWorld());
|
final PlotId pid = PlotId.fromStringOrNull(location.getWorldName());
|
||||||
return pid == null ? null : getPlotAbs(pid);
|
return pid == null ? null : getPlotAbs(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ public class SinglePlotAreaManager extends DefaultPlotAreaManager {
|
|||||||
if (location == null) {
|
if (location == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String world = location.getWorld();
|
String world = location.getWorldName();
|
||||||
return isWorld(world) || world.equals("*") || super.getAllPlotAreas().length == 0 ?
|
return isWorld(world) || world.equals("*") || super.getAllPlotAreas().length == 0 ?
|
||||||
area :
|
area :
|
||||||
super.getApplicablePlotArea(location);
|
super.getApplicablePlotArea(location);
|
||||||
@ -118,7 +118,7 @@ public class SinglePlotAreaManager extends DefaultPlotAreaManager {
|
|||||||
if (found != null) {
|
if (found != null) {
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
return isWorld(location.getWorld()) || location.getWorld().equals("*") ? area : null;
|
return isWorld(location.getWorldName()) || location.getWorldName().equals("*") ? area : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @NotNull public PlotArea[] getPlotAreas(@NotNull final String world, @NotNull final CuboidRegion region) {
|
@Override @NotNull public PlotArea[] getPlotAreas(@NotNull final String world, @NotNull final CuboidRegion region) {
|
||||||
|
@ -35,6 +35,7 @@ import com.plotsquared.core.util.MainUtil;
|
|||||||
import com.plotsquared.core.util.SetupUtils;
|
import com.plotsquared.core.util.SetupUtils;
|
||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import com.sk89q.worldedit.function.pattern.Pattern;
|
import com.sk89q.worldedit.function.pattern.Pattern;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -52,12 +53,12 @@ public class SinglePlotManager extends PlotManager {
|
|||||||
return new PlotId(0, 0);
|
return new PlotId(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getPlotBottomLocAbs(PlotId plotId) {
|
@Override public Location getPlotBottomLocAbs(@NotNull final PlotId plotId) {
|
||||||
return new Location(plotId.toCommaSeparatedString(), -30000000, 0, -30000000);
|
return Location.at(plotId.toCommaSeparatedString(), -30000000, 0, -30000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getPlotTopLocAbs(PlotId plotId) {
|
@Override public Location getPlotTopLocAbs(@NotNull final PlotId plotId) {
|
||||||
return new Location(plotId.toCommaSeparatedString(), 30000000, 0, 30000000);
|
return Location.at(plotId.toCommaSeparatedString(), 30000000, 0, 30000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean clearPlot(Plot plot, final Runnable whenDone) {
|
@Override public boolean clearPlot(Plot plot, final Runnable whenDone) {
|
||||||
|
@ -31,6 +31,7 @@ import com.sk89q.worldedit.math.BlockVector3;
|
|||||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||||
import com.sk89q.worldedit.world.block.BaseBlock;
|
import com.sk89q.worldedit.world.block.BaseBlock;
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -46,7 +47,7 @@ public class ChunkBlockQueue extends ScopedLocalBlockQueue {
|
|||||||
private final BlockVector3 top;
|
private final BlockVector3 top;
|
||||||
|
|
||||||
public ChunkBlockQueue(BlockVector3 bot, BlockVector3 top, boolean biomes) {
|
public ChunkBlockQueue(BlockVector3 bot, BlockVector3 top, boolean biomes) {
|
||||||
super(null, new Location(null, 0, 0, 0), new Location(null, 15, 255, 15));
|
super(null, Location.at("", 0, 0, 0), Location.at("", 15, 255, 15));
|
||||||
this.width = top.getX() - bot.getX() + 1;
|
this.width = top.getX() - bot.getX() + 1;
|
||||||
this.length = top.getZ() - bot.getZ() + 1;
|
this.length = top.getZ() - bot.getZ() + 1;
|
||||||
this.area = width * length;
|
this.area = width * length;
|
||||||
@ -113,15 +114,15 @@ public class ChunkBlockQueue extends ScopedLocalBlockQueue {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable public String getWorld() {
|
@Override @NotNull public String getWorld() {
|
||||||
return null;
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getMax() {
|
@Override public Location getMax() {
|
||||||
return new Location(getWorld(), top.getX(), top.getY(), top.getZ());
|
return Location.at(getWorld(), top.getX(), top.getY(), top.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Location getMin() {
|
@Override public Location getMin() {
|
||||||
return new Location(getWorld(), bot.getX(), bot.getY(), bot.getZ());
|
return Location.at(getWorld(), bot.getX(), bot.getY(), bot.getZ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ public abstract class LocalBlockQueue {
|
|||||||
|
|
||||||
for (final PlotPlayer pp : PlotSquared.platform().getPlayerManager().getPlayers()) {
|
for (final PlotPlayer pp : PlotSquared.platform().getPlayerManager().getPlayers()) {
|
||||||
Location pLoc = pp.getLocation();
|
Location pLoc = pp.getLocation();
|
||||||
if (!StringMan.isEqual(getWorld(), pLoc.getWorld()) || !pLoc.getChunkLocation()
|
if (!StringMan.isEqual(getWorld(), pLoc.getWorldName()) || !pLoc.getChunkLocation()
|
||||||
.equals(loc)) {
|
.equals(loc)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ import com.sk89q.worldedit.function.pattern.Pattern;
|
|||||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||||
import com.sk89q.worldedit.world.block.BaseBlock;
|
import com.sk89q.worldedit.world.block.BaseBlock;
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ScopedLocalBlockQueue extends DelegateLocalBlockQueue {
|
public class ScopedLocalBlockQueue extends DelegateLocalBlockQueue {
|
||||||
private final int minX;
|
private final int minX;
|
||||||
@ -92,11 +93,11 @@ public class ScopedLocalBlockQueue extends DelegateLocalBlockQueue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Location getMin() {
|
public Location getMin() {
|
||||||
return new Location(getWorld(), minX, minY, minZ);
|
return Location.at(this.getWorld(), this.minX, this.minY, this.minZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location getMax() {
|
public Location getMax() {
|
||||||
return new Location(getWorld(), maxX, maxY, maxZ);
|
return Location.at(this.getWorld(), this.maxX, this.maxY, this.maxZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -107,26 +108,22 @@ public class ScopedLocalBlockQueue extends DelegateLocalBlockQueue {
|
|||||||
*
|
*
|
||||||
* @param task
|
* @param task
|
||||||
*/
|
*/
|
||||||
public void mapByType2D(RunnableVal3<Plot, Integer, Integer> task) {
|
public void mapByType2D(@NotNull final RunnableVal3<Plot, Integer, Integer> task) {
|
||||||
int bx = minX;
|
final int bx = minX;
|
||||||
int bz = minZ;
|
final int bz = minZ;
|
||||||
PlotArea area = PlotSquared.get().getPlotAreaManager().getPlotArea(getWorld(), null);
|
final PlotArea area = PlotSquared.get().getPlotAreaManager().getPlotArea(getWorld(), null);
|
||||||
Location location = new Location(getWorld(), bx, 0, bz);
|
final Location location = Location.at(getWorld(), bx, 0, bz);
|
||||||
if (area != null) {
|
if (area != null) {
|
||||||
PlotManager manager = area.getPlotManager();
|
PlotManager manager = area.getPlotManager();
|
||||||
for (int x = 0; x < 16; x++) {
|
for (int x = 0; x < 16; x++) {
|
||||||
location.setX(bx + x);
|
|
||||||
for (int z = 0; z < 16; z++) {
|
for (int z = 0; z < 16; z++) {
|
||||||
location.setZ(bz + z);
|
task.run(area.getPlotAbs(location.withX(bx + x).withZ(bz + z)), x, z);
|
||||||
task.run(area.getPlotAbs(location), x, z);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int x = 0; x < 16; x++) {
|
for (int x = 0; x < 16; x++) {
|
||||||
location.setX(bx + x);
|
|
||||||
for (int z = 0; z < 16; z++) {
|
for (int z = 0; z < 16; z++) {
|
||||||
location.setZ(bz + z);
|
task.run(location.withX(bx + x).withZ(bz + z).getPlotAbs(), x, z);
|
||||||
task.run(location.getPlotAbs(), x, z);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,8 +56,8 @@ public abstract class ChunkManager {
|
|||||||
int blockX = loc.getX() << 4;
|
int blockX = loc.getX() << 4;
|
||||||
int blockZ = loc.getZ() << 4;
|
int blockZ = loc.getZ() << 4;
|
||||||
ScopedLocalBlockQueue scoped =
|
ScopedLocalBlockQueue scoped =
|
||||||
new ScopedLocalBlockQueue(queue, new Location(world, blockX, 0, blockZ),
|
new ScopedLocalBlockQueue(queue, Location.at(world, blockX, 0, blockZ),
|
||||||
new Location(world, blockX + 15, 255, blockZ + 15));
|
Location.at(world, blockX + 15, 255, blockZ + 15));
|
||||||
if (force != null) {
|
if (force != null) {
|
||||||
force.run(scoped);
|
force.run(scoped);
|
||||||
} else {
|
} else {
|
||||||
@ -108,9 +108,9 @@ public abstract class ChunkManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CuboidRegion value = regions.remove(0);
|
CuboidRegion value = regions.remove(0);
|
||||||
Location pos1 = new Location(plot.getWorldName(), value.getMinimumPoint().getX(), 0,
|
Location pos1 = Location.at(plot.getWorldName(), value.getMinimumPoint().getX(), 0,
|
||||||
value.getMinimumPoint().getZ());
|
value.getMinimumPoint().getZ());
|
||||||
Location pos2 = new Location(plot.getWorldName(), value.getMaximumPoint().getX(), 0,
|
Location pos2 = Location.at(plot.getWorldName(), value.getMaximumPoint().getX(), 0,
|
||||||
value.getMaximumPoint().getZ());
|
value.getMaximumPoint().getZ());
|
||||||
chunkTask(pos1, pos2, task, this, allocate);
|
chunkTask(pos1, pos2, task, this, allocate);
|
||||||
}
|
}
|
||||||
@ -191,12 +191,12 @@ public abstract class ChunkManager {
|
|||||||
int z1 = chunk.getZ() << 4;
|
int z1 = chunk.getZ() << 4;
|
||||||
int x2 = x1 + 15;
|
int x2 = x1 + 15;
|
||||||
int z2 = z1 + 15;
|
int z2 = z1 + 15;
|
||||||
Location bot = new Location(world, x1, 0, z1);
|
Location bot = Location.at(world, x1, 0, z1);
|
||||||
Plot plot = bot.getOwnedPlotAbs();
|
Plot plot = bot.getOwnedPlotAbs();
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
return plot;
|
return plot;
|
||||||
}
|
}
|
||||||
Location top = new Location(world, x2, 0, z2);
|
Location top = Location.at(world, x2, 0, z2);
|
||||||
plot = top.getOwnedPlotAbs();
|
plot = top.getOwnedPlotAbs();
|
||||||
return plot;
|
return plot;
|
||||||
}
|
}
|
||||||
|
@ -397,12 +397,10 @@ public class MainUtil {
|
|||||||
return plot.getFlag(ServerPlotFlag.class);
|
return plot.getFlag(ServerPlotFlag.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull public static Location[] getCorners(String world, CuboidRegion region) {
|
@NotNull public static Location[] getCorners(@NotNull final String world, @NotNull final CuboidRegion region) {
|
||||||
BlockVector3 min = region.getMinimumPoint();
|
final BlockVector3 min = region.getMinimumPoint();
|
||||||
BlockVector3 max = region.getMaximumPoint();
|
final BlockVector3 max = region.getMaximumPoint();
|
||||||
Location pos1 = new Location(world, min.getX(), min.getY(), min.getZ());
|
return new Location[] {Location.at(world, min), Location.at(world, max)};
|
||||||
Location pos2 = new Location(world, max.getX(), max.getY(), max.getZ());
|
|
||||||
return new Location[] {pos1, pos2};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -426,16 +424,16 @@ public class MainUtil {
|
|||||||
Location pos1 = corners[0];
|
Location pos1 = corners[0];
|
||||||
Location pos2 = corners[1];
|
Location pos2 = corners[1];
|
||||||
if (pos2.getX() > max.getX()) {
|
if (pos2.getX() > max.getX()) {
|
||||||
max.setX(pos2.getX());
|
max = max.withX(pos2.getX());
|
||||||
}
|
}
|
||||||
if (pos1.getX() < min.getX()) {
|
if (pos1.getX() < min.getX()) {
|
||||||
min.setX(pos1.getX());
|
min = min.withX(pos1.getX());
|
||||||
}
|
}
|
||||||
if (pos2.getZ() > max.getZ()) {
|
if (pos2.getZ() > max.getZ()) {
|
||||||
max.setZ(pos2.getZ());
|
max = max.withZ(pos2.getZ());
|
||||||
}
|
}
|
||||||
if (pos1.getZ() < min.getZ()) {
|
if (pos1.getZ() < min.getZ()) {
|
||||||
min.setZ(pos1.getZ());
|
min = min.withZ(pos1.getZ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Location[] {min, max};
|
return new Location[] {min, max};
|
||||||
|
@ -75,7 +75,7 @@ public class OperationUtil {
|
|||||||
weWorld = ((Player) actor).getWorld();
|
weWorld = ((Player) actor).getWorld();
|
||||||
} else {
|
} else {
|
||||||
@NotNull Location loc = plotPlayer.getLocation();
|
@NotNull Location loc = plotPlayer.getLocation();
|
||||||
String world = loc.getWorld();
|
String world = loc.getWorldName();
|
||||||
weWorld = getWorld(world);
|
weWorld = getWorld(world);
|
||||||
}
|
}
|
||||||
return weWorld;
|
return weWorld;
|
||||||
|
@ -155,9 +155,9 @@ public abstract class RegionManager {
|
|||||||
final Pattern blocks, int minY, int maxY) {
|
final Pattern blocks, int minY, int maxY) {
|
||||||
LocalBlockQueue queue = area.getQueue(false);
|
LocalBlockQueue queue = area.getQueue(false);
|
||||||
for (CuboidRegion region : regions) {
|
for (CuboidRegion region : regions) {
|
||||||
Location pos1 = new Location(area.getWorldName(), region.getMinimumPoint().getX(), minY,
|
Location pos1 = Location.at(area.getWorldName(), region.getMinimumPoint().getX(), minY,
|
||||||
region.getMinimumPoint().getZ());
|
region.getMinimumPoint().getZ());
|
||||||
Location pos2 = new Location(area.getWorldName(), region.getMaximumPoint().getX(), maxY,
|
Location pos2 = Location.at(area.getWorldName(), region.getMaximumPoint().getX(), maxY,
|
||||||
region.getMaximumPoint().getZ());
|
region.getMaximumPoint().getZ());
|
||||||
queue.setCuboid(pos1, pos2, blocks);
|
queue.setCuboid(pos1, pos2, blocks);
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ public class WEManager {
|
|||||||
HashSet<CuboidRegion> regions = new HashSet<>();
|
HashSet<CuboidRegion> regions = new HashSet<>();
|
||||||
UUID uuid = player.getUUID();
|
UUID uuid = player.getUUID();
|
||||||
Location location = player.getLocation();
|
Location location = player.getLocation();
|
||||||
String world = location.getWorld();
|
String world = location.getWorldName();
|
||||||
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
if (!PlotSquared.get().getPlotAreaManager().hasPlotArea(world)) {
|
||||||
regions.add(RegionUtil
|
regions.add(RegionUtil
|
||||||
.createRegion(Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE,
|
.createRegion(Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE,
|
||||||
|
@ -151,7 +151,7 @@ public abstract class WorldUtil {
|
|||||||
int trx = top.getX() >> 9;
|
int trx = top.getX() >> 9;
|
||||||
int trz = top.getZ() >> 9;
|
int trz = top.getZ() >> 9;
|
||||||
Set<BlockVector2> files =
|
Set<BlockVector2> files =
|
||||||
RegionManager.manager.getChunkChunks(bot.getWorld());
|
RegionManager.manager.getChunkChunks(bot.getWorldName());
|
||||||
for (BlockVector2 mca : files) {
|
for (BlockVector2 mca : files) {
|
||||||
if (mca.getX() >= brx && mca.getX() <= trx && mca.getZ() >= brz
|
if (mca.getX() >= brx && mca.getX() <= trx && mca.getZ() >= brz
|
||||||
&& mca.getZ() <= trz) {
|
&& mca.getZ() <= trz) {
|
||||||
|
Loading…
Reference in New Issue
Block a user