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); }
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 { } }