Git Product home page Git Product logo

mitternacht-new's People

Contributors

appelemac avatar arahaan avatar blitz4694 avatar cadon0 avatar cuken avatar delicious-flatbread avatar dogeops97 avatar dragonoverlord avatar expeehaa avatar fearnlj01 avatar gitbranch avatar hecodes2much avatar hubcapp avatar martintops avatar micmorris avatar midnight-myth avatar ndk-dscrd avatar nitix avatar poag avatar reiuiji avatar ritsu avatar rjt-rockx avatar rob5251 avatar samdivaio avatar seregy avatar shikhir-arora avatar taknok avatar taweko avatar tg44 avatar theoddball avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

mitternacht-new's Issues

Birthday Money

Give a configurable amount of money to a user when it‘s his/her birthday.

Fix permissions for bot-owner-only commands that should be executable by server admins.

Ich wusste nicht so recht wo ich Feedback Hinterlassen sollte, deswegen mach ich das jetzt hier.

Ich benutze den Bot auf mehreren Servern und er leiset mir Gute Dienste,
wurde von anderen auch schon gefragt ob diese ihn auch Benutzen können (da ihnen die Möglichkeit fehlt ihn selbst zu Betreiben wollten sie das ich ihnen einen Einladungs Link Schicke), ich hatte es abgelehnt (auch aus dem Grund weil ich nicht weis wie das mit dem Bereitstellen ist) da ich ihre ID dann in die Config Eintragen müsste damit sie die Bot Owner Only Commands nutzen könnten.
Leider hätten sie dann auch zu meinen Servern vollen Zugang, was alles andere als Optimal wäre.

Mit ist allerdings die Idee gekommen das man das Problem löst indem die Person die den Bot auf einen Server einläd Automatisch der Owner (zumindest dieses Betreffenden Servers) ist.
(Die IDs die in der Config als Owner eingetragen werden haben vollen zugriff auf alle Server zu welchen der Bot eingeladen wurde)
Um allerdings die Rechte des Bots weitergeben zu können ohne ihn neu Einzuladen würde ich des weiteren einen weiteren Command festlegen (als BSP .transferownership @user kurz .to @user)

Diese können dann Natürlich ebenfalls sich auf der Seite Anmelden um Einstellungen am Bot für ihre Server Vorzunehmen
(Die Bot Config müsste dann Pro User Funktionieren)

Das wären meine Aktuellen Vorschläge die ich zur Verbesserung des Bots hätte

Erweiterter Sprachen Support

Man kann mit dem Command .langset die Sprache des Bots auswählen in der dieser Antwortet.

Es ist leider aktuell nur so das er Teilweise in Deutsch Teilweise in Englisch Antwortet (grade wenn es um die .h erklärungen geht)

grafik
grafik

Des weiten würde ich mir auch in diesem Punkt eine Überarbeitung wünschen, Beispielsweise unter benutzung der Neuen Discord Dropdown Funktion, die so aussehen könnte:
grafik

Add command to set the bot account’s "About me" section.

Ob die Umsetung Technisch möglich ist weis ich nicht, da bin ich überfragt.

Jedoch schlage ich es trotzdem vor, wenn man den Bot in einem Größerem Team hat ist es Anstrengend das der Owner der Application die Einträge wie das About Me im Portal jedes mal ändern muss.
Viel einfacher wäre hier die Einführung ein paar neuer Commands:

  1. .setaboutme Damit kannst du das About me vom Bot Verändern
  2. .setname Damit kannst du die Name vom Bot Ändern
  3. .setavatar Damit kannst du den Avatar des Bots Updaten, dazu zwei Optionen:
  • Datei hochladen
  • Link des Bildes Angeben

Die umsetzung würde auf jeden Fall die Administration des Bots deutlich erleichtern.

Implement localized strings.

Localized strings provided by translations through Crowdin should be used in the Bot.
Examine whether we can safely remove original files.

commandstrings.json should get splitted up into the command/alias definition and localized descriptions/usages.

Make default permissions modular.

Aufgrund aktuellen Anlasses habe ich den Vorschlag die Benötigten Permissions bei Sämmtlichen Commands zu Entfernen. (Bot Owner Commads ausgeschlossen)
Welche Personen oder Rollen die Commands ausführen können kann man im Perm System Setzen.

Wenn man dann noch Lust hat kann man das gesammte Perm System auf den Kopf stellen, in dem man auch die Bot Perms von allen Commands entfernt

In dem Zuge würde ich es dann auch ermöglichen das man im Perm System Setzen kann ob Commands die Bot Perm benötigen, in dem man "Bot-Owner" Angeben kann, so haben dann nur noch die Nutzer die Rechte die Commands auszuführen die in der Datei als Owner eingetragen sind.

Dazu würde ich dann auch Vorschlagen das bei jedem Command angezeigt wird welche Perms man benötigt.
Das kann man dann auch mit dem Neuen Command .showrequiredperms true / false ein bzw Abschalten.

Ein Beispiel dafür wäre:

Bildschirmfoto 2022-03-25 um 20 09 13

showrequiredperms = true

Bildschirmfoto 2022-03-25 um 20 13 18

showrequiredperms = false

Unable to Install / Launch the Bot the First Time

Nach einiger Zeit kam es dazu das der Bot sich nicht mehr Starten Lies bzw Abgestürzt ist (mit ihm leider auch der Host Computer), ich hab Versucht das Problem zu Lösen, leider hab ich auch keinen Error bekommen und somit auch keinen Hinweis was das Problem sein könnte.

Die einzige Option war so nur noch den Bot erneut zu Installieren, als ich Versucht habe ihn das erste mal mit docker-compose up zu Starten, hat dies nicht Funktioniert da eine Gewalltige Anzahl von Fehlermeldungen aufgetreten ist
(Der gesammte Fehler ist im Log zu Finden)
Mitternacht Installer Log.txt

Leider hat mein Wissen nicht ausgereicht um den Problemen selbst beizukommen da ich was Bots angeht nocht ganz am Anfang stehe.

Grüße Cromatin

Improve LevelService

Channels with on MessageXPBlacklist should not receive level changed messages, message strings should not be hardcoded.
Rename LevelChangedArgs.ChangeTypes to ChangeType and put it in a seperate file.

Fehler beim ersten Start mit docker-compose up

Wenn man sich den Bot Installiert, und der Anleitung folgt kommt man an den Schritt das man den Bot das erste mal mit docker-compose up Starten soll.
Wenn man das jedoch macht kommt man an den Punkt das sich dieser Prozess aufhängt und die ganze Zeit Versucht sich die Daten zu Pullen, allerdings in einen Timeout Läuft

Hier wären die Logs seit dem Startup:

Creating network "nico_default" with the default driver
Creating volume "nico_db-data" with default driver
Creating volume "nico_mitternacht-data" with default driver
Building mitternacht
Sending build context to Docker daemon  21.96MB
Step 1/13 : FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
 ---> ba2c122d3534
Step 2/13 : WORKDIR /source
 ---> Using cache
 ---> b3aa4f273c81
Step 3/13 : COPY . .
 ---> 619769a3f26c
Step 4/13 : WORKDIR /source/MitternachtWeb
 ---> Running in d34fccfbc5f2
Removing intermediate container d34fccfbc5f2
 ---> a012f2ec848c
Step 5/13 : RUN dotnet publish -c Release -o /build
 ---> Running in 09842fb97a27
Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  Failed to download package 'Google.Apis.YouTube.v3.1.55.0.2449' from 'https://api.nuget.org/v3-flatcontainer/google.apis.youtube.v3/1.55.0.2449/google.apis.youtube.v3.1.55.0.2449.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/google.apis.youtube.v3/1.55.0.2449/google.apis.youtube.v3.1.55.0.2449.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'GraphQL.Client.Abstractions.Websocket.3.2.4' from 'https://api.nuget.org/v3-flatcontainer/graphql.client.abstractions.websocket/3.2.4/graphql.client.abstractions.websocket.3.2.4.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/graphql.client.abstractions.websocket/3.2.4/graphql.client.abstractions.websocket.3.2.4.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'SixLabors.ImageSharp.2.0.0' from 'https://api.nuget.org/v3-flatcontainer/sixlabors.imagesharp/2.0.0/sixlabors.imagesharp.2.0.0.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/sixlabors.imagesharp/2.0.0/sixlabors.imagesharp.2.0.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'Discord.Net.Interactions.3.3.0' from 'https://www.myget.org/F/discord-net/api/v3/flatcontainer/discord.net.interactions/3.3.0/discord.net.interactions.3.3.0.nupkg'.
  The download of 'https://www.myget.org/F/discord-net/api/v3/flatcontainer/discord.net.interactions/3.3.0/discord.net.interactions.3.3.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'Discord.Net.Rest.3.3.0' from 'https://www.myget.org/F/discord-net/api/v3/flatcontainer/discord.net.rest/3.3.0/discord.net.rest.3.3.0.nupkg'.
  The download of 'https://www.myget.org/F/discord-net/api/v3/flatcontainer/discord.net.rest/3.3.0/discord.net.rest.3.3.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'NLog.4.7.13' from 'https://api.nuget.org/v3-flatcontainer/nlog/4.7.13/nlog.4.7.13.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/nlog/4.7.13/nlog.4.7.13.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
^CGracefully stopping... (press Ctrl+C again to force)

Ich habe das dann abgebrochen da es endlos so weiter gehen würde, auch nach Minuten

"Connection reset by peer" error at Startup

Wenn der Bot zum ersten mal gestartet wird und Vorhandenes Wiederherstellen möchte läuft er in diesen Fehler:

 Determining projects to restore...
  Failed to download package 'Google.Apis.Auth.1.41.1' from 'https://api.nuget.org/v3-flatcontainer/google.apis.auth/1.41.1/google.apis.auth.1.41.1.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.Reflection.Primitives.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.AppContext.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.appcontext/4.3.0/system.appcontext.4.3.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.Security.Cryptography.X509Certificates.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.cryptography.x509certificates/4.3.0/system.security.cryptography.x509certificates.4.3.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'CloudflareSolverRe.1.0.6' from 'https://api.nuget.org/v3-flatcontainer/cloudflaresolverre/1.0.6/cloudflaresolverre.1.0.6.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'Google.Apis.1.41.1' from 'https://api.nuget.org/v3-flatcontainer/google.apis/1.41.1/google.apis.1.41.1.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.Collections.Concurrent.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.collections.concurrent/4.3.0/system.collections.concurrent.4.3.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'Microsoft.Extensions.PlatformAbstractions.1.1.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.extensions.platformabstractions/1.1.0/microsoft.extensions.platformabstractions.1.1.0.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.extensions.platformabstractions/1.1.0/microsoft.extensions.platformabstractions.1.1.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package '2CaptchaAPI.1.4.0' from 'https://api.nuget.org/v3-flatcontainer/2captchaapi/1.4.0/2captchaapi.1.4.0.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/2captchaapi/1.4.0/2captchaapi.1.4.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'Newtonsoft.Json.13.0.1' from 'https://api.nuget.org/v3-flatcontainer/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Failed to download package 'System.Xml.XPath.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.xml.xpath/4.3.0/system.xml.xpath.4.3.0.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/system.xml.xpath/4.3.0/system.xml.xpath.4.3.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.abstractions/index.json'.
  An error occurred while sending the request.
    Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.Security.Cryptography.X509Certificates.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.cryptography.x509certificates/4.3.0/system.security.cryptography.x509certificates.4.3.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'Google.Apis.YouTube.v3.1.55.0.2449' from 'https://api.nuget.org/v3-flatcontainer/google.apis.youtube.v3/1.55.0.2449/google.apis.youtube.v3.1.55.0.2449.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer
  Failed to download package 'System.Collections.Immutable.6.0.0' from 'https://api.nuget.org/v3-flatcontainer/system.collections.immutable/6.0.0/system.collections.immutable.6.0.0.nupkg'.
  Unable to read data from the transport connection: Connection reset by peer.
    Connection reset by peer```

Support Discord threads.

In einem Früheren Discord Update wurde ja die Thread Funktion hinzugefügt, wenn es ins Thema Moderation und Verwaltung von Threads geht bietet der Bot hier keine Möglichkeit, es ist nicht einmal Möglich in Threads die Bot Befehle auszuführen

Daher hier Grobe Ideen und Ansätze:

  1. Automatisches Hinzufügen des Bots zu Threads
    Mit .autoaddtothread true / false kurz .aatt true / false
    Lässt es sich Einstellen ob der Bot Automatisch Neu Erstellten Threads Beitritt
    (Durch das einfache Eintippen des Commands lässt sich einsehen ob die Funktion aktiviert oder Deaktiviert ist)

  2. Commands in Threads
    Mit .enablecommandsinthreads true / false kurz .ecit true/false
    Lässt es sich einstellen ob der Bot Befehle in Threads Ausführt
    (Durch das einfache Eintippen des Commands lässt sich einsehen ob die Funktion aktiviert oder Deaktiviert ist)

  3. Automatisches Hinzufügen von Moderatoren in Threads
    Mit .autoaddmodstothrad true / false kurz .aamtt
    Lässt es sich einstellen ob Personen mit Moderativen Rechten Automatisch zu Threads Hinzugefügt werden
    (Durch das einfache Eintippen des Commands lässt sich einsehen ob die Funktion aktiviert oder Deaktiviert ist)

  4. XP in Threads
    Mit .enablelevelinthreads true / false kurz .elit
    Lässt es sich einstellen ob man durch das Schreiben von Nachrichten in einem Thread XPs Bekommt
    (Durch das einfache Eintippen des Commands lässt sich einsehen ob die Funktion aktiviert oder Deaktiviert ist)

Beispiele für das Aussehen des Help Commands
Bildschirmfoto 2022-01-09 um 18 57 21

Add a giveaway system.

Eine weitere Funktion die ich beim Bot Vermisse ist die Giveaway Funktion.
Diese ist schon bei anderen externen Bots gang und gebe doch es wäre schön ebenfalls das Integriert zu haben, auch mit Anpassungsmöglichkeiten.

Als erstes zum Command welcher dazu kommen würde:
.startgiveaway <Titel> <Dauer> <Preis> <Anzahl der Gewinner> <Beschreibung>
dabei ein paar Infos die Dauer hat den gleichen Aufbau wie beim .remind Command

Die Beschreibung enthällt ein paar Worte die man Personalisieren kann
grafik
So könnte die Fertige Nachricht dann aussehen, hier gibt es ein paar weitere Einstellungsmöglichkeiten.

.requiedlevel <Level> Hier kann man ein Level Angeben das Benötigt wird um an dem Giveaway Teilzunehmen

.requedcurrency <Currency> Hier kann man Angeben wie viel Vermögen Benötigt wird um am Giveaway Teilzunehmen, dabei wird bei der Teilnahme kein Geld vom Nutzer Abgezogen

.privatecallback true/false Hier kannst du einstellen ob die Nutzer die am Giveaway Teilnehmen eine Nachricht per PM zugeschickt bekommen.

.reaction <Emoji> Damit kann man das Emoji Festlegen mit dem der Bot auf die Giveaway Nachricht Reagiert

.anonymousgiveaway true/false damit kann man einstellen ob die Reaktion nachdem sie übernommen wurden wieder gelöscht werden sollen um ein Giveaway-Geheimniss zu wahren

Diese könnten dann so aussehen:
Wenn man Erfolgreich am Giveaway Teilgenommen hat:
grafik

Wenn man erfolgreich Teilgenommen hat und die Vorraussetzungen Erfüllt (sofern Angegeben):
grafik

Wenn die Teilnahme Fehlschlägt könnte das ganze so aussehen:
grafik
oder
grafik
Alternativ wenn man nur eine Angegebene Vorraussetzung nicht erfüllt, oder beide (dazu hab ich allerdings auf das Bildmaterial Verzichtet, ich denke das Prinzip kann man sich Vorstellen)

Damit man das ganze noch Verbessern und Personifizieren kann, sollte man auch Commands einführen um die Nachrichten von oben Anpassen zu können.

.giveawaystructure <Message> Damit kann man die Nachricht bearbeiten, welche in dem Kanal erscheint in dem man den Command ausgeführt hat um ein Giveaway zu erstellen (Text und Embed Support)

.successfuljoined <Message> Damit kann man die Nachricht bearbeiten welche man bekommt wenn man einem Giveaway Erfolgreich Beigetreten ist, sie unterstützt Normale Textnachrichten oder json Embed Code.

.errorwhilejoiningone <Message> Damit kann man die Nachricht anpassen, welche man bekommt wenn man nur eine Voraussetzung nicht erfüllt, auch sie unterstützt Textnachrichten und Embeds

.errorwhilejoiningtwo <Message> Damit kann man die Nachricht anpassen, welche man bekommt wenn man beide Voraussetzungen nicht erfüllt.
Natürlich Unterstützen auch der Vollständigkeit Text und Embeds

Damit man das ganze auch Personifizieren kann müsste man Variablen hinzufügen.

%Server% Dadurch kann man in die Nachricht einbauen auf welchem Server das Giveaway Stattfindet
%Title% Dadurch kann man in die Nachricht den Titel einbauen welcher weiter oben Angegeben wurde
%Discription% Das Gleiche wie beim Titel auch hier mit der Beschreibung
%Remainingtime% Damit kann man die Verbleibende Zeit Einbauen
%Numberofwinners% Das ist die Anzahl der Gewinner die man Festgelegt hat
%Price% Das ist der Angegebene Preis
%levelrequiement% Das ist das Vorrausgesetzte Level
%currencyrequiement% Das ist das Vorrausgesetze Vermögen

Nun zum Teil wenn das Giveaway Endet.

Als erstes dazu ein Config Command:
.giveawayendingmessage true/false Damit kann man einstellen ob alle Nutzer die am Giveaway Teilgenommen haben eine Nachricht bekommen, ob sie Gewonnen oder Verloren haben.

.giveawayendingmessagewinnersonly true/false Wenn man auf einem Server mit sehr vielen Nutzern ist, kann es sein das man in den Rate Limiter von Discord läuft und es dauert bis alle ihre Nachrichten haben, daher kann man mit diesem Command einstellen ob nur der / die Gewinner eine Nachricht erhalten sollen

Dazu hier auch ein paar Beispiel Bilder
grafik
grafik

Dazu auch eine Variable:

%numberofparticipants% Damit kann man sich die Gesammt Anzahl der Teilnehmer Anzeigen lassen

Nach SEHR viel Text, hab ich nun alles zu Issue Gebracht was ich mir zu dem Giveaway Command wünschen würde, die Umsätzung wurde auch hier wieder eine Menge Erleichtern, jedoch ist mir auch Bewusst das es eine Menge Arbeit ist

Add command to set customizable roles upon reacting to a message.

Viele anderen Bots haben ja die Funktion wenn man auf eine Nachricht Reagiert das man eine Bestimmte Rolle zugewiesen bekommen, das habe ich so in dieser Form Ebenfalls noch nicht beim Bot gesehnen, auch hier ein Vorschlag wie man das umsetzen könnte.

Der Command könnte .reactionrole Nachrichten_ID Reaktion @role Lauten kurz .rr Nachrichten_ID Reaktion @role Lauten

Das würde es einem ermöglichen den Bot noch weiter in den Server einzubinden ohne Externe Bots zu Benutzen

Add a ticket system.

Hier mal ein sehr Großer Vorschlag, der so Vermutlich auch etwas aufweniger in der Umsetzung ist als manch andere Vorschläge.
Der Grund für diesen wie für viele andere Vorschläge ist, das der Bot den Vorteil hat den andere Bots nicht haben.
Er ist Open Source, und damit Kostenlos, viele andere Bots sind das leider nicht und man muss für ihre Features Bezahlen so auch bei manchen Ticket System Bots was Schade ist.

Nun zum Eigentlich Vorschlag:
Als erstes Müsste man mehrere neue Commands einführen, welche unter die Kategorie Administration fallen würden.

.createtickets #Kanal Dieser Command erstellt ein Embed im Angegebenen Text Kanal
grafik
Das könnte ein Beispiel für die Nachricht sein

.setdiskription<Nachricht> Damit kannst du die Nachricht im Angegebenen Ticket Kanal Anpassen, Texte und Embeds sind zulässig. Für diesen Command muss man sich in einem Ticket Kanal befinden
grafik
Das wäre ein Beispiel für eine Reine Text Nachricht

grafik
Man kann es sich schon denken, aber so würde das ganze als Embed Aussehen

grafik
Mit ein Bissen Trixerei, gibt es das ganze dann auch mit Button, der Vollständigkeit halber

.setkategory #Kategorie Dieser Command kann man nur in dem Betreffenden Kanal ausführen, mit ihm ist es möglich zu Bestimmen in welcher Kategorie neue Tickets erstellt werden sollen, Standart Mäßig ist die Kategorie ausgewählt in der sich der Kanal des Tickets befindet.
Wenn man kein Argument eingibt wird einem der Aktuelle Kanal angezeigt

.setwelcomemessage (Dieser Command müsste man noch umbenennen da es sonst zur Verwechslung mit der Willkommensnachricht gibt die beim Beitritt eines Users auf den Server abgeschickt wird)
Mit diesem Command kann man sich anzeigen lassen welche Nachricht man bekommt, wenn man ein Ticket Eröffnet, auch hier kann man einen Text oder den Json Code eines Embeds angeben.
Auch hier gibt es eine Standard Nachricht welche dem User das Ticket und seine Funktion erklärt.
grafik
Diese könnte so aussehen, natürlich kann man das ganze auch mit Buttons lösen
Und es sollte auch darauf geachtet werden das man Variablen wie %user%, %ticketname%, %ticketid% und %creationdate% Verwenden kann um das Ticket zu Personifizieren.

.setticketmod @Role/User Das ist Vermutlich der wichtigste Command, durch in kann man einzelne User oder Rollen Moderationsberechtigungen geben, diese können dann Nachrichten Verwalten (also Löschen), oder auch das Ticket Schließen.

Nun zu den Funktionen die man Vermutlich schon von anderen Ticket Systemen kennt, wenn man ein Ticket Schließt möchte man vielleicht das es nicht direkt Gelöscht wird um ggf. später darauf zurückzugreifen.
Es kann aber auch sein das man einfach nur den User Entfernen möchte, die Möglichkeiten sind Schier Endlos.
.removeuserafterclose true/false Damit kann man einstellen ob der User nachdem er das Ticket Geschlossen hat entfernt wird, also die Berechtigungen entzogen bekommt das Ticket zu sehen

.removemodsafterclose true/false Damit kann man einstellen ob die Mods die man mit .setticketmod @Role/User Festgelegt hat das Ticket noch sehen dürfen nachdem es ein User Geschlossen hat.

.removepermsformodsafterclose true/false Umständlich Formuliert, heißt aber einfach nur das wenn der User auf Close drückt die Mods die Nachrichten zwar noch sehen können (nicht wie bei dem .removemodsafterclose Command, wo sie den Kanal nicht mehr sehen) allerdings nicht mehr die Rechte haben um sie Beispielsweise zu Löschen, damit kann man Verhindern das das Ticket Verfälscht wird.

.savetransskriptafterclose #Kanal true/false damit kann man einstellen, ob ein Transskript in form eines html Dokuments in den Angegebenen Kanal geschickt werden soll oder nicht, das kann man dann Archivieren um es Vorzeigen zu können.

.moveticketafterclosed true/false #Kategorie damit kann man Festlegen ob das Ticket in einen anderen Kanal Verschoben werden soll, Beispielsweise wenn man eine Kategorie mit Aktiven Support Tickets hat und Bereits Bearbeiteten

Wenn man kein (true/false) Argument eingibt, bekommt man einfach angezeigt ob die Funktion aktuell Aktiviert oder Deaktiviert ist, und ggf in welchen Kanal ein Transskript gesichert wird oder das Ticket Verschoben wird

Nach vielen vielen Wörten und vielen Bildern, sowie fast 2 Stunden gedanken, ist nun alles zu Papier äh ich meine Issue gebracht was es zu dem Thema zu sagen gibt, damit lässt sich wenn man es umsätzt einziges Anfangen (Abgesehen davon das man an eine Ticket Nachricht zwei Buttons anhängen kann für Verschiedene Anliegen ... aber das würde einfach den Ramen und die Komplexität Sprängen)

docker-compose.yml Versions Fehler

Wenn man den Bot Installiert also per Github Pullt und das erste mal mit docker-compose up Starten möchte bekommt man einen Fehler das die Datei docker-compose.yml die Falsche Version enthällt.

Man kann natürlich diese Datei im Editor aufrufen und die Version mauell abändern, jedoch ist das Komplikativ und man muss es bei jeder neu Installation machen.

Es wäre daher von Großem Vorteil wenn man diese Datei im Source Code Anpasst, das würde eine Mänge erleichern

GommeHD.net team member update log

Be able to log team member updates of the GommeHD.net server to a channel.
The message should contain a customizable prefix.
It should be possible to choose the team ranks getting logged.
Every setting should be guild dependent.

Add leaderboard for time spent in voice channels.

Eine Funktion die man einführen könnte (ähnlich wie bei dem Geld) eine Verbesserte Bestenliste.
So könnte man dort auch in einem Platzierungssystem anzeigen lassen wer am Meisten / wenigsten Zeit in Kanälen Verbracht hat.

Hier das Beispiel mit dem Leaderbord, wie es aussehen könnte:
grafik

Fix setting the bot status on shutdown.

Wenn man den Bot aktuell Startet ist er auf Discord einfach online, wenn man ihn Herunterfährt kann es bis zu 5 Minuten dauern damit er als offline angezeigt wird.

Meine Idee wäre das wenn man den Bot Startet er in den Idle Modus Versetzt wird, und im Status "Starting ..." Stehen hat, wenn er Online ist wird "Sucessfully Startet" Angezeigt, der Status wechselt zu online und der Bot, cleart seinen Status sodass der Status angezeigt werden kann den man Hinterlegt hat.

Beim Herunterfahren geht das ganze Andersrum, wenn man ihn Stoppt wechselt er in den dnd Status und im Status wird "Shutting down ..." Angezeigt, kurz bevor der Bot komplett heruntergefahren ist wechselt der Status zu Offline.

Diese beiden Statuse sollten nach möglichkeit Konfigurierbar sein, entweder per Lokaler Config, oder per Command das würde eine Höhere Personalisierung bewirken.

Rewrite time command.

The time command should show the bot time as default if no args provided.
It should also know UTC+XX, GMT, EST, and other time zone short names.

Be able to ban users that are not on the server.

Ich bin es nochmal, mir fällt in der Zeit vieles ein dazu hier auch nochmal die Frage, ist euch das zu viel?

Der eigentliche Vorschlag:
Da ich den Bot auf meinen eigenen Servern Verwende und es dort immer weiter Umstelle stoße ich auch auf das ein oder andere Problem, und zwar wenn man Personen Bannen möchte diese Aber schon den Server Verlassen haben geht das leider nicht, man muss also erst warten bis diese den Server wieder Betreten haben was etwas Umständlich ist.

Mein Vorschlag wäre hier das man es entweder über den Discord Tag (Name#1234) machen kann oder auch über die ID eines Nutzers

Implement an exception logging service.

Exceptions in bot commands, the web application, ... should be catched and sent to a self-hosted exception logging service to be able to examine them later.

.setrolemoney doesn't work

When setting the daily money for a specific role on the instance "Keksbot" by e.g. .setrolemoney @Administrator 30 1, the following error message appears:

Command execution failed, please contact the bot author.

Thus, collecting daily money is not possible.

Be able to restrict message XP in categories and receive XP in voice channels.

Nachdem ich auf meinem Server das Level System Überarbeitet hatte ist mir ein Problem aufgefallen,
zwar kann man es Einstellen das es in bestimmten Kanälen keine Level gibt, allerdings geht das nicht für Kategorien.

Wenn man als Beispiel ein Ticket System hat werden auch die Nachrichten davon im Level Berücksichtigt, das kann Vor als auch Nachteile Bringen.

Konkret sollte es daher möglich sein mit .togglekategoriellevels #Kategorie true / false kurz .tkl #Kategorie true / false Einzustellen ob Kanäle die einer bestimmten Kategorie zugewisen sind in der Level berechnung Berücksichtigt werden.
Wenn man nur .tkl #Kategorie eingibt, ohne das dritte Argument, kann man sich Anzeigen lassen ob die Nachrichten in der Kategorie zugewiesenen Kanälen berücksichtigen werden oder nicht.

Ist zwar ein kleiner Vorschlag der Allerdings den Bot im Level System nochmal wesendlich Verstärken würde.

Support Discords timeouts.

Vor Kurzem wurde die Discord Timeout Funktion eingeführt, die die Bisherige Methode der Mute Funktion ersetzt.
Daher mein Vorschlag auch hier etwas am Bot zu Verändern:

Einerseits sollte das in dem Server Log Channel geloggt werden der das Aufzeichnungsereigniss UserUpdated Event hat.
So wird es in einem Kanal Festgehalten, und geht nicht im Audit Log Unter.

Auch habe ich den Vorschlag das man durch Ausführung des Befehles .mute über den Bot Getimeouted wird.

a) Man bekommt als Indikator das man im Timeout ist die Mute rolle (als Überblick für einen selbst und für andere User)
b) Es wird nicht mehr gekennzeichnet und das Mute Rolle Feature entfällt komplett

So oder so ähnlich könnte die Timeout Nachricht im Log aussehen
Bildschirmfoto 2022-01-09 um 19 38 21

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.