OpenNAW/src/main/java/moe/oko/opennaw/util/GateHandler.java

80 lines
1.8 KiB
Java

package moe.oko.opennaw.util;
import moe.oko.opennaw.OpenNAW;
import moe.oko.opennaw.model.Gate;
import org.bukkit.block.Block;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
public class GateHandler {
private HashMap<UUID, Gate> gates = new HashMap<>();
public GateHandler() {
}
public Gate getGateByUuid(UUID uid) {
return gates.get(uid);
}
public Gate getGateBySign(Block block) {
for(var gate : gates.values()) {
for(var sign : gate.getSigns().values()) {
if(sign.getBlock().equals(block)) {
return gate;
}
}
}
return null; //no gate.
}
public UUID getGateUidByName(String name) {
for(var gate : gates.values()) {
if(gate.getName().equals(name)) {
return gate.getUuid();
}
}
return null;
}
public Gate getGateByName(String name) {
for(var gate : gates.values()) {
if(gate.getName().equals(name)) {
return gate;
}
}
return null;
}
public HashMap<UUID, Gate> getGates() {
return gates;
}
public List<String> getGateNames() {
List<String> names = new ArrayList<>();
for(var gate : gates.values()) {
names.add(gate.getName());
}
return names;
}
public void setGates(HashMap<UUID, Gate> gates) {
this.gates = gates;
}
public void closeAllGates() {
var i = 0;
for(var gate : gates.values()) {
gate.close();
i++;
}
OpenNAW.getInstance().getLogger().info("Closed " + i + " gates.");
}
public void saveGates() {
OpenNAW.getInstance().getDatabase().saveGates(gates.values());
}
}