Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.unique.worldborder;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.util.Vector;
- public class CheckBorder implements Listener {
- @EventHandler
- public void checkIsPlayerNearBorder(PlayerMoveEvent e) {
- Player p = e.getPlayer();
- Location l = p.getLocation();
- FileConfiguration config = Main.getInst().getConfig();
- Main plugin = Main.getInst();
- if (config.get("worlds."+l.getWorld())+".middlepoint.w" != null) {
- Location middlepoint = new Location(
- Bukkit.getWorld(config.getString("worlds."+l.getWorld().getName()+".middle.w")),
- config.getDouble("worlds"+l.getWorld().getName()+".middle.x"),
- config.getDouble("worlds"+l.getWorld().getName()+".middle.y"),
- config.getDouble("worlds"+l.getWorld().getName()+".middle.z"));
- if (p.getLocation().distance(middlepoint) == config.getDouble("worlds"+l.getWorld().getName()+".radius")) {
- String direction = Utils.getCardinalDirection(p);
- Utils.clearBlocks(l, direction);
- switch (direction) {
- case "N":
- new Location(l.getWorld(), l.getX(), l.getY(), l.getZ() - 1).getBlock().setType(Material.GLASS);
- break;
- case "E":
- new Location(l.getWorld(), l.getX() + 1, l.getY(), l.getZ()).getBlock().setType(Material.GLASS);
- break;
- case "S":
- new Location(l.getWorld(), l.getX(), l.getY(), l.getZ() + 1).getBlock().setType(Material.GLASS);
- break;
- case "W":
- new Location(l.getWorld(), l.getX() - 1, l.getY(), l.getZ()).getBlock().setType(Material.GLASS);
- break;
- }
- } else if (p.getLocation().distance(middlepoint) < config.getDouble("worlds"+l.getWorld().getName()+".radius")) {
- String direction = Utils.getCardinalDirection(p);
- Utils.clearBlocks(l, direction);
- Vector vector = new Vector(0, 0, 0);
- switch (direction) {
- case "N":
- // -Z
- vector = new Vector(0, 1, -1);
- break;
- case "E":
- // +X
- vector = new Vector(1, 1, 0);
- break;
- case "S":
- // +Z
- vector = new Vector(0, 1, 1);
- break;
- case "W":
- // -X
- vector = new Vector(-1, 1, 0);
- break;
- }
- p.setVelocity(vector);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement