// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.DataModel.Configuration; using MUnique.OpenMU.Annotations; /// /// Settings for the chat server. /// [AggregateRoot] [Cloneable] public partial class ChatServerDefinition { /// /// Gets or sets the server identifier. /// public byte ServerId { get; set; } /// /// Gets or sets the description. /// public string Description { get; set; } = string.Empty; /// /// Gets or sets the maximum connections. /// public int MaximumConnections { get; set; } = int.MaxValue; /// /// Gets or sets the client timeout. When a client did not send any data in this timespan, it's automatically disconnected. /// /// /// The client timeout. /// public TimeSpan ClientTimeout { get; set; } = TimeSpan.FromMinutes(1); /// /// Gets or sets the interval in which a client clean up takes place. /// For all connected clients it's checked whether or not the has been reached. /// public TimeSpan ClientCleanUpInterval { get; set; } = TimeSpan.FromMinutes(1); /// /// Gets or sets the interval in which empty chat rooms are cleaned up. /// public TimeSpan RoomCleanUpInterval { get; set; } = TimeSpan.FromSeconds(5); /// /// Gets or sets the endpoints of the game server. /// [MemberOfAggregate] public virtual ICollection Endpoints { get; protected set; } = null!; /// public override string ToString() { return $"[ChatServerDefinition ServerID={this.ServerId}, Description={this.Description}]"; } }