Как мне получить _client в discord.net?

Рейтинг: 0Ответов: 1Опубликовано: 23.05.2023

Я создал файл отвечающий за обработку сообщений

if (arg.Content != "")
                {
                    

                    var guild = arg.Channel as SocketGuildChannel;
                    SocketGuild guildCheck = client.GetGuild(guild.Guild.Id);
                    var channel = guildCheck.GetTextChannel(1067089425386971216);
                    

                    var embedBuilder = new EmbedBuilder().WithAuthor($"Автор: {arg.Author.Username}").WithDescription(
                                       $"**Канал**: {arg.Channel.Name}" +
                                       $"\n**Сообщение**: {arg.Content}" +
                                       $"\n \n **Время отправки**: {arg.CreatedAt.AddHours(3)}"
                                       ).WithColor(Color.Blue);
                     await channel.SendMessageAsync(embed: embedBuilder.Build());
                }

и подключаю его в главном файле

 _client = new DiscordSocketClient(config);

_client.SlashCommandExecuted += slashcommand.SlashCommandHandler;
_client.Ready += creatingCommand.Client_Ready;
_client.MessageReceived += message.checkMessage;

Из-за того что при подключении я использую _client моя функция не работает. Когда я пытаюсь подключить клиент при помощи DiscordSocketClient? client; внутри файла с обработкой, ответ тот же. Но когда я вставляю в главный файл эту функцию, у меня все работает. Проблема в _client, как мне его получить без конфликтов между файлами?

Ответы

▲ 0

Хм ок: message.cs

public class MessageHandler
{
    private DiscordSocketClient _client;
    private ulong _channelId;

    public MessageHandler(DiscordSocketClient client, ulong channelId)
    {
        _client = client;
        _channelId = channelId;
    }

    public async Task CheckMessage(SocketMessage arg)
    {
        if (arg.Content != "")
        {
            var guild = (arg.Channel as SocketGuildChannel)?.Guild;
            var channel = guild?.GetTextChannel(_channelId);

            if (channel != null)
            {
                var embedBuilder = new EmbedBuilder()
                    .WithAuthor($"Автор: {arg.Author.Username}")
                    .WithDescription($"**Канал**: {arg.Channel.Name}" +
                                     $"\n**Сообщение**: {arg.Content}" +
                                     $"\n \n **Время отправки**: {arg.CreatedAt.AddHours(3)}")
                    .WithColor(Color.Blue);

                await channel.SendMessageAsync(embed: embedBuilder.Build());
            }
        }
    }
}

Главный файл

_client = new DiscordSocketClient(config);
var channelId = 1067089425386971216UL;
var messageHandler = new MessageHandler(_client, channelId);

_client.SlashCommandExecuted += slashcommand.SlashCommandHandler;
_client.Ready += creatingCommand.Client_Ready;
_client.MessageReceived += messageHandler.CheckMessage;