Hallo werte Damen und Herren,
ich teile hier mit euch mein RCON Tool, welches in meiner Community zum Einsatz kommt.
Aber was kann das ganze eigentlich?
Features:
- CRON tasks (Nachrichten via RCON und Restarts)
- Automatisches Neustarten bei abschmieren der Arma server Anwendung (HC supported)
- Wiederholende Tasks mit timeout zwischen den Ausführungen
- einfache Konfiguration via json
Was noch kommt:
- Batch support (um zum Beispiel eine missionsupdate pipe anzuwerfen via git usw.)
- Mehrere Instanzen Server Instanzen verwalten
- settings on the fly neu zu laden
Den Source Code findet ihr hier: https://github.com/DragonGER/ArmaScheduler
Download Link zur Anwendung: https://github.com/DragonGER/ArmaScheduler/releases
Nutzung:
Beim ersten Starten der Anwendung wird automatisch eine exemplarische settings.json auf dem Desktop erstellt (aktuell wird auch nur diese geladen).
Ein Beispiel für eine funktionierende settings.json Konfiguration:
{
"settings": {
"ip": "127.0.0.1",
"port": 2307,
"password": "myfancyrcon",
"repeat": 100,
"timeout": 100,
"hcCount": 3,
"serverExecutable": "D:\\arma3\\arma3server_x64.exe",
"hcParameter": "-client -connect=127.0.0.1 -port=2302",
"serverParameter": "-port=2302 -config=D:\\Arma3\\TADST\\TF47\\TADST_config.cfg -cfg=D:\\Arma3\\TADST\\TF47\\TADST_basic.cfg -profiles=D:\\Arma3\\TADST\\TF47 -name=TF47-GM -filePatching -mod=gm;@ace;@ADV__ACE_CPR;@CBA_A3;@Task_Force_Arrowhead_Radio_BETA__;-autoInit -enableHT -servermod=@TCL;@InterceptDB"
},
"scheduledTasks": [
{
"time": "19:00:00",
"rconCommand": "say -1 Server restart in 1 hour.",
"executeTask": 0
},
{
"time": "19:30:00",
"rconCommand": "say -1 Server restart in 30 minutes.",
"executeTask": 0
},
{
"time": "19:50:00",
"rconCommand": "say -1 Server restart in 10 minutes. Please bring all vehicles back to base. Bitte bringt alle Fahrzeuge zurück zur Basis.",
"executeTask": 0
},
{
"time": "20:00:00",
"rconCommand": "say -1 RESTART!",
"executeTask": 1
}
],
"repeatingServices": [
{
"startupDelay": 0,
"repeating": -1,
"delay": 10,
"rconCommand": "say -1 Restart times: [02:00, 08:00, 14:00, 20:00]",
"executeTask": 0
},
{
"startupDelay": 2,
"repeating": -1,
"delay": 15,
"rconCommand": "say -1 Schaut auch auf unserer Website und im Forum vorbei, unter taskforce47.com / forum.taskforce47.com",
"executeTask": 0
}
]
}
Alles anzeigen
Achtet darauf das Pfade in JSON immer mit doppeltem Backspace (\\) geschrieben werden, also C:\\Users\\Administrator\\Desktop
Wichtig: Um RCON nutzen zu können müsst ihr Battleye richtig konfigurieren. Wie das geht könnt ihr hier nachlesen: https://community.bistudio.com/wiki/BattlEye#Server
Theoretisch könnt ihr alles via rconCommand machen was in dieser Liste steht: https://community.bistudio.com/wiki/Multiplayer_Server_Commands und die Battleye eigenen.
Für weitere Informationen schaut bitte in readme im Github Repository, dort steht genau erläutert, was die einzelnen Funktionen machen.
Noch ein paar Technische Details für Leute die es interessiert:
ArmaScheduler nutzt als Backend Hangfire um Cron jobs zu schedulen. Sich wiederholende Tasks bekommen einen entsprechenden delay und werden in die Hangfire Queue geschoben und fügen sich beim Ausführen erneut in die Warteschlange ein.
Zum überprüfen der Tasks kann das Hangfire dashboard genutzt werden. Dies läuft auf http://localhost:9000/hangfire (ein entsprechender switch zum deaktivieren kommt bald)
Das ganze Läuft in .Net Framework 4.7.1, wobei man mit etwas Aufwand auch auf .NetCore2 umstellen könnte. Linux Support wäre also Theoretisch drinnen.
Mit freundlichen Grüßen,
Dragon