Search code examples
c#discord.net

SocketChannel DiscordSocketClient.GetChannel(id) returns null with correct channel's id given


As in title. Var channel keeps being null even if channel's id is correct.

public class MyRegistry : Registry
    {
        public class Task : ModuleBase
        {
            public Task()
            {
                var channel = CommandHandler._discord.GetChannel(CHANNELS_ID);
                IMessageChannel chnl = channel as IMessageChannel;
                JobManager.AddJob(() => chnl.SendMessageAsync("test"), (s) => s.ToRunEvery(3).Seconds());
            }
        }
        static void Initializer()
        {
            JobManager.Initialize(new MyRegistry());
        }
    }

I also tried:

var channel = CommandHandler._discord.GetGuild(SERVERS_ID).GetChannel(CHANNELS_ID);

But it's still null, even with valid ulogs. How should I appeal to specified channel?


Solution

  • I have no clue why, but skipping SocketChannel and IMessageChannel declarations worked:

    public class MyRegistry : Registry
        {
            public class Task : ModuleBase
            {
                public Task()
                {
                    JobManager.AddJob(() => (CommandHandler._discord.GetChannel(CHANNELS_ID) as IMessageChannel).SendMessageAsync("test"), (s) => s.ToRunEvery(3).Seconds());
                }
            }
            static void Initializer()
            {
                JobManager.Initialize(new MyRegistry());
            }
        }