Exception non géré (création d'un bot discord)

etirockQC - Modifié le 11 juin 2020 à 17:35
Whismeril Messages postés 19140 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 août 2024 - 11 juin 2020 à 07:17
bonjour a tous,

je commence en C# et j'ai comme project de créé un bot discord. mon code est bon est n'a pas d'erreur visible. cependant lorsque je lance le programme, mon main ne prend pas en compte la ligne suivante me disant que cela na pas été implémenté : "System.NotImplementedException : 'The method or operation is not implemented.' "
je ne sais pas quoi faire pour le résoudre et je ne trouve pas de solution sur internet merci d'avance pour votre aide

voici le code :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Discord;
using Discord.Commands;
using Discord.WebSocket;
using Microsoft.Extensions.DependencyInjection;

namespace Caelum_bot
{
 class Program
 {
  public static void Main(/*string[] args)*/) =>     new Program().RunBotAsync().GetAwaiter().GetResult();
  

  private DiscordSocketClient _client;
  private CommandService _commands;
  private IServiceProvider _services;

  public async Task RunBotAsync()
        {
   _client = new DiscordSocketClient();
   _commands = new CommandService();

   _services = new ServiceCollection()
    .AddSingleton(_client)
    .AddSingleton(_commands)
    .BuildServiceProvider();

   string token = "***"

            _client.Log += _client_Log;

   await RegisterCommandsAsync();

   await _client.LoginAsync(TokenType.Bot, token);

   await _client.StartAsync();

   await Task.Delay(-1);

  }

        private Task RegisterCommandsAsync()
        {
            throw new NotImplementedException();
        }

        private Task _client_Log(LogMessage arg)
        {
   Console.WriteLine(arg);
   return Task.CompletedTask;
        }

        public async Task RegisterCommandsAsync(SocketMessage arg)
        {
   _client.MessageReceived += HandleCommandAsync;
   await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _services);
        }

        private async Task HandleCommandAsync(SocketMessage arg)
        {
   var message = arg as SocketUserMessage;
   var context = new SocketCommandContext(_client, message);
   if (message.Author.IsBot) return;

   int argPos = 0;
   if (message.HasCharPrefix('!',ref argPos)) 
   {
    var result = await _commands.ExecuteAsync(context, argPos, _services);
    if (!result.IsSuccess) Console.WriteLine(result.ErrorReason);
   }

        }
    }
}

1 réponse

Whismeril Messages postés 19140 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 août 2024 660
Modifié le 11 juin 2020 à 07:18
Bonjour

Pour tes prochains posts, merci d’utiliser la coloration syntaxique, voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

L’erreur que tu reçois, veut dire que tu appelles une méthode ou une propriété (généralement écrite automatiquement par Visual Studio) dont le code n’a pas été écrit et pour t’en souvenir toi ou Visual Studio à laisser la génération de l’erreur dans cette méthode.

Un petit Ctrl+F avec le nom de l’exception et tu vas tomber dessus....


PS: de la génération d’exception et du multithread sans avoir pris la peine d’apprendre quelques bases mène forcément à attendre des heures sur un forum que quelqu’un trouve la boulette que l’on a fait. Le meilleur conseil que je puisse te donner c’est de mettre ton projet de côté quelques jours, le temps de suivre ce cours http://tahe.developpez.com/dotnet/csharp/ Il ne fera pas de toi un codeur expert mais te donnera le socle nécessaire à ton apprentissage

0
Rejoignez-nous