Code Monkey home page Code Monkey logo

levelbot's People

Contributors

dependabot[bot] avatar kaktushose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

levelbot's Issues

[FEATURE] Tägliche Belohnungen

Es wird eine tägliche Belohnung für User eingeführt.

  • Reaktion mit 🎁 in #levelsystem zum Einlösen, analog zum Kaufen, siehe #32
  • Direkte Erfolgsnachricht, wird nach 30 Sekunden gelöscht
  • Alle 24h kann eine Belohnung eingefordert werden
  • Wird eine Belohnung nicht innerhalb von 24h eingefordert, beginnt der Zyklus von vorne
  • Ab dem 8. Tag beginnt der Zyklus von vorne

Erfolgsnachricht

Text:
@user
Herzlichen Glückwunsch, (User!)
Du hast Deine tägliche Belohnung in Höhe von (Typ und Anzahl der Belohnung + Icon) erfolgreich abgeholt.
Schau gerne morgen wieder vorbei.

Statistics not updating

java.lang.IllegalArgumentException: Description cannot be longer than 2048 characters.
        at net.dv8tion.jda.internal.utils.Checks.check(Checks.java:62)
        at net.dv8tion.jda.api.EmbedBuilder.appendDescription(EmbedBuilder.java:327)
        at net.dv8tion.jda.api.EmbedBuilder.setDescription(EmbedBuilder.java:303)
        at com.github.kaktushose.jda.commands.entities.EmbedDTO.toEmbedBuilder(EmbedDTO.java:193)
        at de.kaktushose.levelbot.bot.Levelbot.lambda$updateStatistics$17(Levelbot.java:386)
        at net.dv8tion.jda.internal.requests.restaction.operator.FlatMapRestAction.supply(FlatMapRestAction.java:44)
        at net.dv8tion.jda.internal.requests.restaction.operator.FlatMapRestAction.lambda$queue$0(FlatMapRestAction.java:54)
        at net.dv8tion.jda.api.requests.Request.lambda$onSuccess$0(Request.java:95)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Due to this error, embed text is too long for some reason

[FEATURE] Statistiken

In #willkommen soll es zusätzlich ein Embed geben, welches folgende Statistiken anzeigt:

Discord API

  • Mitglieder auf dem Server
  • Mitglieder online
  • Mitglieder in Spielen
    • LS 19
    • ETS 2
    • Notruf 112
    • OMSI 2
    • Winter Resort Simulator
    • GTA V
  • Nitro Booster
  • PREMIUM

Externe API's

  • Youtube Abonnenten
  • Youtube Mitglieder
  • Twitch Follower

Embed Template (durch den Carl-Bot generiert):

{
    "color":178188,
    "type":"rich",
    "description":"Hier haben wir f\u00fcr Dich einige spannende Statistiken rund um den Discord-Server, den YouTube- und den Twitch-Kanal zusammengestellt.\n\n__**Stats zum Server:**__\n\n**Mitglieder auf dem Server:**\nxxxxx\n\n**Mitglieder online:**\nxxxxx\n\n**Mitglieder in Spielen:**\n:tractor: LS 19: xxxxx\n:truck: ETS 2: xxxxx\n:fire: Notruf 112: xxxxx\n:bus: OMSI 2: xxxxx\n:mountain_cableway: Winter Resort Simulator: xxxxx\n:gun: GTA V: xxxxx\n\n**Nitro-Booster:**\nDerzeit insgesamt xxxxxxx <@&596780997727617045>, die uns mit xxxxxx Boosts unterst\u00fctzen.\n\nxxxxxx (Usernamen)\nxxxxxx\nxxxxxx\n\n**PREMIUM:**\nDerzeit ingesamt xxxxxx <@&386302591883018242>- Mitglieder.\n\nxxxxxx (Usernamen)\nxxxxxx\nxxxxxx\n\n__**Stats zu den Kan\u00e4len:**__\n\n**Abonnenten auf YouTube:** \nxxxxxx\n\n**Kanalmitglieder auf YouTube:**\nxxxxxx\n\n**Follower auf Twitch**:\nxxxxxx",
    "title":"Ein paar Zahlen"
}

Error

java.util.NoSuchElementException: No value present
at java.base/java.util.Optional.orElseThrow(Optional.java:377)
at de.kaktushose.levelbot.shop.data.ShopService.getTransaction(ShopService.java:106)
at de.kaktushose.levelbot.shop.data.ShopService.addItem(ShopService.java:72)
at de.kaktushose.levelbot.shop.data.ShopService.addItem(ShopService.java:64)
at de.kaktushose.levelbot.database.services.BoosterService.lambda$updateBoosterStatus$1(BoosterService.java:57)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at de.kaktushose.levelbot.database.services.BoosterService.lambda$updateBoosterStatus$3(BoosterService.java:44)
at net.dv8tion.jda.internal.utils.concurrent.task.GatewayTask.lambda$onSuccess$3(GatewayTask.java:79)
at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
at java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2182)
at net.dv8tion.jda.internal.utils.concurrent.task.GatewayTask.onSuccess(GatewayTask.java:76)
at de.kaktushose.levelbot.database.services.BoosterService.updateBoosterStatus(BoosterService.java:42)
at de.kaktushose.levelbot.bot.Levelbot.lambda$start$0(Levelbot.java:166)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

[FEATURE] Neues Shopsystem

Das alte Shopsystem ist aufwendig und fehleranfällig. Daher soll es durch ein neues, Reaction basiertes System ersetzt werden.

  • In #levelsystem wird auf die letzte Nachricht im Channel mit allen Item Emojis durch den Bot reagiert
  • Durch das Hinzufügen einer Reaktion wird die Transaktion gestartet. Die User Reaktion wird wieder entfernt
  • Ist die Transaktion nicht möglich (kein Geld, bereits in Besitz, User gemutet) wird eine Fehlermeldung gesendet
  • Ansonsten wird eine Bestätigungsnachricht gesendet
  • Bestätigt der User den Kauf, wird eine Erfolgsnachricht gesendet
  • Ansonsten werden alle Botnachrichten gelöscht
  • Botnachrichten werden nach 30 Sekunden automatisch gelöscht

Text Kaufbestätigung

@user
Überschrift: Bestätige Deinen Kauf! 🎁
Text: Bist du sicher, dass Du (Itemname+Item-Icon) für (Preis) Münzen 💰 erwerben möchtest? Klicke auf den ✅ ,um den Kauf zu bestätigen.
Reaktion: ✅ (Bestätigung) und 🚫 (Ablehnung)

Text Erfolgreicher Kauf

@user
Überschrift: Vielen Dank, (User)!
Das Item wurde Deinem Konto erfolgreich gutgeschrieben.
Dein neuer Kontostand beträgt (Betrag) Münzen 💰

[FEATURE] Event Commands

Das Aktivieren und Deaktivieren von Events erzeugt regelmäßig einen hohen administrativen Aufwand. Daher soll dies in Zukunft auch über Command möglich sein. Neue Events und deren Unterkategorien müssen weiterhin manuell eingepflegt werden, die bereits bekannten Events werden allerdings implementiert.

Balance Events

  • XP-Booster x2
  • Münzen-Rush x2
  • Diamanten-Regen x2 (20% Chance statt 10%)
  • Cooldown -67% (5 statt 15 Minuten)
  • Command: event balance <start|stop> <id>
  • Auflistung der jeweiligen Eventunterkategorien über den Command event balance list

Contest Event

  • mit angegebenen Emoji auf alle Nachrichten in einem Channel reagieren
  • Alle Reactions in dem Channel zählen
  • Bei Beendigung des Events Gewinner verkünden
  • Command: event contest start <textchannel> <emoji> event contest stop

Sammel Events

  • Zusätzliche Währung die gesammelt werden kann
  • Als Belohnung gibt es eine Eventrolle, diese wird automatisch durch den Bot erstellt (Eventname + Jahr)
  • Zweite Belohnung ist ein Item aus dem Levelshop
  • Command: event collect <start|stop> <id>
  • Auflistung der jeweiligen Eventunterkategorien über den Command event collect list

[FEATURE] Embeds in #willkommen

Die Embeds in #willkommen sollen in Zukunft über den Levelbot gesendet werden.

  • Speichern der Embeds in einer welcomeEmbeds.json Datei
  • Name des Embeds ist die Message id
  • Command um diese zu zu senden: reloadembeds

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.