-
Notifications
You must be signed in to change notification settings - Fork 0
/
Interfaces.cs
126 lines (105 loc) · 3.69 KB
/
Interfaces.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System;
namespace MUnique.OpenMU.Interfaces
{
/// <summary>
/// The connectServerSettings of the connect server.
/// </summary>
public interface IConnectServerSettings
{
/// <summary>
/// Gets the server identifier.
/// </summary>
/// <remarks>Should be unique within all <see cref="IConnectServerSettings"/>.</remarks>
byte ServerId { get; }
/// <summary>
/// Gets the description of the server.
/// </summary>
/// <remarks>
/// Will be displayed in the server list in the admin panel as <see cref="IManageableServer.Description"/>.
/// </remarks>
string Description { get; }
/// <summary>
/// Gets a value indicating whether the client should get disconnected when a unknown packet is getting received.
/// </summary>
bool DisconnectOnUnknownPacket { get; }
/// <summary>
/// Gets the maximum size of the packets which should be received from the client. If this size is exceeded, the client will be disconnected.
/// </summary>
/// <remarks>DOS protection.</remarks>
byte MaximumReceiveSize { get; }
/// <summary>
/// Gets the client listener port.
/// </summary>
int ClientListenerPort { get; }
/// <summary>
/// Gets the client which is expected to connect.
/// </summary>
IGameClientVersion Client { get; }
/// <summary>
/// Gets the timeout after which clients without activity get disconnected.
/// </summary>
TimeSpan Timeout { get; }
/// <summary>
/// Gets the current patch version.
/// </summary>
byte[] CurrentPatchVersion { get; }
/// <summary>
/// Gets the patch address.
/// </summary>
string PatchAddress { get; }
/// <summary>
/// Gets the maximum connections per ip.
/// </summary>
int MaxConnectionsPerAddress { get; }
/// <summary>
/// Gets a value indicating whether the <see cref="MaxConnectionsPerAddress"/> should be checked.
/// </summary>
bool CheckMaxConnectionsPerAddress { get; }
/// <summary>
/// Gets the maximum connections the connect server should handle.
/// </summary>
int MaxConnections { get; }
/// <summary>
/// Gets the listener backlog for the client listener.
/// </summary>
int ListenerBacklog { get; }
/// <summary>
/// Gets the maximum FTP requests per connection.
/// </summary>
int MaxFtpRequests { get; }
/// <summary>
/// Gets the maximum ip requests per connection.
/// </summary>
int MaxIpRequests { get; }
/// <summary>
/// Gets the maximum server list requests per connection.
/// </summary>
int MaxServerListRequests { get; }
}
/// <summary>
/// Defines the game client (binary) version which is supposed to connect.
/// </summary>
public interface IGameClientVersion
{
/// <summary>
/// Gets the description.
/// </summary>
string Description { get; }
/// <summary>
/// Gets the season.
/// </summary>
byte Season { get; }
/// <summary>
/// Gets the episode.
/// </summary>
byte Episode { get; }
/// <summary>
/// Gets the version which is defined in the client binaries.
/// </summary>
byte[] Version { get; }
/// <summary>
/// Gets the serial which is defined in the client binaries.
/// </summary>
byte[] Serial { get; }
}
}