Delete src/main/java/de/teleportsuite/managers/PortalManager.java via Git Manager GUI
This commit is contained in:
@@ -1,81 +0,0 @@
|
|||||||
package de.teleportsuite.managers;
|
|
||||||
|
|
||||||
import de.teleportsuite.TeleportSuite;
|
|
||||||
import de.teleportsuite.models.Portal;
|
|
||||||
import de.teleportsuite.models.TeleportLocation;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class PortalManager {
|
|
||||||
private final TeleportSuite plugin;
|
|
||||||
private List<Portal> portals = new ArrayList<>();
|
|
||||||
// Selection for portal creation: player -> pos1, pos2
|
|
||||||
private final Map<UUID, Location> pos1 = new HashMap<>();
|
|
||||||
private final Map<UUID, Location> pos2 = new HashMap<>();
|
|
||||||
// Cooldown to prevent multiple triggers
|
|
||||||
private final Map<UUID, Long> cooldown = new HashMap<>();
|
|
||||||
|
|
||||||
public PortalManager(TeleportSuite plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
loadPortals();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadPortals() {
|
|
||||||
portals = plugin.getDatabaseManager().getAllPortals();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPos1(Player player, Location loc) {
|
|
||||||
pos1.put(player.getUniqueId(), loc);
|
|
||||||
player.sendMessage("§aPos1 gesetzt: §f" + formatLoc(loc));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPos2(Player player, Location loc) {
|
|
||||||
pos2.put(player.getUniqueId(), loc);
|
|
||||||
player.sendMessage("§aPos2 gesetzt: §f" + formatLoc(loc));
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean createPortal(Player player, String name, String targetServer, String targetWorld, double tx, double ty, double tz) {
|
|
||||||
Location l1 = pos1.get(player.getUniqueId());
|
|
||||||
Location l2 = pos2.get(player.getUniqueId());
|
|
||||||
if (l1 == null || l2 == null) {
|
|
||||||
player.sendMessage("§cBitte setze erst Pos1 und Pos2 mit §e/setportal pos1 §cund §e/setportal pos2");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
TeleportLocation dest = new TeleportLocation(targetWorld, tx, ty, tz, 0, 0, targetServer);
|
|
||||||
Portal portal = new Portal(name, l1.getWorld().getName(),
|
|
||||||
l1.getBlockX(), l1.getBlockY(), l1.getBlockZ(),
|
|
||||||
l2.getBlockX(), l2.getBlockY(), l2.getBlockZ(),
|
|
||||||
targetServer, dest);
|
|
||||||
plugin.getDatabaseManager().savePortal(portal);
|
|
||||||
portals.add(portal);
|
|
||||||
pos1.remove(player.getUniqueId());
|
|
||||||
pos2.remove(player.getUniqueId());
|
|
||||||
player.sendMessage(plugin.getConfigManager().getMessage("portal-created", "name", name));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean deletePortal(String name) {
|
|
||||||
portals.removeIf(p -> p.getName().equalsIgnoreCase(name));
|
|
||||||
return plugin.getDatabaseManager().deletePortal(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkPortal(Player player, Location loc) {
|
|
||||||
long now = System.currentTimeMillis();
|
|
||||||
if (now - cooldown.getOrDefault(player.getUniqueId(), 0L) < 2000) return;
|
|
||||||
|
|
||||||
for (Portal portal : portals) {
|
|
||||||
if (portal.contains(loc)) {
|
|
||||||
cooldown.put(player.getUniqueId(), now);
|
|
||||||
plugin.getTeleportManager().teleport(player, portal.getDestination(), true);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Portal> getPortals() { return portals; }
|
|
||||||
|
|
||||||
private String formatLoc(Location loc) {
|
|
||||||
return loc.getBlockX() + ", " + loc.getBlockY() + ", " + loc.getBlockZ() + " in " + loc.getWorld().getName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user