private void BuildList(Banlist banList) { int yOffset = 40; foreach (BanEntry entry in banList.List) { var line = new Label("IP: " + entry.ip + "\tReason: " + entry.reason + "\tTemporary: " + entry.tempBan + "\tExpires: " + entry.expiresAt.ToString("d/M/yyyy HH:mm:ss"), "CALIBRI", _resourceManager) {Position = new Vector2i(5, yOffset + 5)}; components.Add(line); var unbanButton = new Button("Unban", _resourceManager) { Position = new Vector2i(line.ClientArea.Right() + 10, yOffset + (int) (line.ClientArea.Height/3f)) }; components.Add(unbanButton); unbanButton.UserData = entry.ip; unbanButton.Clicked += UnbanButtClicked; unbanButton.Update(0); yOffset += 35; } }
public AdminUnbanPanel(Vector2i size, Banlist banlist, INetworkManager networkManager, IResourceManager resourceManager) : base("Admin UnBan Panel", size, resourceManager) { _networkManager = networkManager; _resourceManager = resourceManager; BuildList(banlist); var closeButton = new Button("Close", _resourceManager) {Position = new Vector2i(5, 5)}; closeButton.Clicked += CloseButtonClicked; components.Add(closeButton); Position = new Vector2i((int) (CluwneLib.CurrentRenderTarget.Size.X/2f) - (int) (ClientArea.Width/2f), (int) (CluwneLib.CurrentRenderTarget.Size.Y/2f) - (int) (ClientArea.Height/2f)); }
public void HandleAdminMessage(NetMessage adminMsgType, NetIncomingMessage messageBody) { switch (adminMsgType) { case NetMessage.RequestAdminLogin: UserInterfaceManager.DisposeAllComponents<AdminPasswordDialog>(); //Remove old ones. UserInterfaceManager.AddComponent(new AdminPasswordDialog(new Size(200, 50), NetworkManager, ResourceManager)); //Create a new one. break; case NetMessage.RequestAdminPlayerlist: UserInterfaceManager.DisposeAllComponents<AdminPlayerPanel>(); UserInterfaceManager.AddComponent(new AdminPlayerPanel(new Size(600, 200), NetworkManager, ResourceManager, messageBody)); break; case NetMessage.RequestBanList: var banList = new Banlist(); int entriesCount = messageBody.ReadInt32(); for (int i = 0; i < entriesCount; i++) { string ipAddress = messageBody.ReadString(); string reason = messageBody.ReadString(); bool tempBan = messageBody.ReadBoolean(); uint minutesLeft = messageBody.ReadUInt32(); var entry = new BanEntry { ip = ipAddress, reason = reason, tempBan = tempBan, expiresAt = DateTime.Now.AddMinutes(minutesLeft) }; banList.List.Add(entry); } UserInterfaceManager.DisposeAllComponents<AdminUnbanPanel>(); UserInterfaceManager.AddComponent(new AdminUnbanPanel(new Size(620, 200), banList, NetworkManager, ResourceManager)); break; } }
public void Initialize(string BanListLoc) { if (File.Exists(BanListLoc)) { var ConfigLoader = new XmlSerializer(typeof (Banlist)); StreamReader ConfigReader = File.OpenText(BanListLoc); var Config = (Banlist) ConfigLoader.Deserialize(ConfigReader); ConfigReader.Close(); banlist = Config; banListFile = BanListLoc; LogManager.Log("Banlist loaded. " + banlist.List.Count.ToString() + " ban" + (banlist.List.Count != 1 ? "s." : ".")); } else { if (LogManager.Singleton != null) LogManager.Log("No Banlist found. Creating Empty List (" + BanListLoc + ")"); banlist = new Banlist(); banlist.List.Add(new BanEntry()); banListFile = BanListLoc; Save(); } }