TeamSpeak 3 Bot

      TeamSpeak 3 Bot

      Huhu ihr Würste :)

      ich hab mir mal ein Stündchen Zeit genommen und ein kleines Programmchen entwickelt, welches bisher die Away-Funktionalität vom PerlMod abdeckt. Soll heißen: Beim Away-gehen wird man automatisch in den "Lange weg"-Channel verschoben.
      Bisher wird man nicht automatisch zum vorherigen Channel zurückgeschoben, wenn man wiederkommt. Aber das bastel ich noch rein.
      Allgemein muss ich da noch einiges verfeinern. Vor Allem Codeseitig ^^

      Bevor ich das ganze aber als Dienst auf den Server werfe, wollte ich euch noch Fragen, was ihr gern an anderen Funktionen hättet?! Gerade Stefan wird sich ja noch an ein paar PerlMod-Sachen erinnern, die er sicherlich gern wieder zurück hätte.

      Nur eins muss ich vorweg schonmal ablehnen: Unser Türversteher wird so schnell nicht zurück kommen^^

      Also... legt mal los *D*


      Feature-Liste:
      - Auto AFK Channel
      - Auto Idle Channel
      - Bot-Befehle3
      - Gewinnspiel-System
      - Namensfilter
      - Punish1 bei Aufnahme
      - Sticky Channel
      - Vote-System
      - Verschiedene zeitgesteuerte Nachrichten2

      Außerdem ist der Bot voll konfigurierbar. Jeder erdenkliche Wert und Unsinn kann eingestellt werden. Dazu muss lediglich eine Konfigurations-XML in einem Ordner hinterlegt werden. Mehrere XMLs bedeuten entsprechend mehrere Botinstanzen. Bei der Änderung der Konfiguration liest der Bot vollautomatisch sofort die Einstellungen und übernimmt diese.
      Eventuell binde ich da noch ein Web-Frontend an, damit ich das als TS3-Addon auf der offiziellen Webseite anbieten kann :)

      Legende:
      fertig | In Arbeit | geplant
      1 = Je nach Einstellung: Sticky-Channel, Channel-Kick, Server-Kick
      2 = Je nach Einstellung in beliebiger Anzahl und beliebigem Intervall: Willkommennachricht, Werbenachricht, Globale Werbenachricht
      3 = !help und !seen. Für Admins !files, !stick und !unstick. Erklärungen der Befehle bekommt man entsprechend unter !help.

      TS3-Bot Projektseite
      TS3-Bot SourceCode

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      Ich könnte ja nun die ganze Palette von dem alten Bot posten, tu ich aber nicht *baeh*

      Aber ein paar sachen haben mir doch ganz gut gefallen.

      - Automatisch auf lange weg und zurück bei away
      - Autokick bei Aufnahme
      - Bannen von Benutzern mit und im Namen
      - Namenfilter, mit dem bestimmte Nicknamen verboten werden können
      - ein netter Sound wenn der Bot einen Kickt *D*


      Ach, irgendwie sagt google mir das es wohl auch schon einen TS3 Bot gibt, das geschreibsel ist aber auf Englisch, aber vielleicht findest Du ja da noch die eine oder andere Idee Klick
      Ja Stefan, ein paar Ansätze gibt es bereits. Aber die haben mir bisher nich gefallen.

      Außerdem hab ich die Away-Funktion gestern mal so aus Quark zusammen gebastelt, wofür die ne halbe Ewigkeit brauchen und das schon Version 1 nennen. Nja.. egal
      Selber basteln macht zudem mehr Spaß und wir haben die "Macht" :)

      Nja das mit den Sounds wird schwierig Stefan. Dazu müsste man den Bot über das Clientprotokoll schieben. Bisher hab ich aber nur angedacht alle Funktionen über den ServerQuery laufen zu lassen, was auch schon ziemlich mächtig ist.


      Tobi... ähm... nein .... oder warte warte... lass mich überlegen.... mhhh.... nein *D*

      Noch jemand irgendwelche Wünsche, außer einer zufallsgesteuerten Stefan-Kick-Funktion? :)

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      "Änderungen"? Ich rede hier von einem Programm welches als Dienst läuft und mit dem TeamSpeak3-Server über dessen ServerQuery-Port kommuniziert. Das ist eine normale Schnittstelle für andere Programme.
      Demzufolge ist es völlig egal ob der Server im Betastatus ist, oder nicht. Beta bedeutet nur, dass es evtl noch bekannte Bugs gibt, oder davon ausgegangen wird, dass manche Programmteile noch nicht einwandfrei funktionieren. Es heißt nicht, dass entsprechende Funktionalität grundlegend verändert wird.

      Mal davon abgesehen habe ich die "Macht" über die Datenbank. Wenn einer hier was aufsetzen müsste, dann ich. Und selbst wenn es so wäre, drücke ich einen Knopf mit der Beschriftung "Wiederherstellen". Aber das wird nicht passieren, da ich über eine offizielle und völlig normale und vorallem unterstützte Schnittstelle zugreife..

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      So.. wieder bissel was dran gemacht.

      - Away-Funktion fertig
      - Idle-Funktion fertig (auch wenn wir die schon im TS2 nie benutzt haben)
      - Autokick bei Aufnahme fertig (trotz Testaufnahme keinen "IsRecording"-Status erhalten ... Bug? Nachtrag: Vll lags auch daran, dass keiner im Raum war und die Aufnahmedatei auch leer war. Müsste also mal getestet werden)

      Rest kommt in den nächsten Tagen auch noch. Und wenn ich noch das Logging etwas einschränken kann, sodass unser kleiner Dienst nicht die Logdateien zumüllt, aktivier ich das Ganze mal auf unserm Server :)

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      Original von d03n3rfr1tz3
      "Änderungen"? Ich rede hier von einem Programm welches als Dienst läuft und mit dem TeamSpeak3-Server über dessen ServerQuery-Port kommuniziert. Das ist eine normale Schnittstelle für andere Programme.
      Demzufolge ist es völlig egal ob der Server im Betastatus ist, oder nicht. Beta bedeutet nur, dass es evtl noch bekannte Bugs gibt, oder davon ausgegangen wird, dass manche Programmteile noch nicht einwandfrei funktionieren. Es heißt nicht, dass entsprechende Funktionalität grundlegend verändert wird.

      Mal davon abgesehen habe ich die "Macht" über die Datenbank. Wenn einer hier was aufsetzen müsste, dann ich. Und selbst wenn es so wäre, drücke ich einen Knopf mit der Beschriftung "Wiederherstellen". Aber das wird nicht passieren, da ich über eine offizielle und völlig normale und vorallem unterstützte Schnittstelle zugreife..



      Okok hätte ja auch sein können das sowas aufwendig direkt in die Query eingebaut werden muss aber wenns über ne schnittstelle funktioniert isses klar das es imens weniger aufwendig ist ^^
      Mhh.. bring ich selbst mal einen Vorschlag ein.

      Also.. was haltet ihr von einem Sticky-Channel? Das ist ein Channel, aus dem ein User nicht mehr heraus kann, wenn er dort rein geschoben wird. Sozusagen ein Exil ^^
      Gibts ja im PerlMod auch, haben wir aber bisher nie eingesetzt.

      Ach und Stefan... deinen Namensfilter inklusive und bastel ich dann heute Abend noch. Morgen werd ich dann wohl auch mal die erste Version zum Testen aktivieren ^^

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      Ich finde die Idee mit dem "Ab auf die stille Treppe!"- Channel gar nicht so schlecht. Das Gefängnis für alle Unartigen :)
      Also nehmt euch in Acht, bevor ihr noch auf die stille Treppe müsst
      Wie sieht es jedoch mit Reconnects aus? Bleibt der "inhaftierte" Client immer noch in seiner schweigsamen Ecke, oder kann er dann wieder freudig sein Unwesen treiben?

      Falls mir weitere - noch nicht geplante - Funktionen einfallen, hau' ich dich heut' Abend mal an.
      Und mir kam gerade mit Fabi zusammen noch eine Idee. Wir haben mal ein wenig probiert anderen die Nicknamen zu klauen. Es ist absolut kein Problem den Nickname von irgendwem anzunehmen. Zwar hat man die entsprechenden Rechte nicht, aber trotzdem find ich das nich sehr sinnvoll.

      Daher bastel ich mal einen Nickname-Schutz mit ein, der Leute kickt, wenn sie "geschützte" Nicknamen verwenden. Geschützt sind Nicknamen, die zuletzt von entsprechenden "registrierten" Mitgliedern verwendet wurden. Der Schutz wird auch bei verfälschter Groß- und Kleinschreibung greifen.

      Nachtrag: Und beim Programmieren (es ist nun 2:53 Uhr ^^) kam mir noch die Idee den Namensfilter auf Channel auszuweiten. Bei Verstoß wird der Channel zurück benannt und derjenige bekommt einen Eintrag in der Beschwerdeliste.

      Übrigens bekommt man auch bei Nick-Verstößen einen Eintrag auf der Beschwerdeliste. Nur Recording wird bisher mit einem einfachen Kick "belohnt". Wobei man dafür evtl die "Stille Treppe" in Verbindung mit der Beschwerdeliste nutzen könnte, anstatt denjenigen gleich raus zu kicken.

      Na.. was meint ihr so? Los.. ich will Feedback... sonst muss ich es aus euch heraus klopfen :)

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      das mit dem namenschutz klingt sinnvoll,
      ABER! wenn jemand der registriert ist sein pw vergisst kann er nicht einfach sich mit dem selben nick nochmal anmelden so dass ihn jeder erkennt, sondern muss sich a) einen neuen nick suchen oder b) einen admin kontaktieren...

      die "Stille Treppe"-idee find ich super als bestrafung für .... da der name mir gefällt bin ich übrigens dafür dass der channel dann auch so heißt, allerdings: was passiert wenn 2 Leute gleichzeitig auf die Stille Treppe geschickt werden? (ich weiß das es unwahrscheinlich ist) sind die beiden dann in einem channel? dann wär die treppe mit pech ja gar nicht mehr still... oder gibt's für jeden seine eigene Treppe?
      [x]<-hier bohren für neuen Monitor!
      Original von keks[DBL]
      das mit dem namenschutz klingt sinnvoll,
      ABER! wenn jemand der registriert ist sein pw vergisst kann er nicht einfach sich mit dem selben nick nochmal anmelden so dass ihn jeder erkennt, sondern muss sich a) einen neuen nick suchen oder b) einen admin kontaktieren...
      [...]


      Ab Version 3 des TeamSpeak Clients gibt es keine Nutzer-Passwörter mehr :)
      Wie Fabi schon sagte.. es gibt keine Passwörter mehr ^^

      Mal davon abgesehen wird nur auf exakt den gleichen Nickname geprüft, da der Schutz nicht zum Unterbinden von Ähnlichkeiten dient. Somit könnte man, wenn man seinen PC neu macht und vergessen hat die TS3-Identität zu exportieren (also zu sichern) einfach einen Nickname wählen, der zumindest ähnlich ist. Grundsätzlich erkennt man die Leute ja sowieso an der Stimme, oder kann sie in GW "verifizieren". Somit seh ich da eigentlich kein Problem.

      Am besten ich erklär den Schutz nochmal Kurz:
      Wenn ich als "Dirk @ God Of Saxony" (mit SA Rechten) nicht da bin und ein anderer (sagen wir mal, ein böser Bub') diesen Nickname nimmt und auf den Server kommt, könnte ein unachtsamer Admin denjenigen für mich halten und ihm die fehlenden Adminrechte zurück geben. Was der böse Bube dann tun kann, weiß ja jeder selbst.
      Ich hab mit Fabian sogar noch mehr getestet. Ich war wie immer als "Dirk @ God Of Saxony" drin. Fabian kam als "Dirk @ God of Saxony" (Unterschied: Das "O" von "Of" ist klein). Es wurde keine "1" angehangen. Wir konnten also problemlos beide mit gleichem Nick auf dem Server sein. Ich finde, das sollte so nicht sein.


      Zur "Stillen Treppe":
      Ja die zwei sind im gleichen Raum. Optimalerweise werde ich diesen Raum aber anpassen, sodass dort keiner reden kann. Das ist mit TS3-Rechten ja ganz einfach möglich. Der Bot passt dann nur auf, dass derjenige auch in diesem Raum bleibt. Wobei ich vorher mal schaue, ob selbst das schon mit TS3-Rechten geht. Ich muss nur aufpassen, dass derjenige auch von irgendwem wieder rausgeholt werden kann^^
      Richtig sinnvoll ist das ja erst, wenn man beim Reconnect wieder dort drin landet :)

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      Original von d03n3rfr1tz3
      Zur "Stillen Treppe":
      Ja die zwei sind im gleichen Raum. Optimalerweise werde ich diesen Raum aber anpassen, sodass dort keiner reden kann. Das ist mit TS3-Rechten ja ganz einfach möglich. Der Bot passt dann nur auf, dass derjenige auch in diesem Raum bleibt. Wobei ich vorher mal schaue, ob selbst das schon mit TS3-Rechten geht. Ich muss nur aufpassen, dass derjenige auch von irgendwem wieder rausgeholt werden kann^^
      Richtig sinnvoll ist das ja erst, wenn man beim Reconnect wieder dort drin landet :)



      das is rel einfach:

      was du sicher wissen wirst: bei ts 3 gibt es "have power -wert-" und "needed power -wert-"

      vielleicht hilfreich: für einen sticky channel musst du die needed power in dem channel so hoch schrauben, dass zb nur SSA (stefan und du) oder SA dort moven können sprich du setzt die needed power ÜBER den wert der Guests und Ops aber unter den wert von SA und SSA

      wenn unschlüssig kann ichs ja evntl nochmal versuchen dir sprachtechnisch zu erklären

      lg
      Flo

      €: wie es funzt das derjenige dann wieder dort landet weiß ich spontan jetzt net würde mich dabei an nen bekannten wenden der bei dem Projekt "TS3" mitschreibt oder mal eben googeln das aber nicht mehr heute sondern evntl morgen wenn du noch keine lösung hast ;)

      €²: hab eben noch was gelesen: zum "bösen Bub" aufgrund der "Eindeutigen Identifikations Nummer" kann derjenige sich mit deinem Namen zumindest Server technisch schonmal keine rechte erschleichen...allerdings stimmt es natürlich das ein unachtsamer admin ihm SA geben könnte...für diesen fall gibt es aber wiederum Token und Datenbank (und nach release der final version auch wieder ein webinterface für den SSA) um es ihm wieder wegzunehmen und evtnle verunstaltungen relativ einfach wieder rückgängig zu machen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SoundofShadow“ ()

      Die needed Power zum betreten würde denjenigen ja nur daran behindern, den Raum zu betreten. Das wäre, wie du schon festgestellt hast, nicht der Sinn ^^
      Was die Rechte für die Stille Treppe angeht.... die sind bereits soweit vergeben. Betreten kann ihn bisher jeder (zum Testen), aber reden kann dort keiner... außer der Super-Serveradmin selbst. Der Bot kümmert sich dann darum, dass derjenige (auch bei Reconnect) für max 1h dort drin hängt. Er kommt nur wieder heraus, wenn er rausgezogen wird.... oder die eine Stunde rum ist. Programmiertechnisch ist das fast fertig... es müssten nur die registrierten Notifications bei mir ankommen. Aber das bekomm ich schon noch hin^^

      Das is mir schon klar, dass er keine Rechte bekommt. Klar kann ich seinen Schaden wieder rückgängig machen. Das geht sogar noch viel einfacher... ich schmeiss einfach ein Backup der DB rein. Die wird jede Nacht gesichert.
      Aber ich will sowas gleich von vornherein abblocken. Selbst wenn sich nur jemand den Spaß erlauben will, mit dem Nick eines bekannten Member herum zu rennen (wie die Nick-Faker im IRC). Es wird einfach abgeblockt vom Bot und gut.
      Und Leute die mehrere PCs haben, können sich ihren Ident ja exportieren. Hat auch gleich den Vorteil, dass entsprechende Rechte für denjenigen nicht doppelt gepflegt werden müssen.

      Also keine Sorge.. ich hab den TS3 schon verstanden^^
      Ab Montag kümmer ich mich dann mal um die Notifications. Bis dahin bin ich nämlich im Urlaub. Also bis denne :)

      Gwenau! Morgahn jin Zhedes kosstengünstiger als vergorene Melonnis hayda.
      Kahmu mal aufhörn zu norguln. Du gehst mir aufn Vekker!

      d03n3r.de | Facebook | Twitter | Killproof.me | Steam | Twitch | YouTube
      Original von d03n3rfr1tz3
      Die needed Power zum betreten würde denjenigen ja nur daran behindern, den Raum zu betreten. Das wäre, wie du schon festgestellt hast, nicht der Sinn ^^

      ich weiß dass ich eig. nichts über ts3 weiß und schon gar nichts übers programmieren aber für mich klingt dass ganze so dass man einfach diese "Power" des 'bösen bub' einfach so niedrig machen könnte dass er keinen anderen channel betreten kann...
      der bot müsste also dem 'bösen bub' die Rechte sich zu bewegen nehmen und dann den 'bösen bub' immer wenn er innerhalb dieser 1 stunde online kommt in den channel "Stille Treppe" schieben (ob sowas geht weiß ich nicht...)
      Aufjedenfall müsste man aber dann dafür sorgen, dass der 'böse bub' nicht einfach off geht und als 'böser bub2' wieder kommt, ich vermute sowas lässt sich über ip-addresse regeln, man muss es bloß bedenken...
      [x]<-hier bohren für neuen Monitor!
      Original von d03n3rfr1tz3
      Also keine Sorge.. ich hab den TS3 schon verstanden^^
      Ab Montag kümmer ich mich dann mal um die Notifications. Bis dahin bin ich nämlich im Urlaub. Also bis denne :)


      daran habe ich niemals gezweifelt ^^

      soweit ich weiß gibt es aber auch die möglichkeit die needed power auf das gesammte move einzustellen....sprich du setzt die needed power für move power so hoch wie im vorigen post von mir angegeben....in meinem kopf geht das weiß nur nicht ob das zu realisieren ist ^^