@@ -111,42 +111,44 @@ private void SaveGameResult(string path)
111
111
112
112
protected void SendGameResult ( int [ ] scores , int mode ) // 天梯的 Server 给网站发消息记录比赛结果
113
113
{
114
+ string ? url2 = Environment . GetEnvironmentVariable ( "FINISH_URL" ) ;
115
+ if ( url2 == null )
116
+ {
117
+ GameServerLogging . logger . ConsoleLog ( "Null FINISH_URL!" ) ;
118
+ return ;
119
+ }
120
+ else
121
+ {
122
+ httpSender . Url = url2 ;
123
+ httpSender . Token = options . Token ;
124
+ }
114
125
httpSender ? . SendHttpRequest ( scores , mode ) . Wait ( ) ;
115
-
116
126
}
117
127
118
- protected async Task < double [ ] > GetLadderScore ( double [ ] scores )
128
+ protected double [ ] PullScore ( double [ ] scores )
119
129
{
120
130
121
131
string ? url2 = Environment . GetEnvironmentVariable ( "SCORE_URL" ) ;
122
132
if ( url2 != null )
123
133
{
124
- try
134
+ httpSender . Url = url2 ;
135
+ httpSender . Token = options . Token ;
136
+ double [ ] org = httpSender . GetLadderScore ( scores ) . Result ;
137
+ if ( org . Length == 0 )
125
138
{
126
- var httpClient = new HttpClient ( ) ;
127
- httpClient . DefaultRequestHeaders . Authorization = new ( "Bearer" , options . Token ) ;
128
- var response = await httpClient . PostAsync ( url2 , JsonContent . Create ( new { HttpHeaders = options . Token } ) ) ;
129
-
130
- // 读取响应内容为字符串
131
- var jsonString = await response . Content . ReadAsStringAsync ( ) ;
132
-
133
- // 解析 JSON 字符串
134
- var result = JsonConvert . DeserializeObject < List < ContestResult > > ( jsonString ) ;
135
- double [ ] org = ( from r in result select ( double ) ( r . score ) ) . ToArray ( ) ;
136
- double [ ] final = LadderCalculate ( org , scores ) ;
137
- return final ;
139
+ GameServerLogging . logger . ConsoleLog ( "Error: No data returned from the web!" ) ;
140
+ return new double [ 0 ] ;
138
141
}
139
- catch ( Exception e )
142
+ else
140
143
{
141
- GameServerLogging . logger . ConsoleLog ( "No response from ladder URL!" ) ;
142
- GameServerLogging . logger . ConsoleLog ( e . ToString ( ) ) ;
143
- return [ ] ;
144
+ double [ ] final = LadderCalculate ( org , scores ) ;
145
+ return final ;
144
146
}
145
147
}
146
148
else
147
149
{
148
- GameServerLogging . logger . ConsoleLog ( "Null URL !" ) ;
149
- return [ ] ;
150
+ GameServerLogging . logger . ConsoleLog ( "Null SCORE_URL Environment !" ) ;
151
+ return new double [ 0 ] ;
150
152
}
151
153
}
152
154
@@ -212,9 +214,15 @@ private void OnGameEnd()
212
214
double [ ] doubleArray = scores . Select ( x => ( double ) x ) . ToArray ( ) ;
213
215
if ( options . Mode == 2 )
214
216
{
215
- doubleArray = GetLadderScore ( doubleArray ) . Result ;
217
+ doubleArray = PullScore ( doubleArray ) ;
216
218
scores = doubleArray . Select ( x => ( int ) x ) . ToArray ( ) ;
217
- SendGameResult ( scores , options . Mode ) ;
219
+ if ( scores . Length == 0 )
220
+ {
221
+ Console . WriteLine ( "Error: No data returned from the web!" ) ;
222
+
223
+ }
224
+ else
225
+ SendGameResult ( scores , options . Mode ) ;
218
226
}
219
227
endGameSem . Release ( ) ;
220
228
}
@@ -453,11 +461,21 @@ public GameServer(ArgumentOptions options)
453
461
}
454
462
}
455
463
456
-
464
+ string ? token2 = Environment . GetEnvironmentVariable ( "TOKEN" ) ;
465
+ if ( token2 == null )
466
+ {
467
+ GameServerLogging . logger . ConsoleLog ( "Null TOKEN Environment!" ) ;
468
+ }
469
+ else
470
+ options . Token = token2 ;
457
471
if ( options . Url != DefaultArgumentOptions . Url && options . Token != DefaultArgumentOptions . Token )
458
472
{
459
473
httpSender = new ( options . Url , options . Token ) ;
460
474
}
475
+ else
476
+ {
477
+ httpSender = new ( DefaultArgumentOptions . Url , DefaultArgumentOptions . Token ) ;
478
+ }
461
479
}
462
480
}
463
481
}
0 commit comments