Ts Query bot Subchannel erstellen und moven!

  • Hey,

    ich programmiere gerade einen bot für Ts3 (QueryBot) und da möchte ich wenn man in den Support joint dass man einen Subchannel erstellt bekommt und auch hinein gemovt wird das erstellen klappt aber ich werde nicht rein gemovt (weiß nicht wie ich es machen soll) und wenn ich aus dem channel gehe wird er nicht gelöscht sondern erst wenn ich den bot aus mache.

    Wenn jemand eine idee hat wie es geht oder was mein Fehler ist wäre ich sehr dankbar über Hilfe.

    Code:

    MFG

    Elias177

    (P.S. Wer Rechtschreibfehler findet darf sie behalten xD)

  • Elias177

    Hat den Titel des Themas von „Ts Query bot Subchannel erstellen und mögen!“ zu „Ts Query bot Subchannel erstellen und moven!“ geändert.
  • Hallo Elias177 ,

    ich kann dir leider keinen Code geben, der dir hilft, da ich mich dafür zu wenig mit dieser Programmiersprache auskenne, aber soweit ich den Code verstanden habe, passiert aktuell nur folgendes:

    1. Du fragst Infos vom Client ab
    2. Du sendest eine private Nachricht an alle Benutzer einer bestimmten Gruppe (z.B. Support-Gruppe)
    3. Du definierst, wie der neue Support-Subchannel aussehen soll (=> options)
    4. Du erstellst den entsprechenden Channel
    5. Du sendest dem in Punkt 1 abgefragten Client eine private Nachricht, dass der Support benachrichtigt wurde

    Dir fehlt demnach der Code, der den Client in den neu erstellten Subchannel verschiebt (moved). Wenn du auch nicht weist, wie man den entsprechenden Code in der Sprache hinkriegt, google es einfach in dieser oder einer ähnlichen Form: teamspeak move client <programmier sprache> (Beispiel: teamspeak move client java)


    Deine Zeilen könnten z.B. so aussehen:

    Code
    1. Channel channel = Main.api.createChannel(c.getNickname(), options);
    2. Main.api.moveClient(clientId, channel.getId());

    Wenn du den entsprechenden move-Befehl zwischen Schritt 4 und 5 einbaust, sollte das dein erstes Problem lösen. :)


    Da du dem Channel gesagt hast, dass er temporär sein soll, betritt ihn der Bot automatisch. Dadurch bleibt er solange offen, bis auch der Bot aus dem Channel verschwindet. Und das ist de Fall, wenn du den Bot ausschaltest. Du solltest dementsprechend dem Bot auf irgendeine Art und Weise nach dem Verschieben des Clients in den Channel sagen, dass er sich neu verbinden soll, um somit wieder in der Eingangshalle zu sein oder du nutzt wieder einen move-Befehl, um ihn von dem temporär erstellten Channel wo anders hin zu schieben.

  • Genauso, wie du den Client verschiebst. Statt den Client, musst du den Query verschieben.


    Es gibt sicherlich eine Funktion, die dir deine eigene clientId - also die des Querys - zurück gibt.


    Ich habe hierzu das via Google gefunden:

    Code
    1. final int clientId = Main.api.whoAmI().getId();

    Quelle: https://www.programcreek.com/j…ywaffle.teamspeak3.TS3Api

  • Elias177 Da du deinen Bot vermutlich mit der Api schreibst, returned dir das "api.createChannel" die Id. Bei fragen wie du es genau schreibst, melde dich einfach bei mir, um dir ein Beispiel geben.

    Sebbo Wenn er einen Teamporären Channel haben will, ist das Verschieben der Query nicht nötig, da sie automatisch in den Channel verschoben wird. Wenn du aber möchtest, dass der Bot aus dem channel leavt, kannst du über eine Schleife abfragen, wo sich Clients dieser Gruppe befinden und ihn dann in einen vordefinierten Channel moven.