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;
     }
 }
Beispiel #4
0
 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();
     }
 }