@@ -77,7 +77,38 @@ function generateCrcTable(): void {
77
77
crcTable = buffer ;
78
78
}
79
79
80
- export function runGameServer ( ) : void {
80
+ function openServer ( ) : void {
81
+ net . createServer ( socket => {
82
+ socket . setNoDelay ( true ) ;
83
+ socket . setKeepAlive ( true ) ;
84
+ socket . setTimeout ( 30000 ) ;
85
+
86
+ let clientConnection = new ClientConnection ( socket ) ;
87
+
88
+ socket . on ( 'data' , data => {
89
+ if ( clientConnection ) {
90
+ clientConnection . parseIncomingData ( new ByteBuffer ( data ) ) ;
91
+ }
92
+ } ) ;
93
+
94
+ socket . on ( 'close' , ( ) => {
95
+ if ( clientConnection ) {
96
+ clientConnection . connectionDestroyed ( ) ;
97
+ clientConnection = null ;
98
+ }
99
+ } ) ;
100
+
101
+ socket . on ( 'error' , error => {
102
+ logger . error ( 'Socket destroyed due to connection error.' ) ;
103
+ logger . error ( error . message ) ;
104
+ socket . destroy ( ) ;
105
+ } ) ;
106
+ } ) . listen ( serverConfig . port , serverConfig . host ) ;
107
+
108
+ logger . info ( `Game server listening on port ${ serverConfig . port } .` ) ;
109
+ }
110
+
111
+ export async function runGameServer ( ) : Promise < void > {
81
112
serverConfig = parseServerConfig ( ) ;
82
113
83
114
if ( ! serverConfig ) {
@@ -96,46 +127,15 @@ export function runGameServer(): void {
96
127
delete cache . indices ;
97
128
98
129
world = new World ( ) ;
99
- injectPlugins ( ) . then ( ( ) => {
100
- world . init ( ) ;
101
-
102
- delete cache . mapData ;
103
-
104
- if ( process . argv . indexOf ( '-fakePlayers' ) !== - 1 ) {
105
- world . generateFakePlayers ( ) ;
106
- }
130
+ await injectPlugins ( ) ;
107
131
108
- net . createServer ( socket => {
109
- logger . info ( 'Socket opened' ) ;
132
+ world . init ( ) . then ( ( ) => delete cache . mapData ) ;
110
133
111
- socket . setNoDelay ( true ) ;
112
- socket . setKeepAlive ( true ) ;
113
- socket . setTimeout ( 30000 ) ;
114
-
115
- let clientConnection = new ClientConnection ( socket ) ;
116
-
117
- socket . on ( 'data' , data => {
118
- if ( clientConnection ) {
119
- clientConnection . parseIncomingData ( new ByteBuffer ( data ) ) ;
120
- }
121
- } ) ;
122
-
123
- socket . on ( 'close' , ( ) => {
124
- if ( clientConnection ) {
125
- clientConnection . connectionDestroyed ( ) ;
126
- clientConnection = null ;
127
- }
128
- } ) ;
129
-
130
- socket . on ( 'error' , error => {
131
- logger . error ( error . message ) ;
132
- socket . destroy ( ) ;
133
- logger . error ( 'Socket destroyed due to connection error.' ) ;
134
- } ) ;
135
- } ) . listen ( serverConfig . port , serverConfig . host ) ;
134
+ if ( process . argv . indexOf ( '-fakePlayers' ) !== - 1 ) {
135
+ world . generateFakePlayers ( ) ;
136
+ }
136
137
137
- logger . info ( `Game server listening on port ${ serverConfig . port } .` ) ;
138
- } ) ;
138
+ openServer ( ) ;
139
139
140
140
const watcher = watch ( 'dist/plugins/' ) ;
141
141
watcher . on ( 'ready' , ( ) => {
0 commit comments