Zurück zur Startseite

Ein Blick unter die Haube

Bevor du einen Bot auf deinen Server lässt, willst du vermutlich wissen, was er dort eigentlich tut. Diese Seite erklärt genau das. Ganz oben steht, was dich als Server-Owner betrifft, weiter unten der technische Unterbau für alle, die es genauer wissen wollen.

Berechtigungen

Welche Rechte der Bot bekommt

Beim Einladen fragt Discord nach genau sechs Berechtigungen. Administrator ist bewusst nicht dabei, und das ist kein Detail. Mit Admin-Rechten könnte der Bot in Kanäle posten, in die er eigentlich nicht darf. Ohne sie kann er es in so einem Fall gar nicht erst versuchen.

Kanäle ansehenErkennen, wo er überhaupt antworten darf
Nachrichten sendenAntworten auf Befehle, Namens-Log-Einträge
Links einbettenDie Profilkarten sind Discord-Einbettungen
Dateien anhängenDas Ingame-Bild an der Profilkarte
Verlauf lesenNötig, um im Kanal korrekt zu antworten
In Threads sendenDamit /share auch in Threads geht

Was damit nicht geht

×
Mitglieder verwaltenKein Kicken, Bannen, Rollen vergeben oder Umbenennen
×
Nachrichten löschenAuch die eigenen nicht, abgesehen von seinen kurzlebigen Dialogen
×
Server-Einstellungen ändernKeine Kanäle anlegen, keine Rechte umbiegen
×
Mitlesen im AlltagEr reagiert auf seine Slash-Befehle, nicht auf normale Chatnachrichten

Wer die Befehle zum Einrichten benutzen darf, entscheidet Discord anhand deiner Server-Rollen: /setup und die übrigen Einstellungsbefehle verlangen das Recht „Server verwalten". Befehle wie /reset oder /queue kann ausschließlich der Betreiber des Bots ausführen, kein Server-Owner.

Für Server-Owner

Wer die UUIDs deiner Mitglieder sehen kann

Das ist die wichtigste Entscheidung, die du für deinen Server triffst. Eine Spieler-UUID ist kein Passwort, sie taugt aber dazu, jemanden über verschiedene Server hinweg wiederzuerkennen. Deshalb kannst du festlegen, wie viel Fremde davon zu sehen bekommen.

Wichtig zu wissen: Ohne deine Einstellung gilt die offene Stufe. Wenn dir das zu weit geht, ändere sie gleich nach dem Einladen mit /setup.

Jedes Mitglied des Servers sieht die vollständige UUID. Bequem, aber die UUID lässt sich damit auch außerhalb deines Servers wiederfinden.

Unabhängig von der Stufe

Die eigene UUID sieht jeder immer vollständig. Und wer sich per /privacy ausblendet, taucht in keiner Liste auf.

Das sieht ein anderes Mitglied

Ehrlich gesagt

Wo der Bot an Grenzen stößt

Der Store bietet keine offizielle Schnittstelle an. Der Claimer steuert deshalb einen echten Browser und klickt sich durch wie ein Mensch. Das läuft zuverlässig, hat aber Eigenheiten, die du vorher kennen solltest.

  • Ändert der Store sein Aussehen, muss nachgezogen werdenWird eine Schaltfläche umbenannt oder verschoben, kann der Ablauf ins Leere laufen, bis der Code angepasst ist. Fehler landen im Log, und der Betreiber bekommt eine Nachricht.
  • Nur die kostenlosen GeschenkeDer Bot rührt ausschließlich Karten an, die nichts kosten: das tägliche Geschenk und, solange es eines gibt, das der laufenden Season. Kaufen, Codes einlösen oder andere Aktionen im Store macht er nicht.
  • Automatisierung bleibt eine GrauzoneActivision bietet für so etwas keine Schnittstelle an und äußert sich auch nicht dazu. Ein Restrisiko lässt sich deshalb nicht seriös ausschließen. Wer es nicht eingehen möchte, holt sein Geschenk weiterhin von Hand ab.
  • Registrierungen sind gedrosseltJede Prüfung ist ein echter Store-Besuch. Deshalb laufen höchstens zwei gleichzeitig, und über alle Nutzer zusammen sind es maximal 40 in 10 Minuten. Bei Andrang bekommst du eine kurze Rückmeldung und kannst es wenig später erneut versuchen.

Schritt für Schritt

Was passiert, wenn jemand /register tippt

Zwischen dem Absenden und der fertigen Profilkarte liegen vier Stationen. Klick dich durch, um zu sehen, was in jeder davon geprüft wird.

Sieht das überhaupt nach einer UUID aus?

Zuerst schaut der Bot nur auf die Zeichen. Eine Spieler-UUID besteht aus 15 bis 20 Ziffern, sonst nichts. Wer sich vertippt, bekommt sofort Bescheid.

Diese Prüfung kostet nichts und braucht keinen Browser. Sie sortiert Tippfehler aus, bevor irgendetwas Aufwendiges beginnt.

ohne Netzwerk Antwort in Millisekunden

Der Aufbau

Warum es zwei Programme sind statt einem

Der Discord-Bot und der Teil, der die Geschenke abholt, sind zwei getrennt laufende Programme. Sie reden nie direkt miteinander. Stattdessen legen sie sich Dateien hin, die jeweils der andere liest.

Der Grund liegt in den Laufzeiten. Ein Discord-Befehl muss binnen Sekunden beantwortet sein, ein Store-Besuch dauert deutlich länger. Steckten beide im selben Programm, würde jeder Abholvorgang den Chat blockieren.

Discord deine Mitglieder Discord-Bot antwortet sofort immer online Bot schreibt registrations.json commands.json Claimer schreibt profiles.json claim_events.json Claimer steuert den Browser holt die Geschenke COD:M Store Befehle schreibt liest schreibt liest ruft auf Bot und Claimer sprechen nie direkt miteinander
Jede Datei hat genau ein Programm, das sie beschreiben darf. Der Bot fasst zum Beispiel nie den Abhol-Verlauf an, und der Claimer nie die Registrierungen. Dadurch können sich die beiden nicht gegenseitig ins Gehege kommen, selbst wenn sie gleichzeitig arbeiten.

Betreiber-Befehle nehmen den Umweg über einen Briefkasten

Wenn der Bot-Betreiber /claim all auslöst, kann der Bot das nicht selbst ausführen, denn den Abhol-Verlauf darf nur der Claimer anfassen. Also legt der Bot den Auftrag in commands.json ab, fortlaufend nummeriert. Der Claimer merkt sich, welche Nummer er zuletzt erledigt hat, und arbeitet nur ab, was neuer ist.

Deshalb antwortet der Bot bei solchen Befehlen ehrlich mit „eingereiht" statt mit „erledigt". Nichts geht verloren, aber es passiert eben erst beim nächsten Durchlauf.

DateiWer schreibtWas drinsteht
registrations.jsonBotWelche UUID zu welchem Discord-Konto gehört, dazu der persönliche Listen-Opt-out und der Benachrichtigungswunsch
profiles.jsonClaimerZuletzt gesehener Name, Level und Rang, dazu die Historie der Namenswechsel
state.jsonClaimerWann ein Account zuletzt abgeholt wurde und wann er wieder dran ist
commands.jsonBotDer Briefkasten für Betreiber-Befehle, nur angehängt, nie gelöscht
server_settings.jsonBotPro Server: Kanäle, Sichtbarkeitsstufe, verifizierte Rolle, erteilte Freigaben

Der Zeitplan

Was jede Nacht passiert

Der Store setzt die Geschenke für alle gleichzeitig zurück, nämlich um Mitternacht UTC. Zwei Minuten später wird der Claimer wach und arbeitet die registrierten Accounts nacheinander ab. Zwischen zwei Accounts liegen ein paar Sekunden Pause, damit nicht alles auf einen Schlag beim Store aufschlägt.

Bei jedem Account schaut er nach beiden Geschenken. Das tägliche kommt jede Nacht wieder, das Season-Geschenk gibt es nur einmal pro Event. Ob es schon eingesammelt ist, muss er sich nicht merken: eingelöste Karten sind im Store als solche markiert, und darauf schaut er vor jedem Klick. Solange die Markierung da ist, rührt er die Karte nicht an.

Danach legt sich der Claimer wieder hin. Der Discord-Bot dagegen bleibt die ganze Zeit online, denn Befehle können jederzeit hereinkommen.

Läuft etwas schief, etwa weil der Store gerade nicht erreichbar ist, wartet der Claimer eine Weile und versucht es erneut. Der geplante Zeitpunkt bleibt in so einem Fall unangetastet, weil ein geschätzter Termin schlimmer wäre als gar keiner.

Noch Fragen offen? Die Befehlsübersicht auf der Startseite zeigt, was Mitglieder und Admins jeweils tun können.

🎁 Bot einladen