-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0 Start - paper.bat
More file actions
428 lines (393 loc) · 11.2 KB
/
0 Start - paper.bat
File metadata and controls
428 lines (393 loc) · 11.2 KB
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
@echo off
set dontsearch=0
set buildsonlinenumbers=0
:firsttime
chcp 65001 > nul
chcp 1252 > nul
rem config
rem %WINDIR%\media\Alarm*.wav
rem %WINDIR%\media\Ring*.wav
set vers=10
set newversionfound_randomsong=%WINDIR%\media\Alarm*.wav
set version=1.21.4
set dontprompt=1
set latestnewsinfileandanotherscreen=1
set title=Serveur de Nini et Jo
rem end config
set build=0
set versionfile=paper_version.txt
set latestnewsfile=paper_latestnews.bat
set firsttime=0
SET BINDIR=%~dp0
CD /D "%BINDIR%"
Title Flash Server loader V%vers%
rem test
rem echo. test mode:
rem call :checkonlinebuild 1.21.1 0
rem call :pause 5
rem call :checkonlinebuild 1.21.3 0
rem call :descriptions 1.19.2 244 0
rem call :downloadpapermc 1.19.2 191
rem echo fin
rem pause
if not exist %versionfile% (
echo.
echo. [36m***********************************[0m
echo. [36m***** [32mFlash [33mServer loader V%vers% [36m******[0m
echo. [36m******[33m Première utilisation. [36m******[0m
echo. [36m***********************************[0m
echo.
type nul >%versionfile%
echo %version% 0>%versionfile%
set firsttime=1
call :pause 4
)
set /p readversion=< %versionfile%
set newversiondetected=0
for /F "tokens=1,2 delims= " %%a in ("%readversion%") do (
rem set version=%%a
if %%a neq %version% (
call :title 1
echo. [36mChangement de version detecté [96m%%a [36m-[96m %version%[0m
call :pause 5
goto dontsetbuild
)
set build=%%b
)
:dontsetbuild
if %firsttime% == 0 (
call :title 1
)
set fichierActuel=paper-%version%-%build%.jar
call :pause 2
set filefound=0
::ici etait local check
call :checklocalversion %build%
::end
if %filefound% == 0 (
cls
echo.
echo. [31m***********************************[0m
echo. [31m***** [33mFlash [96mServer loader V%vers% [31m******[0m
echo. [31m********[91m Paper introuvable! [31m*******[0m
echo. [31m***********************************[0m
echo.
call :pause 3
)
rem check sur internet yeah!
if %dontsearch% EQU 1 goto bypasscheck
set latestbuildonline=0
call :checkonlinebuild %version% %build%
set latestbuildonline=%errorlevel%
if %latestbuildonline% EQU -1 (
echo. [33mFermeture...[0m
call :pause 3
exit /b 0
)
::ici etait checkonline
set telecharge=n
if %latestbuildonline% GTR %build% (
if %build% GTR 0 (
echo. [96mNouveau build découvert pour la version [95m%version%[96m: [95m%latestbuildonline%[0m
call :playsound
call :pause 3
if %latestnewsinfileandanotherscreen% == 1 (
(
echo ^@echo off
echo ^chcp 65001 ^> nul
echo ^chcp 1252 ^> nul
echo ^echo Nouveautés
)>%latestnewsfile%
echo. [34mÉcriture dans le fichier [35m%latestnewsfile%[36m %multibuild%[34... [0m
)
if %latestnewsinfileandanotherscreen% == 0 echo. [34mChangements dans les derniers builds: [0m
call :pause 2
call :multiNotes %version% %multibuild% %latestnewsinfileandanotherscreen%
if %latestnewsinfileandanotherscreen% == 1 (
echo ^pause>>%latestnewsfile%
echo ^exit>>%latestnewsfile%
@start /wait "Latest news" %latestnewsfile%
)
)
call :pause 2
call :downloadpapermc %version% %latestbuildonline%
call :pause 2
call :checklocalversion %build%
call :pause 3
cls
call :title 1
rem goto firsttime
)
if %latestbuildonline% == %build% (
echo. [33mDernier build pour la version [36m%version%[33m: [36m%latestbuildonline%[0m
)
rem goto bypasspromptdownload
rem end check online
:bypasscheck
if %newversiondetected% == 1 (
if exist %BINDIR%%fichierActuel% (
call :pause 3
echo. [33mÉffacement de l'ancienne: [35m%fichierActuel%[0m
del "%BINDIR%%fichierActuel%"
)
call :pause 3
if %firsttime% == 0 echo. [33mEnregistrement de la nouvelle version... {[35m%version% %build%[33m}[0m
if %firsttime% == 1 echo. [33mEnregistrement de la version... {[35m%version% %build%[33m}[0m
echo %version% %build%>%versionfile%
set firsttime=1
)
if %firsttime% == 1 (
call :pause 5
cls
goto firsttime
)
rem verifier si le ficher exist avant de le lancer
if not exist %BINDIR%%fichierActuel% (
call :pause 3
echo. [31mErreur fichier %fichierActuel% introuvable![0m
call :pause 3
echo. [33mUn instant, on va rééssayer...[0m
del "%BINDIR%%versionfile%"
call :pause 3
cls
goto firsttime
)
call :pause 3
::start server
call :startserver %version% %build%
EXIT /B 0
:playsound
setlocal enabledelayedexpansion
set filename=playsound.vbs
set file=0
set total=0
set soundnumber=0
FOR %%i IN (%newversionfound_randomsong%) do (
set /a total+=1
)
if %total% == 0 (
echo. [31m^[[92mPlaysound[31m^] Aucun fichier trouvé^^! ^([93m%newversionfound_randomsong%[31m^)[0m
exit /b 1
)
set /a soundnumber=(%Random% %%(%total%))+1
set count=0
FOR %%i IN (%newversionfound_randomsong%) do (
set /a count+=1
if %soundnumber%==!count! set file=%%i
)
(echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
echo Set objFSO = CreateObject("Scripting.FileSystemObject"^)
echo strScript = Wscript.ScriptFullName
echo objFSO.DeleteFile(strScript^)) >%filename%
start /min %filename%
ENDLOCAL
EXIT /B 0
::playsound end
::local check
:checklocalversion
set bu=%1
echo. [33mVérification local...[0m
FOR %%i IN (paper-*.jar) do (
if not %%i == %fichierActuel% (
for /f "tokens=2,3 delims=-" %%a in ("%%~ni") do (
if %%a EQU %version% (
if %%b GTR %bu% (
if %firsttime% == 0 echo. [33mNouveau build découvert localement: [35m%%i[0m
if %firsttime% == 1 echo. [33mVersion découverte localement: [35m%%i[0m
set version=%%a
set build=%%b
set newversiondetected=1
)
if %%b LSS %bu% (
echo. [31mEffacement d'ancienne version: [35m%%i[0m
del "%BINDIR%%%i"
)
)
if not %%a == %version% (
echo. [31mEffacement d'ancienne version: [35m%%i[0m
del "%BINDIR%%%i"
)
)
)
set filefound=1
)
EXIT /B 0
::local check end
::check online
:checkonlinebuild
set ve=%1
set bd=%2
echo. [33mVérification en ligne sur [34mpapermc.io[33m... ([35m%ve%[33m)[0m
set multibuild=0
set commande='curl -s --ssl-no-revoke "https://api.papermc.io/v2/projects/paper/versions/%ve%" -H "accept: application/json"'
for /F "tokens=2 delims=[" %%a in (%commande%) do (
for /F "tokens=1 delims=]" %%b in ("%%a") do (
for %%c in (%%b) do (
set /a buildsonlinenumbers+=1
call :setmultibuilds %bd% %%c
set bd=%%c
)
)
)
if %buildsonlinenumbers% LSS 1 (
echo.
echo. [31mErreur, verifiez que la version [35m%ve%[31m existe![0m
echo.
call :pause 5
EXIT /B -1
)
call :pause 3
echo. [33mNombre total de builds pour la version [35m%ve%[33m est de [35m%buildsonlinenumbers%
::trouver meilleur moyen au changement de version et plus petit build.
::if %bd% NEQ %build% (
:: echo. [31mReset du build n est pas pareil: [35m %bd% %build%[0m
:: set build=0
::)
EXIT /B %bd%
::check online end
:descriptions
setlocal EnableDelayedExpansion
set vers=%1
set bd=%2
set latest=%3
if %bd% == 0 EXIT /b 2
if %latest% == 1 echo ^echo [33m%bd%[0m:>>%latestnewsfile%
if %latest% == 0 echo. [35m%bd%[34m: [0m
set com='curl -s --ssl-no-revoke "https://api.papermc.io/v2/projects/paper/versions/%vers%/builds/%bd%" -H "accept: application/json"'
for /F "tokens=2 delims=[" %%a in (%com%) do (
for /F "tokens=1 delims=]" %%b in ("%%a") do (
for /F "tokens=4* delims=:" %%c in ("%%b") do (
for /F "tokens=1 delims=}" %%e in ("%%c%%d") do (
set messages=%%e
)
)
)
)
IF [!messages!] == [] (
echo [31mErreur msg is empty![0m
EXIT /B 1
)
::replace \n by ^&echo.^and remove \r
set messages=%messages:<=%
set messages=%messages:>=%
set messages=%messages:&=and%
set messages=%messages:(=%
set messages=%messages:)=%
set messages=%messages:\r=%
set messages=%messages:"=%
::direct display
if %latest% == 0 (
set n=^&echo.
set messages=!messages:\n\n=\n!
set messages=!messages:\n=%n%!
)
::display message in seperate window
if %latest% == 1 (
set mess=!messages:\n\n=\n!
set mess=!mess:\n=_!
call :writenewstofile "!mess!"
)
if %latest% == 0 echo %messages%
endlocal
EXIT /B 0
:writenewstofile
for /F "tokens=1* delims=_" %%a in ("%~1") do (
echo ^echo. %%a>>%latestnewsfile%
if not "%%b" == "" call :writenewstofile "%%b"
rem add space to .txt
rem if "%%b" == "" echo. >> %latestnewsfile%
)
EXIT /B 0
:startserver
Title %title%
setlocal
set v=%1
set b=%2
echo.
echo. [34mDémarrage du serveur paper [36m%v% %b%[34m...[0m
echo.
call :pause 5
rem ajouter --forceUpgrade au bout
java -Xmx2048M -Xms2048M -Dlog4j.configurationFile=log4j2.xml -jar paper-%v%-%b%.jar nogui
endlocal
pause
EXIT /B 0
::Start donwloadpapermc
:downloadpapermc
set version=%1
set build=%2
IF %dontprompt% == 1 (
set telecharge=o
goto bypasspromptdownload
)
echo. [33mVoulez-vous acquerir le fichier:[0m
choice /C on /T 20 /D o /M ""
IF %ERRORLEVEL% EQU 2 set telecharge=n
IF %ERRORLEVEL% EQU 1 set telecharge=o
IF %ERRORLEVEL% EQU 0 set telecharge=n
:bypasspromptdownload
rem set fich=paper-%version%-%latestbuildonline%.jar
set fich=paper-%version%-%build%.jar
set url=https://api.papermc.io/v2/projects/paper/versions/%version%/builds/%build%/downloads/%fich%
IF %telecharge% == o (
rem set url=https://api.papermc.io/v2/projects/paper/versions/%version%/builds/%latestbuildonline%/downloads/%fich%
echo. [36mTéléchargement en cour...[0m
curl -s --ssl-no-revoke -A "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64)" -H "accept: application/json" -L "%url%" -o "%BINDIR%%fich%"
call :pause 5
if exist %BINDIR%%fich% (
echo. [36mNouveau fichier [35m%fich% [36mtélécharger![0m
call :pause 3
echo. [92mUn instant s'il vous plaît...[0m
call :pause 3
set dontsearch=1
)
if not exist %BINDIR%%fich% (
echo. [91mEchec![0m
)
)
EXIT /B 0
::End downloadpapermc
:setmultibuilds
if %2 GTR %1 (
if %multibuild% GTR 0 set multibuild=%multibuild%-%2
if %multibuild% EQU 0 set multibuild=%2
)
EXIT /B 0
:multiNotes
setlocal EnableDelayedExpansion
set ver=%1
set versions=%2
set latest=%3
IF [%1] == [] (
echo [31mErreur 1 null![0m
EXIT /B 1
)
IF [%2] == [] (
echo [31mErreur 2 null![0m
EXIT /B 2
)
set versions=!versions:-= !
FOR %%a in (%versions%) do (
call :descriptions %ver% %%a %latest%
if %latest% == 0 call :pause 2
)
endlocal
EXIT /B 0
:pause
ping 127.0.0.1 -n %1 > nul
EXIT /B 0
:title
cls
echo.
echo. [33m***********************************[0m
echo. [33m***** [35mFlash [36mServer loader V%vers% [33m******[0m
echo. [33m**[36m Version Actuel: [35m%version% [36mb: [35m%build% [33m**[0m
echo. [33m***********************************[0m
echo.
exit /b 0