IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

System NullReferenceException (bot Discord)


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut System NullReferenceException (bot Discord)
    Bonjour,

    ci-dessous un bou de code permettant d'assigner les roles pour chaque utilisateur clique sur le bouton correspondant a sa classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var inter = ctx.Client.GetInteractivity();
     
                var result = await inter.WaitForReactionAsync(
                    x => x.Message == joinmsg && x.User == ctx.User && (x.Emoji == tank || x.Emoji == heal)).ConfigureAwait(false);
     
                if (result.Result.Emoji == tank)
                {
                    var TankR = ctx.Guild.GetRole(1041428679978401913);
                    await ctx.Member.GrantRoleAsync(TankR).ConfigureAwait(false);
                }else if (result.Result.Emoji == heal)
                {
                    var HealR = ctx.Guild.GetRole(1043891142560862291);
                    await ctx.Member.GrantRoleAsync(HealR).ConfigureAwait(false);
                }
    le problème est qu'à chaque fois que je clique sur un bouton j'ai le message d'erreur ci-dessous
    Nom : error.PNG
Affichages : 556
Taille : 43,5 Ko

    j'avoue que je suis perdu.

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonsoir,

    Alors je ne suis pas familier avec DSharpPlus (plutôt avec Discord.net), mais je vais essayer quand même.

    Peux-tu dire quelle est la variable qui est nulle ? Je partirais du principe que c'est Guild vu que si c'était ctx ça n'arriverait pas jusque là. Et j'imagine aussi que GetRole() renvoie null au lieu d'une exception, mais autant être sûr.

    Du coup, s'agit-il d'un contexte de Guilde ? L'ID du rôle est-il le bon ? Je pense que oui mais vaut mieux en être sûr.

    Mise à part ces quelques maigres pistes, je ne vois pas ce que pourrait être le problème.

  3. #3
    Membre éclairé Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Bonjour,

    L'ID du Rôle est bonne. ce pendant Guild es vide, du coup la variable tankR est vide, je ne suis pas très familier avec l'outil du compilateur mais voilà ce que j'ai
    Nom : error bot2.png
Affichages : 505
Taille : 13,4 Ko

    pour plus de détail

    Nom : error bot.png
Affichages : 519
Taille : 236,5 Ko

    j'ai même tester avec la ligne de code ci-dessous, sa renvoie la même erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var TankR = ctx.Guild.EveryoneRole;

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Du coup, pour avoir eu le même problème en mettant à jour mon propre bot, regarde du côté des options de ton Application liée au Bot, sur le site de l'API Discord.

    Il y a eu des mise à jour niveau droits (les intents) et il faut préciser si le bot a le droit ou non d'aller chercher certaines informations. Il ne s'agit que de cases à cocher sur leur site et de droits à préciser dans le bot (si jamais ce n'est pas le cas) et ça devrait marcher normalement.

  5. #5
    Membre éclairé Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Bonsoir et merci de ton aide,

    pour les case à cocher voilà ce que j'ai
    Nom : error bot 3.png
Affichages : 517
Taille : 80,8 Ko

    quand je coche les case Guilds,guilds.join et Guilds.members.read
    il me demande de saisir redirect URL. Suite a une petite recherche j'ai trouvé qu'il saisir cette adresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://discordapp.com/oauth2/authorize?&client_id=[CLIENTID]&scope=bot
    et remplacer ID CLIENT par mon ID voir la source ici

    et quand je tente d'ajouter le bot dans le serveur cela me dit que ID client n'est pas une valeur snowflake, le bot est bien ajouter dans le serveur mais quand je teste la commande je me retrouve toujours dans le même problème.

  6. #6
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Il te suffit de cocher les cases suivantes uniquement



    Et si ça ne marche toujours pas, il faut mettre ceci dans la création de DiscordConfiguration, qui comme son nom l'indique, te sert de config pour le bot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var config = new DiscordConfiguration()
    {
        Intents = DiscordIntents.All
    };
    Voilà, si c'était pour le coup ça qui te posait ton problème, n'hésite pas a mettre des intents plus spécifiques.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete avec la valeur NULL
    Par Hinkel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/11/2008, 16h39
  2. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52
  3. Selectionner un champ de valeur nulle
    Par arcane dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/09/2003, 14h26
  4. [CR9] conversion de valeurs NULL
    Par ministry dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 12/09/2003, 11h41
  5. Valeurs Nulles ou Valeurs à Zéro
    Par LLaurent dans le forum XMLRAD
    Réponses: 5
    Dernier message: 30/07/2003, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo