90 lines
3.5 KiB
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;
|
|
}
|
|
} |