ts3admin.class | Bot

  • Guten Tag, ich wollte mal fragen wie man mit ts3admin.class.php eine Verbindung aufrecht erhalten kann (auch nach Textnachrichten).
    Ich habe schon gesehen das es folgende Funktion gibt:


    Code
    readChatMessage( $type = 'textchannel', $keepalive = false, $cid = -1 );


    Nur mein Problem ist, dass wenn jemand etwas in den Chat schreibt er sofort disconnected. Wie kann ich das verhindern?
    Er soll nur etwas z.B. zurückschreiben und auf neue Eingaben warten.
    Vielen Dank!

  • Mittels PHP ein Bot zu entwickeln wird sich schwer gestalten. In deinem speziellen Fall bleibt die nur eine Möglichkeit. Du musst eine Infinity Loop generieren, wo auf alle Anfragen reagiert werden kann. Ob das Ressourcenarm ist, lässt sich drüber streiten. Ebenfalls ist es nicht möglich, festzustellen ob das Script abgestürzt ist oder nicht.


    Code
    while(true) { // Mein PHP Quelltext für den Bot };


    Bevor du die Infinity Loop erstellst, solltest du eine Verbindung mit dem Teamspeakserver hergestellt haben und eventuelle Events registriert haben.


    Allgemein würde ich die aber eine empfehlen, eine Programmiersprache mit einer Laufzeitumgebung zu verwenden.


    Mit freundlichen Grüßen
    Lukas

    Teamspeak Webinterface for everyone and for FREE --> first-coder.de/ for more Informations

  • Soweit ich weiß, reicht es auch einfach aus, das Script per SSH im Screen zu starten, dann läuft das durchgehend, glaube ich.

    Quote

    screen -dmS NAME php SCRIPT.php

  • Auch wenn man etwas in einem Screen startet, läuft es nur bis zu seinem eigenen Ende. Wenn also das "Script" aus irgendeinem Grund sich beendet, dann ist es auch in einem Screen aus.
    Ein Screen dient nur der Tatsache, dass sich das Script ansonsten beenden würde, wenn die Terminal-Session geschlossen wird.


    Ansonsten kann ich nur beipflichten, für Probleme solcher Art eine compiler-basierte Programmiersprache zu verwenden.