Home
Home Backgammon Hardy's Backgammon-Forum Links Site Map Kontakt/Impressum


FIBS: Ich sehe nicht alle Spieler     von Hardy Hübener, ©Okt 2005


Die meisten Bedienoberflächen für FIBS beinhalten eine Spielerliste, so dass man ständig sehen kann, wer gerade online ist. Leider passiert es häufig, dass in dieser Liste nicht alle Spieler auch wirklich angezeigt werden.
Für die Bedienoberfläche JavaFIBS20011)  wird im folgenden eine Lösung zur Behebung dieses Problems erklärt. Zunächst wird der technische Hintergrund erklärt. Wer nur an der Lösung interessiert ist, kann auch direkt zum letzten Kapitel springen, in dem die Lösung realisiert wird.
Die Spielerliste und die FIBS-Befehle "who" und "set"
Nach dem Einloggen erstellt JavaFIBS2001 die Spielerliste über das Kommando "who". FIBS antwortet darauf, indem es alle Spieler meldet, die gerade online sind. Dabei werden für jeden Spieler diverse Informationen übermittelt, u.a.: Wieviele Spieler jeweils online sind, wird rechts oberhalb der Spielerliste angezeigt:
Die Spielerliste von JavaFIBS 2001
Leider ist diese Liste anfangs noch sehr unvollständig. Warum?
Nun, der Umfang der mit dem who-Command erzeugten Antwort ist relativ groß. FIBS stellt seine Antwort jedoch nach einer gewissen Zeit ein. Und zwar bevor alle Informationen übermittelt wurden. Da die FIBS-Software leider nicht mehr im ausreichenden Umfang gepflegt wird, werden wir mit diesem Problem Problem also langfristig leben müssen.
Allerdings kann man die gewünschte Information, sprich eine vollständige Spielerliste, mit ein paar Tricks doch aus FIBS "herauskitzeln".
Die Reihenfolge, in der FIBS auf das who-Command antwortet, wird nämlich über die FIBS-Variable "sortwho" bestimmt. Diese Variable kann folgende Werte annehmen: Wenn die Variable den Wert "rating" hat, werden die Spieler in aufsteigender Reihenfolge ihres ratings gemeldet, bei "rrating" in absteigender Reihenfolge, usw.
FIBS-Variablen werden für jeden Spieler separat abgespeichert. Den Wert der FIBS-Variablen kann man also für sich ändern. Dies erfolgt über das Kommando "set". Die Syntax hierür ist
set Variable Neuer_Wert
Für die Variable sortwho lautet das Kommando also beispielsweise "set sortwho rating", einzugeben in der Kommando-Zeile von JavaFIBS2001 (links unten):
Die Kommando-Zeile von JavaFIBS 2001
Der Lösungsansatz
Der Lösungsansatz besteht nun darin, FIBS mehrere who-Kommandos zu senden, zwischen den einzelnen "who" aber die Reihenfolge, in der FIBS antwortet über die FIBS-Variable "sortwho" zu ändern. FIBS wird zwar auf die "who" jeweils nur unvollständig antworten, jedoch ist durch die unterschiedlichen Antwort-Reihenfolgen sichergestellt, dass jeder Spieler wenigstens einmal gesendet wurde und somit in die Spielerliste aufgenommen wird.
Folgende Kommandos sind also zu geben: In der Regel ist die Spielerliste dann komplett. Ich gebe aber um ganz sicher zu gehen, nach einer kleinen Pause, noch die Kommandos: Damit werden nun wirklich alle Spieler angezeigt!
Nun ist es aber doch recht lästig, nach jedem Einloggen diese 6 Kommandos geben zu müssen. JavaFIBS 2001 bietet über die "Programmable Buttons"2)  einen komfortablen Weg, diese Kommandos zu realisieren.
Die komfortable Lösung
Ich habe für JavaFIBS2001 6 "Programmable Buttons" eingerichtet:
Programmable Buttons bei JavaFIBS2001
Diese 6 Buttons sind wie folgt definiert: Nach dem Einloggen Wenn man während dieser Aktion auf die Zahl der Spieler online schaut ....
Die Spielerliste von JavaFIBS2001
... wird man sehen, dass sich die Zahl deutlich erhöht. Am Ende hat man die gewünschte vollzählige Spielerliste!
Diese 6 Buttons kann man auf drei verschienden Arten realisieren:
Methode 1: Konfigurationsdatei downloaden
Diese Methode empfiehlt sich, wenn man keine weiteren "Programmable Buttons" verwendet. Ansonsten bitte Methode 2 oder 3 verwenden.
1. Sollte JavaFIBS2001 laufen: JavaFIBS2001 beenden3) .

2. Konfigurationsdatei hier downloaden. (Achtung: Bitte rechte Maustaste nutzen und "Ziel speichern unter ..." nutzen, sonst öffnet sich die Datei direkt im Browser.)

3. Datei im Stammverzeichnis von JavaFIBS2001 unter /user/user-Name/ abspeichern4) .
Beim Öffnen von JavaFIBS2001 sind jetzt die 6 Buttons installiert.
Methode 2: Konfigurationsdatei editieren
Wer bereits "Programmable Buttons" verwendet und diese nicht überschreiben will, kann die Konfigurationsdatei direkt editieren. Die Datei "buttons" lässt sich mit jedem einfachen Editor öffnen und editieren. Jeder Button belegt in dieser Datei zwei Zeilen: Zum Erzeugen der 6 Buttons geht man also wie folgt vor:
1. Sollte JavaFIBS2001 laufen: JavaFIBS2001 beenden3) .

2. Die Datei "buttons" mit einem Editor öffnen.

3. Folgende Zeilen über Copy & Paste in die Datei einfügen:
set sortwho rating
images\say1.gif
who
images\say2.gif
set sortwho rrating
images\say3.gif
who
images\say4.gif
set sortwho name
images\say5.gif
who
images\say6.gif
4. Datei speichern. (Die Datei muss den selben Namen behalten. Also Sicherstellen, dass der Editor aus der Datei nicht "buttons.txt" macht. Die Datei muss "buttons" heißen - ohne irgendeine Endung!)
Mit dem vorgestellten Verfahren werden somit die 6 Buttons mit den vordefinierten Button-Bildern say1.gif, say2.gif, usw. hinterlegt. Man kann natürlich auch andere vordefinierte Bilder hierfür verwenden oder selbst eigene Bildchen hierfür kreieren.
Mehtode 3: Programmable Buttons direkt in JavaFIBS2001 erstellen
Die "Programmable Buttons" können auch direkt in JavaFIBS2001 erstellt werden:
1. JavaFIBS2001 starten.
2. Menü "Preferences"
JavaFIBS2001: Menü 'Programmable Buttons'
3. Menüeintrag "Programmable Buttons ..." anklicken:
JavaFIBS: 'Programmable Buttons'
4. Zuerst die gewünschte Graphik für Button 1 auswählen (Feld 1 in obigem Bild).
5. Den Befehl hierfür in Feld 2 eintragen.
6. Button "Add" drücken (3. in obigem Bild).
7. Die Schritte 4 bis 6 (entspricht 1. bis 3. im Bild) wiederholen, bis alle 6 Buttons erstellt sind.
8. Abschließen durch Betätigen des OK-Buttons (entspricht 4. im Bild).
Ein kleines JavaFIBS2001-Problem zu guter Letzt ...
Zu dem Problem von FIBS, dessen Lösung zuvor vorgestellt wurde, gesellt sich nun noch ein Bug von JavaFIBS2001. Manchmal, wennauch selten, passiert es, dass in der Spielerliste alle Spieler doppelt erscheinen:
Alle Spieler doppelt in der Spieler-Liste von JavaFIBS2001
Hier hilft nur eins: Die Liste aktualisieren. Hierfür bietet JavaFIBS2001 einen eigenen Button an:
Button 'Aktualisieren' unter javaFIBS2001
Mit Betätigung dieses Buttons wird die Liste wieder über ein who-Kommando neu aufgebaut. Danach sind keine Spieler mehr doppelt in der Liste, die Liste ist aber wieder einmal unvollständig. Dann muss man nochmals die Buttons 1 bis 6 bedienen, wie oben beschrieben. Das Phänomen der doppelten Spieler-Anzeige passiert glücklicherweise relativ selten, so dass man danach in der Regel dann über eine korrekte Spielerliste verfügt.
Fussnoten
1. JavaFIBS2001 ist Shareware. Der Autor ist Peter Nevalainen. Die JavaFIBS2001-Homepage findet sich unter http://www.fibs.com/~cthulhu/

2. "Programmierbare Bedien-Knöpfe" - mir fällt keine besser Übersetung ein.

3. JavaFIBS2001 speichert die Konfigurationsdateien beim Beenden jeweils ab. Wenn man die Konfugurationsdateien bei laufendem JavaFIBS2001 editiert, werden diese beim Beenden von JavaFIBS2001 also wieder mit den alten Werten überschrieben.

4. Beispiel: JavaFIBS2001 ist unter D:/JavaFIBS2001/ installiert. Der Nutzer heisst "Mustermann". Dann befindet sich die Buttons-Datei unter D:/JavaFIBS2001/user/Mustermann/buttons.

5. JavaFIBS2001 wird bereits mit einigen Bilddateien für Buttons ausgeliefert. Diese befinden sich im Verzeichnis /images/. Im Falle des unter 4. genannten Beispieles also unter D:/JavaFIBS2001/images/.
Letzte Aktualisierung: 27. Mai 2009