Hallo Leute
,
ich habe einen kleinen aber feinen !command-driven Discord Bot in Googles Programmiersprache Go geschrieben. Es ist ein reines Freizeit Projekt, wird aber ständig mit neuer Funktionalität ergänzt.
Zielgruppe sind kleinere Teams, die sich komplett über Discord organisieren. Es gibt momentan die Möglichkeit Trainingszeiten anzuzeigen oder zu setzen (unterstützt Discord Markdowns), Spieler Statistiken aufrufen und speichern/aktualisieren (So lässt sich Beispielsweise winrate/sr vor und nach dem Training vergleichen (öffentliches Profil nötig!)). Der Bot ist noch ein Baby und gerade mal 2 Wochen alt. Das bedeutet der Umfang ist stark begrenzt und ich Poste hier hauptsächlich um weitere Ideen für Team Management features aus der Community zu saugen. Weitere Infos gibts hier:
GitHub Source _GitHub - LukasMarckmiller/OverwatchDiscordBot: Websocket based discord bot in GO with Overwatch stats API integration
Da ich keine Links posten kann bitte den Unterstrich vor https entfernen
Fragen beantworte ich selbstverständlich gerne hier im Forum, in Github,per EMail an:
marckmil@hm.edu
oder im offiziellen Support Discord: _Discord
12 Likes
Ich glaub wenn ich den auf meinem Disc setze ist der innerhalb von 1h im Eimer.
Versuchen kannst du es gerne. Kaputt machen kannst du eigentlich nichts. Im schlimmsten Fall stürzt er ab und der Fallback Mechanismus versucht ihn wieder zu starten, dann beginnt das Spiel von vorne. Wer länger von euch durchhält 1 … 2 … 3… los!
Kann man den Präfix ändern?
Ich habe bereits 6Bots
Der Präfix lässt sich momentan leider nicht ändern. Für den individuellen Nutzen ist das durchaus sinnvoll allerdings ist es sehr verwirrend sollte man mehr als einen Präfix oder Unterschiedliche zulassen. Bei Discord Bots hat sich das ‘!’ Zeichen durchgesetzt. In Zukunft kannst du den Bot auf einen Text Channel “binden”, so dass er nur auf Commands in diesem reagiert, dies ist eine weit genutzte Lösung um mehrere Bots in seinem Discord unterzubringen (Praktisch einen eigenen Channel für jeden Bot). Diese Funktion steht weit oben auf meiner Liste. Der Vorteil ist die Bots reagieren nicht alle auf die gleichen Commands und man muss sich nicht X-verschiedene Präfixe merken
Coole Idee, gefällt mir dieser Bot. Schon mal danke fürs Bereitstellen 
Wie muss ich mir dieses Statistikfunktion vorstellen? Speichert die ab dem ersten hinzufügen eines Spielers kontinuierlich seine Stats oder immer nur Tag für Tag?
1 Like
Hallo danke dir erstmal,
Ich gebe zu die Funktion ist momentan noch nicht gut dokumentiert. Es funktioniert folgendermaßen.
Sobald du einen Spieler mit !Register registrierst wird dieser intern gespeichert und von diesem Zeitpunkt an seine Statistiken automatisch täglich aktualisiert. Das !Stats Kommando liefert die Differenz zwischen aktuellen und gespeicherten Statistiken.
Ein Beispiel:
Die Statistiken für jeden registrierten Spieler werden um 6 Uhr morgens CET aktualisiert. Du spielst von 16Uhr - 18 Uhr 10 Matches und rufst dann !Stats auf. Dann wird er die aktuellen Statistiken abfragen welche diese 10 Matches beinhaltet und zieht die gespeicherten Statistiken von morgens 6 Uhr ab. Übrig bleibt die Differenz aller Daten sprich der Verlauf über diese 10 matches.
Ein manuelles aktualisieren funktioniert über !Update. So kannst du vor dem Training einmal !Update aufrufen und nach dem Training liefert !Stats dann die Daten von vor dem Training bis nach dem Training, so lässt sich sehen wie viel sr man gewonnen oder verloren hat, wie viel Matches etc. Momentan wird nur ein Ausschnitt angezeigt aber es sind alle Daten gespeichert (Medaillen, KD, Healing per 10 mins, DMG per 10 mins …) Ich werde da noch eine schönere Anzeige bauen die mehr Inhalt liefert
Konkret zu deiner Frage.
Er speichert nur die Statistiken von einem Tag welche am nächsten dann überschrieben werden, also es ist kein Verkauf über mehrere Tage oder Wochen möglich.
Für die Zukunft ist aber ein automatisches chart/Diagramm geplant welches mit dem !Stats Command gesendet wird, dies zeigt dann den sr Verlauf über mehrere Tage/Wochen.
Heyo kurzfe Frage,
in wie weit ist der Bot auch für Konsolen Teams nutzbar? 
Hey, für Konsolen Teams Momentan noch nicht da die Statistiken rein für pc Spieler angefragt werden. Ist aber nur ein settings welches ich für einstellbar machen will. In spätestens 1 Woche sollte es implementiert sein.
Bzgl. Präfix: wir haben auch nen gamespezifischen bot und da kannst du den Präfix Frei wählen. Ich kann dich gerne mal auf meinen disc einladen dann kannst du dich evtl. Mit dem anderen Entwickler austauschen wenn Bedarf besteht.
Hallo,
der Präfix ist generell immer frei wählbar, aber er muss global für alle Server einheitlich sein. Das heißt wenn ich für euren Server den Präfix von ! auf z.B. $ setzte gilt das für alle Server die den Bot nutzen. Sollte der Bedarf bei mehreren Nutzern auf unterschiedlichen Servern bestehen kann ich ihn natürlich global für alle anpassen.
Eben nicht. Der Präfix kann auf jedem Server frei wählbar gemacht werden.
Wie gesagt ich kann dir gerne einen Kontakt zum Austausch herstellen. Er Programmier allerdings in Phyton. Ist nicht böse gemeint. Ich kann einen bot gar nicht programmieren. Obwohl ich es gerne würde.
Klingt super, dann hats du schon einen weiteren Server auf der Liste 
1 Like
Hallo,
ich habe den Websocket Layer selbst geschrieben und dieser Unterscheidet nicht zwischen Servern sondern Lauscht auf den gesamten ankommenden Traffic. Hier müsste ich jetzt prüfen welcher Präfix für welchen Server eingestellt ist, dies ist aber aus rein technischer Sicht nicht sinvoll
ich kann gern auf deinen Server und es dir noch ausführlicher erklären falls noch was nicht klar sein sollte.
Jetzt habe ich doch ausversehen mit meinem anderen Account geantwortet, falls es zu Verwirrung gekommen sein sollte.
Alles gut. Mein proggiemeister meinte das es evtl. Auch an der go API liegen könnte.
Wie man es implementiert… Keine Ahnung ich weiss nur das es geht zumindest bei 4 von 5 bots ohne das man es global geändert hat. Aber wie gesagt fall es dir helfen könnte:Discord
Ich glaube er hats mit ner Datenbank gelöst. Ich kann mir vorstellen das mehrere Discords irgendwann dieses Problem haben werden.
Hallo Ich habe es bereits heute Implementiert du kannst mit !Config die Region und Platform festlegen für Xbox
!Config platform=xbl
oder PlayStation
!Config platform=psn
und für pc
!Config platform=pc region=eu (anstatt eu, us oder asia)
Dein bot nimmt meine falschen Statistiken…
Hallo, der Bot holt sich die Competitiven Stats von _https://ow-api.com/. Da es keine offizielle API von Blizzard gibt basieren diese APIs auf Web Scraping. Dabei wird der Inhalt von der Offiziellen Seite „playoverwatch.com“ abgegriffen. Ich habe leider keinen Einfluss auf die Daten. Es kommt öfter vor, dass man Overwatch schließen und neu starten muss, damit die neusten Statistiken angezeigt werden.
Ich hoffe das beantwortet deine Frage. Wenn nicht. Welche Daten werden dir inwiefern falsch angezeigt?
EDIT: Ich habe gerade nachgeschaut, du hast diese Season ein Competitives Game gespielt und dies zeigt der Bot auch an. Wenn du Statistiken eines PlayStation oder XBox Accounts abfragen willst musst du mit !Config dies voreinstellen
EDIT2: Es steht nun ein offizieller Discord Server zur Verfügung um die Kommunikation zu erleichtern. (Bugs, Feature Requests, News, FAQ …)
_https://discord.gg/x6RJhg
Kurzes Update:
Custom Prefixe sind jetzt möglich. Der Standard Präfix ! Kann z.B. zu & mit
!Config prefix=& geändert werden.
Neues Feature Ready poll. Dabei kann ein Channel weiter Ready Check erstellt werden. Dem kann zugestimmt oder abgelehnt (mit Begründung) werden. Haben alle zugestimmt wird der Initiator mit dem Status des Poll getaggt.