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 1.0 */ 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; } }