Hi,
Vor einiger Zeit habe ich mich mal recht intensiv mit der Administration von SWBF2-Servern auseinandergesetzt, dabei ist diese kleine Tool entstanden um die
Verwaltung eines SWBF2-Dedicatedservers etwas zu erleichtern. Falls wer Interesse am Sourcecode hat: http://sourceforge.net/projects/swbf2adminhelper/.
Die kompilierte Variante mit Config-Dateien und SQL-Skript zum Einrichten der Datenbank findet sich im Anhang.
Kann folgendes:
- vollständige Fernverwaltung über das Internet - das Tool muss nicht auf dem selben Rechner laufen wie der Gameserver.
- Spielerliste kann bei Bedarf direkt aus dem RAM gelesen werden
- Sperren des ingame-logins möglich (/admin /login) um Bruteforce-Attacken zu unterbinden
- eigene Benutzergruppen mit individuellen Berechtigungen konfigurierbar
- benutzerspezifische Berechtigungen konfigurierbar
- einfache Ingame-Gruppenverwaltung
- Autoannounce-Scheduler mit diversen Statusvariablen
- komplett MySQL-basiertes Spieler-, Benutzer-, Berechtigungs- und Ban-Management
- externes Bansystem, mit IP-, Keyhash- und Tempban Unterstützung (unbegrenzt viele Bans, bleiben auch nach einem Neustart erhalten)
- eigene Willkommensnachrichten
- vollständig konfigurierbare Templates
- frei definierbare Befehle
- lightweight, kein GUI
Befehlsliste (ausgehend von der Standardkonfiguration):
Divers:
!test (öffentlich))
Gibt generelle Informationen über den Benutzer aus, ob er registriert ist,
in welcher Gruppe er ist usw.
!adminpls (first):
Der erste Spieler der diesen Befehl ausführt wird automatisch registriert und als Administrator
eingetragen
Spielerverwaltung:
!ban <Spielername> [<Grund>]
Sperrt den Keyhash eines Spielers
!tempban <Spielername> <zeit> [<Grund>]
Sperrt den Keyhash eines Spielers für einen bestimmten Zeitraum
(Zeitangabe in Sekunden)
!ipban
Sperrt die IP-Adresse eines Spielers
!tempipban <Spielername> <zeit> [<Grund>]
Sperrt die IP-Adresse eines Spielers für einen bestimmten Zeitraum
(Zeitangabe in Sekunden)
!kick <Spielername> [<Grund>]
Wirft den Spieler vom Server
!swap <Spielername> [<Grund>]
Wechselt das Team des Spielers
!nquery <Spielername> [-v <public|pm>] [-o <asc|desc>] [-c <max. Zeilen>] [-m <key|ip>] [-s <Anz. Zeichen>]
Sucht nach weiteren Pseudonymen des Spielers:
-v: Sichtbarkeit, die Namen können öffentlich oder als PM ausgegeben werden
-o: Reihenfolge, ausgehend vom 1. Beitritt
-c: Max. Anzahl an Zeilen
-m: Suchmodus: key: keyhash, ip: IP-Adresse
-s: Anzahl an Zeichen die von der IP-Adresse übereinstimmen müssen
!putgroup <Spielername> <Gruppenname>
Setzt die Gruppe des Spielers, ist der Spieler noch nicht als Benutzer registriert
wird dies automatisch nachgeholt. Wird die Gruppe "none" zugewiesen (Name auch konfigurierbar),
so wird die Gruppenzuweisung entfernt, der Nutzer bleibt registriert
Server:
!shutdown
Hält den Server an, beendet das Tool
!bots <Anzahl>
Setzt die Anzahl an AI-Spielern auf den gegebenen Wert
!setnextmap <mapname>
Setzt die nächste Map, ist die Map noch nicht in der Maprotation vorhanden
wird diese automatisch eingefügt
!nextmap
Gibt den Namen der nächsten Map aus
Eigene Befehle sind dynamisch definierbar.
Die Konfiguration erfolgt über XML-Dateien, welche sich im Verzeichnis ./cfg relativ zur Anwendung befinden.
Im Unterordner ./cfg/cmd befinden sich die Konfigurationsdateien für die einzelnen Befehle. Die
Dateien sind entsprechend kommentiert und dürften einigermaßen verständlich sein.
Sollte etwas unklar sein, enfach fragen.
Wenn ein weiterer Servermanager genutzt wird, kann das "CommandPrefix" in core.xml
z.B. von ! zu / geändert werden um zu verhindern, dass ein Befehl von mehreren Management-Tools erkannt wird.
Vorkonfigurierte Gruppen / Rechte:
Admin:
'nextmap'
'kick'
'endgame'
'ban'
'bots'
'nquery'
'ipban'
'tempban'
'tempipban'
'swap'
'putgroup'
'shutdown'
'setnextmap'
'test'
Mod:
'kick'
'ban'
'tempban'
'ipban'
'tempipban'
'swap'
'endgame'
'nextmap'
'test'
'setnextmap'
'nquery'
Friend:
Besitzt keine zusätzlichen Permissions, wird aber mit der Willkommensnachricht für registrierte Benutzer begrüßt.
Der Befehl !adminpls setzt die Gruppe des ersten Spielers, der diesen Befehl ausführt auf "Admin".
Danach wird dieser Befehl deaktiviert. Er kann durch das Löschen der ai_users -Tabelle erneut freigegeben werden.
(SQL: truncate `ai_users`). Dabei gehen jedoch alle Gruppenzuweisungen verloren.
Grüße,
Jan