psbot-logo

PS-Bot – Ein Teamspeak3 Query Bot

Server und Bot Identität vorbereiten

Verbindung vom Webservice Whitelisten

Damit die Bot-Query-Verbindung auf deinem TS-Server zugelassen wird und diese nicht als „flooding error“ erkannt wird, muss die Webservice IP Adresse des Webinterfaces in die Whitelist des Teamspeak Servers aufgenommen werden. Wir benötigen zudem noch eine angepasste Teamspeak  Identität für diesen Bot damit Ihr den Bot auch sicher betreiben könnt (safety first). Dies funktioniert ganz einfach. Wir gehen das Setup Schritt für Schritt durch.

Webservice Whitelisten

Für Nutzer mit eigenem Root Server

Gehe in das Verzeichnis in dem dein Teamspeak Server liegt.
In diesem Verzeichnis findest du eine Text Datei mit dem Namen query_ip_allowlist.txt (1).

Füge hier folgende IP Adresse hinzu: 80.147.25.186 und speichere die Änderung. Ab jetzt löst der Query Bot keinen „flooding error“ mehr aus.

Für Nutzer mit keinem eigenen Root Server

Solltest du keinen Zugriff auf das Verzeichnis haben, dann ist es in der Regel möglich diese Listen via Webinterface zu bearbeiten und hier die IP Adresse einzutragen.

psbot-whitelist-datei

Bot Servergruppe einrichten

Erstelle eine neue Servergruppe mit der Bezeichnung psbot, bot oder einen Namen deiner Wahl.
In der folgenden Liste haben wir euch alle benötigten Rechte (150) aufgelistet welche der PS-Bot für den sicheren Betrieb benötigt.
Ihr könnt diese Einstellungen am einfachsten mit YaTQA als serveradmin setzen. Auf Anfrage können wir euch auch eine CSV mit den Rechten zur Verfügung stellen welche einfach via YaTQA auf die Servergruppe Importiert werden kann.

RechtWertSkipNegiertVergabe
b_channel_create_child100
b_channel_create_modify_with_codec_opusmusic100
b_channel_create_modify_with_codec_opusvoice100
b_channel_create_permanent100
b_channel_create_semi_permanent100
b_channel_create_temporary100
b_channel_create_with_description100
b_channel_create_with_maxclients100
b_channel_create_with_maxfamilyclients100
b_channel_create_with_needed_talk_power100
b_channel_create_with_password100
b_channel_create_with_sortorder100
b_channel_create_with_topic100
b_channel_delete_flag_force100
b_channel_delete_permanent100
b_channel_delete_semi_permanent100
b_channel_delete_temporary100
b_channel_info_view100
b_channel_join_ignore_maxclients100
b_channel_join_ignore_password100
b_channel_join_permanent100
b_channel_join_semi_permanent100
b_channel_join_temporary100
b_channel_modify_banner100
b_channel_modify_codec100
b_channel_modify_codec_latency_factor100
b_channel_modify_codec_quality100
b_channel_modify_description100
b_channel_modify_make_codec_encrypted100
b_channel_modify_make_permanent100
b_channel_modify_make_semi_permanent100
b_channel_modify_make_temporary100
b_channel_modify_maxclients100
b_channel_modify_maxfamilyclients100
b_channel_modify_name100
b_channel_modify_needed_talk_power100
b_channel_modify_parent100
b_channel_modify_password100
b_channel_modify_sortorder100
b_channel_modify_temp_delete_delay100
b_channel_modify_topic100
b_client_avatar_delete_other100
b_client_ban_create100
b_client_ban_delete100
b_client_ban_delete_own100
b_client_ban_list100
b_client_channel_textmessage_send100
b_client_complain_delete100
b_client_complain_delete_own100
b_client_complain_list100
b_client_create_modify_serverquery_login100
b_client_custom_info_view100
b_client_delete_dbproperties100
b_client_ignore_antiflood100
b_client_ignore_bans100
b_client_ignore_sticky100
b_client_info_view100
b_client_modify_dbproperties100
b_client_modify_description100
b_client_modify_own_description100
b_client_offline_textmessage_send100
b_client_permissionoverview_own100
b_client_permissionoverview_view100
b_client_remoteaddress_view100
b_client_request_talker100
b_client_server_textmessage_send100
b_client_set_flag_talker100
b_client_skip_channelgroup_permissions100
b_client_use_channel_commander100
b_client_use_reserved_slot100
b_ft_transfer_list100
b_group_is_permanent100
b_icon_manage100
b_virtualserver_channel_list100
b_virtualserver_channel_permission_list100
b_virtualserver_channel_search100
b_virtualserver_channelgroup_client_list100
b_virtualserver_channelgroup_delete100
b_virtualserver_channelgroup_list100
b_virtualserver_client_dbinfo100
b_virtualserver_client_dblist100
b_virtualserver_client_dbsearch100
b_virtualserver_client_list100
b_virtualserver_client_permission_list100
b_virtualserver_client_search100
b_virtualserver_connectioninfo_view100
b_virtualserver_custom_search100
b_virtualserver_info_view100
b_virtualserver_join_ignore_password100
b_virtualserver_modify_hostbanner100
b_virtualserver_notify_register100
b_virtualserver_notify_unregister100
b_virtualserver_permission_find100
b_virtualserver_servergroup_client_list100
b_virtualserver_servergroup_delete100
b_virtualserver_servergroup_list100
i_channel_create_modify_with_codec_latency_factor_min100
i_channel_create_modify_with_codec_maxquality1000
i_channel_delete_power7500
i_channel_description_view_power7500
i_channel_join_power7500
i_channel_max_depth1000
i_channel_modify_power7500
i_channel_needed_delete_power75
i_channel_needed_description_view_power75
i_channel_needed_join_power75
i_channel_needed_modify_power75
i_channel_needed_permission_modify_power75
i_channel_needed_subscribe_power75
i_channel_permission_modify_power7500
i_channel_subscribe_power7500
i_client_ban_max_bantime-100
i_client_ban_power7500
i_client_complain_power7500
i_client_kick_from_channel_power7500
i_client_kick_from_server_power7500
i_client_max_avatar_filesize20000000
i_client_max_channel_subscriptions-100
i_client_max_clones_uid1000
i_client_move_power7500
i_client_needed_ban_power7500
i_client_needed_complain_power7500
i_client_needed_kick_from_channel_power7500
i_client_needed_kick_from_server_power7500
i_client_needed_move_power7500
i_client_needed_permission_modify_power750075
i_client_needed_serverquery_view_power750075
i_client_needed_talk_power75
i_client_needed_whisper_power7500
i_client_permission_modify_power7500
i_client_poke_power7500
i_client_private_textmessage_power7500
i_client_serverquery_view_power7500
i_client_talk_power7500
i_ft_needed_directory_create_power75
i_ft_needed_file_browse_power75
i_ft_needed_file_delete_power75
i_ft_needed_file_download_power75
i_ft_needed_file_rename_power75
i_ft_needed_file_upload_power75
i_group_auto_update_max_value4500
i_group_auto_update_type4500
i_group_member_add_power7500
i_group_member_remove_power7500
i_group_modify_power7500
i_group_needed_member_add_power7500
i_group_needed_member_remove_power7500
i_group_needed_modify_power7500
i_group_sort_id200
i_permission_modify_power7500

Teamspeak Bot Identität erstellen

Starte den Teamspeak3 Client und erstelle dir eine neue Identität. Diese kannst du über Extras (1) – Identitäten (2) erstellen. Drücke dazu auf Erstellen (3) und gib als Identität Name (4) sowie als Nickname (5) psbot ein. Anschließend mit OK (6) bestätigen. Jetzt verbinde dich mit mit dieser identität zu deinem Server. Ob die Identität verwendet wird erkennst du an der Fett markierten Schriftart.

Vergib nun die Bot Servergruppe an die Bot Identität. Die Bot Identität (7) ist jetzt in der Bot Servergruppe (8). Jetzt kann mit dieser Identität ein neuer ServerQuery Login (9) erstellt werden. Den Namen welchen du eingeben musst ist dein Query Login Name. Das Passwort dazu wird automatisch generiert.

SPEICHERE DEN LOGIN NAMEN UND DAS PASSWORT

Verlasse den Server wieder und ändere deine Identität wieder zu deiner bisher genutzten Identität. Die Bot Identität wird, in der Regel, jetzt nicht mehr gebraucht. Dein Server kennt jetzt diese Identität.

psbot-create-idenity-step-1
psbot-create-identiaet-ste-2

Das Webinterface

Bot Verify Server Gruppe (Wegwerfgruppe)

Da wir Wert drauf legen Missbrauch zu vermeiden, muss nach der Eingabe der Serverdaten der Bot verifiziert werden. Dazu benötigt der Bot eine Servergruppe die exakt „Server Admin“ heißt. Solltet Ihr diese Gruppe nicht haben könnt Ihr diese ohne jegliche Rechte einfach schnell anlegen und an euch vergeben. Der Bot sendet einen Verifizierungscode an diese Gruppe welcher im Webinterface bestätigt werden muss.Solltet Ihr diese Gruppe aktiv nutzen, erhalten alle Clients in dieser Gruppe diesen Code, diese sind ja alle Server Admins 😉

Danach kann die Gruppe wieder gelöscht werden.

Zugangsdaten und Serververbindung

Nachdem du dich Registriert und eingeloggt hast kannst du deinen Server hinzufügen. Wir benötigen jetzt den Query Login Namen und das Passwort welches wir im vorhergehenden Schritt erstellt haben.

Gib jetzt also deine Daten ein:
Servername = Beliebiger Name deiner Wahl
IPv4 Adresse = Die IP Adresse unter welcher dein Server erreichbar ist
Query Admin = Query Login Namen (Diesen haben wir im obigen Kapitel erstellt)
Query Admin Passwort = Das Passwort welches beim erstellen des Query Admin Logins erstellt wurde
Query Port = Kann leer gelassen werden wenn der Standard benutzt wird. Wird ein anderer Port verwendet muss dieser hier eingetragen werden
Server Port = Kann leer gelassen werden wenn der Standard benutzt wird. Wird ein anderer Port verwendet muss dieser hier eingetragen werden
Query Nickname = Name wie der Bot auf euren Server in den Serverlogs angzeigt werden soll
Beschreibung = Internes Beschreibungsfeld für den eigengebrauch

Wenn bis hierhin alles Richtig gemacht wurde erhälst du eine Textnachricht mit dem Verifizierungscode vom Bot. Gib diesen ein.
Wenn dieser korrekt ist, dann wird jetzt dein Server initialisiert und kommst in das Control Bot Center.

Troubleshooting

Es erscheint eine Fehlermeldung mit „Bot is flooding“ dann fehlen dem Bot entweder Rechte oder wurde nicht in die Whitelist eingetragen.

Weiterentwicklung für 2024 geplant

Das Projekt steht auch für 2024 weiter in der Entwicklungsplanung. Ich habe mich hier entschlossen dieses Projekt auf Open Source umzustellen. Damit einhergehend sind allerdings einige Änderungen notwendig welche ich sobald wie möglich umsetzen werde. Danach wird das Projekt auf Github verfügbar sein.

You may also like...