Lobby/src/main/java/eu/univento/lobby/utils/StatusSign.java

90 lines
3.5 KiB
Java

package eu.univento.lobby.utils;
import eu.univento.core.api.server.ServerInfo;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
/**
* @author joethei
* @version 0.2
*/
public class StatusSign {
String name;
Location loc;
public StatusSign(String name, Location loc) {
this.name = name;
this.loc = loc;
}
public void update() {
ServerInfo info = new ServerInfo(this.name);
Block block = loc.getBlock();
if(block.getType() == Material.WALL_SIGN) {
Sign sign = (Sign) block.getState();
org.bukkit.material.Sign s = (org.bukkit.material.Sign) block.getState().getData();
Block behind = block.getRelative(s.getAttachedFace());
if(info.isOnline()) {
if(info.getMotd().contains("Ingame")) {
sign.setLine(0, "§8-§6*§8-");
sign.setLine(1, "§6" + info.getName());
sign.setLine(2, "§e" + info.getOnlinePlayers() + "§8/§6" + info.getMaxPlayers());
sign.setLine(3, "§6Ingame");
sign.update();
behind.setData(DyeColor.CYAN.getWoolData());
}
else if(info.getMotd().contains("Lobby")) {
if(info.getMaxPlayers() >= info.getOnlinePlayers()) {
sign.setLine(0, "§8-§2*§8-");
sign.setLine(1, "§a" + info.getName());
sign.setLine(2, "§a" + info.getOnlinePlayers() + "§8/§2" + info.getMaxPlayers());
sign.setLine(3, "§aLobby");
sign.update();
behind.setData(DyeColor.LIME.getWoolData());
}else{
sign.setLine(0, "§8-§6*§8-");
sign.setLine(1, "§7" + info.getName());
sign.setLine(2, "§a" + info.getOnlinePlayers() + "§8/§3" + info.getMaxPlayers());
sign.setLine(3, "§aLobby");
sign.update();
behind.setData(DyeColor.YELLOW.getWoolData());
}
}
else if(info.getMotd().contains("Restart")) {
sign.setLine(0, "§8-§6*§8-");
sign.setLine(1, "§cRestart");
sign.setLine(2, "§c" + info.getName());
sign.setLine(3, "§8-§6*§8-");
sign.update();
behind.setData(DyeColor.ORANGE.getWoolData());
}else{
sign.setLine(0, "§8-§6*§8-");
sign.setLine(1, "§6" + info.getName());
sign.setLine(2, "§e" + info.getOnlinePlayers() + "§8/§6" + info.getMaxPlayers());
sign.setLine(3, "§8-§6*§8-");
sign.update();
behind.setData(DyeColor.GREEN.getWoolData());
}
}else {
sign.setLine(0, "§8-§6*§8-");
sign.setLine(1, "§4Offline");
sign.setLine(2, "§e" + info.getName());
sign.setLine(3, "§8-§6*§8-");
sign.update();
behind.setData(DyeColor.RED.getWoolData());
}
}
}
public Location getLocation() {
return loc;
}
public String getServerName() {
return name;
}
}