Clienterweiterung ClientMod

Die Client-Erweiterung ClientMod bietet gegenüber dem Standardclient viele zusätzliche, komfortable Einstellungsmöglichkeiten. Aktivieren lässt sich diese Erweiterung entweder temporär mittels /client mod im Hauptchat oder ständig durch den Eintrag Client = Mod in der Datei Brettspielwelt.prop. Zum (temporären) Ausschalten des ClientMod einfach /client base im Hauptchat eingeben. Alle Konfigurationen für den ClientMod werden in der Datei ClientMod.prop im Hauptverzeichnis der BrettspielWelt vorgenommen.

Für Fragen und Anregungen zum ClientMod gibt es das Forum für Client-Erweiterungen.

Aussehen und Positionierung

Mit dem ClientMod kann man das Aussehen des Hauptchats und der Chatfenster (Tell- und Channelfenster) seinem eigenen Geschmack anpassen. Dabei können Farben und Schriftarten frei gewählt werden. Ebenso können Haupt- und Chatfenstern bestimmte Größen und Positionen zugewiesen werden. Um die Farbeinstellungen zu aktivieren, wird folgender Eintrag benötigt:

colors = on

Beispieleinstellung für das Hauptfenster:

maindefault = 20, 20, 400, 260, 000000, DDDDDD, 000000, DDDDDD

Die ersten beiden Zahlen geben die Ausrichtung des Hauptfenster an (x- und y- Position). Die nächsten beiden Zahlen stehen für Breite und Höhe des Hauptfensters. Dann folgen die Farbangaben im Hex-Format für die Vorder- und Hintergrundfarbe des Fensters sowie die Vorder- und Hintergrundfarbe der Eingabezeile.

Die Angaben für die Chatfenster lauten analog dazu:

channeldefault = 20, 20, 400, 260, 000000, FFFFDE, 000000, FFFFDE

telldefault = 20, 20, 400, 260, 000000, EBEBFF, 000000, EBEBFF

Um Größe und Position der Fenster leicht zu bestimmen, einfach das entsprechende Fenster in die gewünschte Größe und Position ziehen und dann in diesem Fenster den Befehl /mod_info ausführen. Die ausgegebenen Positions- und Größenangaben können dann einfach in die ClientMod.prop übernommen werden.

Die Festlegung der globalen Schriftart, -größe und -attribute erfolgt über diesen (Beispiel-)Eintrag:

font = "Arial", 10, bu

Der erste Wert gibt die Schriftart an, dann folgen die Schriftgröße und zuletzt die Schriftattribute "i" (kursiv), "u" (unterstrichen) und "b" (fett), die beliebig kombiniert werden können.

Die verfügbaren Schriftarten sind abhängig vom System, in der Regel funktionieren nicht alle Schriften unter Java.

Man kann auch für ein bestimmtes Chatfenster eine eigene Konfiguration erstellen, beispielsweise für den SPV-Channel:

channel_SPV = "#SPV", 20, 20, 300, 100, #001122, 994455, 447755, 000000

Dabei muss der Channelname mit channel_Channelname angegeben werden. Der erste Wert ist wiederum der Channelname (# und "" nicht vergessen!), dann folgen wie oben beschrieben wieder die Werte für Position, Größe und Farben.

Natürlich geht das auch für Tellfenster:

tell_UserXY = "XY", 0, 720, 665, 269, 000000, EBEBFF, 000000, EBEBFF

Es lassen sich auch komplette Zeilen oder bestimmt Ausdrücke farblich hervorheben:

colorline_-- = "--" , 707070,

Hiermit werden alle Clientmeldungen (die ja mit "--" beginnen) grau (707070) dargestellt.

Oder man färbt seine eigenen Zeilen ein:

colorline_Dusagst = "Du sagst" , 0080C0,

Oder alle Texte, die User XY sagt:

colorline_XY = "XY", #0080C0,

Ihr könnt hier eurer Fantasie und eurer Farbfreude freien Lauf lassen.

Statt ganzer Zeilen können auch nur gewisse Worte oder Zeichenketten eingefärbt werden:

colorkey_Wizard = "Wizard", #0000ff

Hiermit wird das Wort "Wizard" immer blau dargestellt, hilfreich z.B., wenn man in der SPV keinen Aufruf für sein Lieblingsspiel verpassen will. Achtung: Groß- und Kleinschreibung wird hierbei unterschieden!

Es lassen sich auch einzelne Zeichenketten hervorheben. Hierzu einige Beispiele:

colorkeyregex_meinname = "(?i:meinname)", #0000ff,

Hebt "MeinName" immer hervor, unabhängig von der Groß- und Kleinschreibung.

colorkeyregex_nr = "\\b\\d+\\b", ff0000

Markiert alle Zahlen rot.

colorkeyregex_room = "(?i:C)\\d+-\\d+", #663399

Markiert Raumnamen (Cxy-ab) farblich.

colortime = aaaaaa, , , 9, n

Damit wird bei eingeschalteter Zeitfunktion die Uhrzeit farbig dargestellt.

colorlinks = param1, param2, param3, param4, param5

Dieser Eintrag färbt Links ein.

Bei der Farbwahl immer die Farbe des Fensters beachten, denn blaue Schrift auf blauem Hintergrund könnte das Lesen erschweren ;-).

javastyle = on

Bestimmt das Aussehen von Buttons und Scrollleisten. Das Aussehen variiert je nach verwendeter Java-Version. Hierbei gilt on = Javadesign, off = Systemstandard

vscrollbarsize = 15

Bestimmt die Breite der vertikalen Scrollleiste.

hscrollbarsize = 12

Bestimmt die Breite der horizontalen Scrollleiste.

Bestimmte Chatfenster können innerhalb oder außerhalb des Collectchats geöffnet werden. Der Collectchat kann mit der F11-Taste aktiviert bzw. deaktiviert werden.

channeltocollect = "#SPV", "#ClientMod"

Legt z.B. fest, dass die Channel "SPV" und "ClientMod" immer im Collectchat geöffnet werden.

channeltocollect = *

Öffnet alle Channelfenster im Collectchat.

channeltowindow = "#SPV", "#ClientMod"

Legt umgekehrt fest, dass sich diese beiden Channel in extra Fenstern außerhalb des Collectchats öffnen. Auch hier lässt sich mittels "*" einstellen, dass alle Channel außerhalb des Collectchats geöffnet werden. Achtung: Diese Option hat nur Wirkung, wenn der Collectchat des BSW-Clients deaktiviert ist.

Gleiches gilt auch hier für die Tellfenster:

telltocollect = "UserA", "UserB"

Öffnet die Tellfenster von User A und B im Collectchat. Mit * werden alle Tellfenster im Collectchat dargestellt.

Und auch hier gilt umgekehrt:

telltowindow = "UserX", "UserY"

Öffnet die Tellfenster von User X und Y außerhalb des Collectchats.

Konfiguration allgemein

Für die Konfiguration der Kontextmenüs und Buttonleisten gelten grundsätzlich folgende Regeln:

  • *Kommando - Kommando wird direkt ausgeführt
  • +Kommando - Kommando wird in die Eingabezeile gesetzt, vorhandener Text ersetzt
  • -Kommando - Kommando wird an der Cursorposition eingefügt
  • !Kommando - Kommando wird im Hauptfenster ausgeführt
  • !+Kommando - Kommando wird im Hauptfenster in die Eingabezeile gesetzt, vorhandener Text ersetzt
  • !-Kommando - Kommando wird im Hauptfenster an der Cursorposition eingefügt

Als Kommandos können alle Kommandos der BrettspielWelt sowie die spezifischen Kommandos des ClientMod verwendet werden.

Außerdem gibt es noch zwei spezielle Kommandos:

  • submenu - Erstellt ein Untermenü
  • separator - Erstellt eine Menü-Unterteilung

Um Variablen einzubauen benötigt man folgende Einträge:

  • $channel$ - wird durch den Channel-/Tell-Namen ersetzt
  • $selection$ - wird durch das erste Wort der aktuelle Auswahl (Markierung) ersetzt
  • $selection100$ - wird durch die ersten 100 Zeichen der aktuelle Auswahl (Markierung) ersetzt

Konfiguration der Kontextmenüs

Es gibt verschiedene Arten von Kontextmenüs. Grundsätzlich werden dabei alle Menüpunkte durchnummeriert. Die Nummerierung kann von 1-35 erfolgen und muss nicht fortlaufend sein.

menu_Nummer = Menüeintrag, Kommando

Hiermit wird ein Menüeintrag für alle Kontextmenüs definiert, d.h. diese Einträge erscheinen sowohl im Kontextmenü des Hauptfensters als auch im Kontextmenü der Chatfenster (jeweils unterhalb des spezifischen Kontextmenüs).

Beispiel:

menu_3 = "/whereis $selection$", "!/whereis $selection$"

Damit wird im Hauptchat angezeigt, wo sich der markierte Name gerade aufhält.

Menüs können in beliebiger Tiefe angelegt werden:

menu_1 = "1. Menüpunkt", "Befehl"
menu_2 = "Das ist ein Untermenü", "submenu"
menu_2_1 = "1. Menüpunkt im Untermenü", "Befehl"
menu_2_2 = "Untermenü", "submenu"
menu_2_2_1 = "1. Menüpunkt im Untermenü", "Befehl"
menu_2_3 = "2. Menüpunkt im Untermenü", "Befehl"
menu_2_4 = "3. Menüpunkt im Untermenü", "Befehl"
menu_3 = "3. Menüpunkt", "Befehl"

Beispiele dafür finden sich in der Beispielprop.

Analog hierzu können spezifische Kontextmenüs angelegt werden:

mainmenu_Nummer = Menüeintrag, Kommando

Für das Kontextmenü des Hauptchats.

channelmenu_Nummer = Menüeintrag, Kommando

Für das Kontextmenü der Channelfenster.

tellmenu_Nummer = Menüeintrag, Kommando

Für das Kontextmenü der Tellfenster.

Das normale Kontextmenü des Standardclients lässt sich mit Strg + Rechtsklick im entsprechenden Chatbereich aufzurufen.

Buttonleisten

Aussehen der Buttonleisten

Man kann eine Buttonleiste im Hauptchat und in den Chatfenstern einfügen und diese den eigenen Wünschen angepassen.

mainbutton = on

Schaltet die Buttonleiste im Hauptchat ein. Mit off kann sie wieder deaktiviert werden. Analog gilt:

channelbuttons = on

tellbuttons = on

Die Schriftart der Buttonleisten wird wie folgt definiert:

mainbuttonfont = Arial, 10

Analog dazu gilt wieder:

channelbuttonfont = Schriftname, Schriftgröße

tellbuttonfont = Schriftname, Schriftgröße

Die Größe der Buttons kann auf zwei Arten festgelegt werden:

buttonoptimalsize = on

Passt die Buttongröße automatisch an die Buttonbeschriftung an. Mit off werden alle Buttons gleichgroß angezeigt, wobei sich die Größe nach der längsten Buttonbeschriftung richtet.

buttonshowtooltips = on

Aktiviert Tooltipps für die Buttons

buttonposition = east

Gibt die Position der Buttonleiste an. Mögliche Werte sind east, north, west und south.

Möchte man eigene Bilder für die Buttonleiste hinterlegen, muss man zuerst einen Ordner im Brettspielweltverzeichnis dafür anlegen, z.B. C:\BSW\ClientModPics.

Dann muss der entsprechende Pfad noch definiert werden, beispielsweise so:

iconpath = C:\BSW\ClientModPics

Die Bilder sollten ein Format von maximal 16x16 Pixel haben. Unterstützt werden .jpg, .gif und .png.

Funktionen der Buttonleiste

Die Buttonbelegung kann den eigenen Wünschen angepasst werden und wird wie folgt definiert:

mainbutton_1 = Buttonbeschriftung, Kommando

Also beispielsweise

mainbutton_1 = "Hilfe", "!/help"

Es ist eine Nummerierung von 1 bis 35 möglich, die nicht zwingend fortlaufend sein muss.

Möchte man einem Button eigene Bilder zuweisen, wird der Dateiname des Bildes mit einem Doppelpunkt nach der Beschriftung eingegeben.

mainbutton_1 = "Hilfe:help.jpg", "!/help"

Man kann einen Button auch mit zwei Kommandos belegen, die dann beim Anklicken abwechselnd aufgerufen werden.

mainbutton_3 = "Scrollen aus:scrollaus.gif", "*/mod_noscroll", "Scrollen an:scrollan.gif", "*/mod_scroll"

Hierbei schaltet man mit einem Klick das Scrollen aus, mit einem weiter wieder an. Entsprechend wechselt auch das Icon.

Analog dazu können natürlich auch Buttons für die Chatfenster definiert werden:

channelbutton_1 = "Huhu", "*Huhu :-)"

Gibt ein "Huhu :-)" im Channel aus.

tellbutton_6 = "W:whereis.png", "!/whereis $channel$"

Zeigt im Hauptchat an, wo sich der Tellpartner gerade befindet.

Verschiedenes

Der ClientMod kann beim Start bis zu zehn Kommandos automatisch ausführen:

startup_1 = "/ctell /mode quiet=off"

startup_2 = "/gtell Channelname Hallo zusammen"

Die Chatsounds für einzelne Chatfenster (wenn etwas Neues geschrieben wird) lassen sich im ClientMod sowohl global als auch spezifisch einstellen.

channelmsgsound = on

Schaltet den Chatsound für Channelfenster global ein. Mit off wird der Channelsound entsprechend ausgeschaltet. Ausnahmen davon werden wie folgt definiert:

channelmsgsoundex = "#SPV", "#Tutoren"

Somit würden in den Channel "SPV" und "Tutoren" keine Sounds ausgegeben werden. Es können beliebig viele Channel ausgenommen werden. Bei Channel dabei immer auf das "#" vor dem Namen achten!

Steht "channelmsgsound" auf "off", werden umgekehrt nur in den unter "channelmgssoundex" definierten Channel die Sounds ausgegeben.

errorlog = error.txt, on

Damit wird eine Logdatei angelegt, die bei auftretenden Fehlern hilfreich sein kann. Der Dateiname kann dabei frei gewählt werden. Im beschriebenen Fall ( mit "on") wird die neue Datei immer angehängt. Standardmäßig kann man das "on" jedoch auch weglassen, dann wird die Datei einfach jedesmal überschrieben.

import = "http://www.meineDomain.de/Raumliste.txt", "menu.prop", "colors.prop"

Mit dieser Option können Einstellungen in externe Dateien ausgelagert werden. So kann man beispielsweise Städteraumlisten zentral verwalten. Es können sowohl Dateien als auch URLs angegeben werden. Die URLS müssen jedoch auf reine Textdateien verweisen, html-Seiten werden nicht ausgewertet!

autoscroll = on

De/Aktiviert die Autoscroll-Funktion. Ist Autoscroll aktiviert, wird das Scrollen automatisch ausgeschaltet, sobald über den Scrollbalken aktiv nach oben gescrollt wird. Das Scrollen wird wieder aktiviert, wenn über den Scrollbalken an das Ende des Chat gescrollt wird.

scrollbarcolor = Vordergrundfarbe, Hintergrundfarbe, Vordergrundfarbe deaktiviert, Hintergrundfarbe deaktiviert

Legt die Farbe der vertikalen Scrollbar fest, abhängig davon, ob das Scrollen aktiviert oder deaktiviert ist.

volume = 100

Legt die Lautstärke beim Abspielen von wav-Dateien fest. Die empfohlenen Werte liegen zwischen 0 und 200. Achtung: Viele Sounddateien der BrettspielWelt haben noch .au-Format und werden daher mit dieser Einstellung nicht erfasst.

Spezielle Kommandos für den ClientMod

Die Kommandos für den ClientMod finden sich auf der Kommandoseite.

Eine ausführliche Beschreibung des ClientMod gibt es auf der Homepage von DoD, dem Urheber des ClientMod.