예제 #1
0
파일: Rcon.cs 프로젝트: astory/MCAdmin
 public RconConnection(Rcon m_rcon, Socket m_sock)
 {
     authed = false;
     sock = m_sock;
     sock.SendTimeout = 30000;
     sock.ReceiveTimeout = 30000;
     rcon = m_rcon;
     ip = IPAddress.Parse(((IPEndPoint)sock.RemoteEndPoint).Address.ToString()).ToString();
     ply = new PlayerRcon(ip, this);
     recvThread = new Thread(new ThreadStart(RecvThread));
     recvThread.Start();
     rcon.rconConnections.Add(this);
 }
예제 #2
0
파일: Program.cs 프로젝트: astory/MCAdmin
        public static void ReloadServerProperties()
        {
            serverProperties.Clear();
            if (File.Exists("server.properties"))
            {
                string[] text = File.ReadAllLines("server.properties");
                foreach (string line in text)
                {
                    if (line[0] == '#') continue;
                    int pos = line.IndexOf('=');
                    if (pos <= 0) continue;
                    string name = line.Substring(0, pos).Trim().ToLower();
                    string value = line.Substring(pos + 1).Trim();
                    if (serverProperties.ContainsKey(name)) serverProperties[name] = value;
                    else serverProperties.Add(name, value);
                }
            }

            try
            {
                int delay = Convert.ToInt32(GetServerProperty("autosave-delay", "60"));
                if (delay <= 0)
                {
                    tmAutosave.Change(Timeout.Infinite, Timeout.Infinite);
                }
                else
                {
                    tmAutosave.Change(0, delay * 60 * 1000);
                }

                delay = Convert.ToInt32(GetServerProperty("backup-delay", "120"));
                if (delay <= 0)
                {
                    tmBackup.Change(Timeout.Infinite, Timeout.Infinite);
                }
                else
                {
                    tmBackup.Change(0, delay * 60 * 1000);
                }

                logToAddr.Clear();
                try
                {
                    serverRcon.Dispose();
                }
                catch { }
                try
                {
                    serverQuery.Dispose();
                }
                catch { }
                if (GetServerProperty("rcon-enable", "false").ToLower() == "true")
                {
                    serverRcon = new Rcon();
                    serverQuery = new ServerQuery();
                }
            }
            catch { }
        }