Remove border teleport to spawn #17
@ -20,7 +20,6 @@
|
|||||||
package de.steamwar.lobby.listener;
|
package de.steamwar.lobby.listener;
|
||||||
|
|
||||||
import de.steamwar.lobby.utils.Config;
|
import de.steamwar.lobby.utils.Config;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -29,37 +28,15 @@ import org.bukkit.util.Vector;
|
|||||||
|
|
||||||
public class PlayerMoveListener implements Listener {
|
public class PlayerMoveListener implements Listener {
|
||||||
|
|
||||||
|
private static final Vector borderMinVector = new Vector(Config.BorderMinX, Config.BorderMinY, Config.BorderMinZ);
|
||||||
|
private static final Vector borderMaxVector = new Vector(Config.BorderMaxX, Config.BorderMaxY, Config.BorderMaxZ);
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void handleWorldBorder(PlayerMoveEvent event) {
|
public void handleWorldBorder(PlayerMoveEvent event) {
|
||||||
Location to = event.getTo();
|
Location to = event.getTo();
|
||||||
if(!isInRegion(
|
if (!to.toVector().isInAABB(borderMinVector, borderMaxVector)) {
|
||||||
new Vector(Config.BorderMinX, Config.BorderMinY, Config.BorderMinZ),
|
event.getPlayer().teleport(event.getFrom());
|
||||||
new Vector(Config.BorderMaxX, Config.BorderMaxY, Config.BorderMaxZ),
|
|
||||||
to.toVector()))
|
|
||||||
event.getPlayer().teleport(new Location(
|
|
||||||
Bukkit.getWorlds().get(0),
|
|
||||||
Config.SpawnX,
|
|
||||||
Config.SpawnY,
|
|
||||||
Config.SpawnZ,
|
|
||||||
Config.Yaw,
|
|
||||||
Config.Pitch));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isInRegion(Vector minPoint, Vector maxPoint, Vector location) {
|
|
||||||
int x = location.getBlockX();
|
|
||||||
int y = location.getBlockY();
|
|
||||||
int z = location.getBlockZ();
|
|
||||||
|
|
||||||
if(x >= minPoint.getBlockX()
|
|
||||||
&& x <= maxPoint.getBlockX()
|
|
||||||
&& y >= minPoint.getBlockY()
|
|
||||||
&& y <= maxPoint.getBlockY()
|
|
||||||
&& z >= minPoint.getBlockZ()
|
|
||||||
&& z <= maxPoint.getBlockZ()) {
|
|
||||||
return true;
|
|
||||||
} else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren