mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 11:55:38 +01:00
Allow specifying Y value for default plot home
This commit is contained in:
parent
a529518b91
commit
76113cb0ab
@ -1248,8 +1248,9 @@ public class Plot {
|
||||
x = bot.getX() + loc.x;
|
||||
z = bot.getZ() + loc.z;
|
||||
}
|
||||
int y = isLoaded() ? WorldUtil.IMP.getHighestBlock(plot.getWorldName(), x, z) : 62;
|
||||
return new Location(plot.getWorldName(), x, y + 1, z);
|
||||
int y = loc.y < 1 ? (isLoaded() ? WorldUtil.IMP.getHighestBlock(plot.getWorldName(), x, z) + 1 : 63) : loc.y;
|
||||
PlotSquared.log("Getting home with Y " + y);
|
||||
return new Location(plot.getWorldName(), x, y, z);
|
||||
}
|
||||
// Side
|
||||
return plot.getSide();
|
||||
|
@ -272,16 +272,16 @@ public abstract class PlotArea {
|
||||
this.NONMEMBER_HOME = PlotLoc.fromString(homeNonMembers);
|
||||
}
|
||||
|
||||
|
||||
if ("side".equalsIgnoreCase(homeDefault)) {
|
||||
this.DEFAULT_HOME = null;
|
||||
} else if (StringMan.isEqualIgnoreCaseToAny(homeDefault, "center", "middle")) {
|
||||
this.DEFAULT_HOME = new PlotLoc(Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
} else {
|
||||
try {
|
||||
String[] split = homeDefault.split(",");
|
||||
/*String[] split = homeDefault.split(",");
|
||||
this.DEFAULT_HOME =
|
||||
new PlotLoc(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
|
||||
new PlotLoc(Integer.parseInt(split[0]), Integer.parseInt(split[1]));*/
|
||||
this.DEFAULT_HOME = PlotLoc.fromString(homeDefault);
|
||||
} catch (NumberFormatException ignored) {
|
||||
this.DEFAULT_HOME = null;
|
||||
}
|
||||
|
@ -3,11 +3,20 @@ package com.github.intellectualsites.plotsquared.plot.object;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.StringMan;
|
||||
|
||||
public class PlotLoc {
|
||||
|
||||
public int x;
|
||||
public int y;
|
||||
public int z;
|
||||
|
||||
public PlotLoc(int x, int z) {
|
||||
this.x = x;
|
||||
this.y = -1;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public PlotLoc(int x, int y, int z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
@ -19,7 +28,13 @@ public class PlotLoc {
|
||||
} else {
|
||||
try {
|
||||
String[] split = input.split(",");
|
||||
return new PlotLoc(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
|
||||
if (split.length == 2) {
|
||||
return new PlotLoc(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
|
||||
} else if (split.length == 3) {
|
||||
return new PlotLoc(Integer.parseInt(split[0]), Integer.parseInt(split[1]), Integer.parseInt(split[2]));
|
||||
} else {
|
||||
throw new IllegalArgumentException(String.format("Unable to deserialize: %s", input));
|
||||
}
|
||||
} catch (NumberFormatException ignored) {
|
||||
return null;
|
||||
}
|
||||
@ -30,12 +45,16 @@ public class PlotLoc {
|
||||
int prime = 31;
|
||||
int result = 1;
|
||||
result = (prime * result) + this.x;
|
||||
result = (prime * result) + this.y;
|
||||
result = (prime * result) + this.z;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override public String toString() {
|
||||
return this.x + "," + this.z;
|
||||
if (this.y == -1) {
|
||||
return String.format("%d,%d", x, z);
|
||||
}
|
||||
return String.format("%d,%d,%d", x, y, z);
|
||||
}
|
||||
|
||||
@Override public boolean equals(Object obj) {
|
||||
@ -49,6 +68,6 @@ public class PlotLoc {
|
||||
return false;
|
||||
}
|
||||
PlotLoc other = (PlotLoc) obj;
|
||||
return (this.x == other.x) && (this.z == other.z);
|
||||
return (this.x == other.x) && (this.y == other.y) && (this.z == other.z);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user