public static void Main(string[] args) { TextWriter fileOut = TextWriter.Synchronized(new StreamWriter(new FileStream("output.log", FileMode.Create))); Console.SetOut(new MultiWriter(Console.Out, fileOut)); //Debug.Listeners.Add(new ConsoleTraceListener()); DiscordEnvironment.CreateGateway(new BotToken("Mzg5NzIwNTg1MjI1MjQwNTc4.DTBrBQ.F_hS16KEEwjKothN6Mo8NoF2p-A"), "DebugBot", client => { Console.WriteLine("Setting up events..."); Server s = Server.GetCached(300146519619796993U); s.TextChannelCreate += L <ServerTextChannel>("s.TextChannelCreate"); s.NonCatChannelCreate += L <INonCatServerChannel>("s.NonCatChannelCreate"); s.ChannelCreate += L <IServerChannel>("s.ChannelCreate", true); ServerTextChannel.Create += L <ServerTextChannel>("ServerTextChannel.Create"); TextChannel.Create += L <TextChannel>("TextChannel.Create"); ChannelUtils.NonCatServerChannelCreate += L <INonCatServerChannel>("ChannelUtils.NonCatServerChannelCreate"); ChannelUtils.ServerChannelCreate += L <IServerChannel>("ChannelUtils.ServerChannelCreate"); ChannelUtils.ChannelCreate += L("ChannelUtils.ChannelCreate"); ChannelUtils.Create += L("ChannelUtils.Create"); Console.WriteLine("Events created."); Console.ReadLine(); }); Console.ReadLine(); //try { //ulong channel = 345312662646947851; // Server text //ulong channel = 0; // DM single //ulong channel = 311527722918608896; // Server voice //ulong channel = 0; // DM group //ulong channel = 375504585730686976; // Server category //DiscordDebug.WriteLine(Client.GetChannel(channel, token)); //DiscordDebug.WriteLine(DiscordDebug.ToString(c.GetChannelAsync(channel).Await())); //ulong server = 311527722474143744; //DiscordDebug.WriteLine(DiscordDebug.ToString(c.GetServer(server))); //ITraceWriter w = new MemoryTraceWriter(); //try { //DiscordDebug.WriteLine(c.GetServerJson(server, w).Await()); //DiscordDebug.WriteLine(Client.GetServer(server, token)); //} catch (Exception) { //DiscordDebug.WriteLine(w); //} //ulong user = 205899965984276480; //DiscordDebug.WriteLine(DiscordDebug.ToString(ServerUser.Get(user, c))); //ulong emoji = 324119851801247745; //DiscordDebug.WriteLine(DiscordDebug.ToString(Emoji.Get(server, emoji, c))); //DiscordDebug.WriteLine(DiscordDebug.ToString(c.GetServerEmojiAsync(server, emoji).Await())); //} catch (Exception e) { //DiscordDebug.WriteLine(e); //} }
public void Start(ReceiveGatewayData helloData, bool reconnect) { Thread starter = DiscordEnvironment.CreateSubthread(() => { if (reconnect) { _heartbeat.Stop(); _heartbeat.Dispose(); } _fire = true; //Task initBeat = HeartbeatAsync(); _heartbeat = new Timer(((GatewayHelloData)helloData.Data).HeartbeatInterval.TotalMilliseconds) { AutoReset = true, SynchronizingObject = null }; _heartbeat.Elapsed += (sender, args) => HeartbeatAsync().Await(); _heartbeat.Start(); //initBeat.Await(); _ackMutex.Wait(); if (_aborts > 0) { _fire = false; _aborts--; _ackMutex.Release(); } else { bool oldFire = _fire; _fire = false; _ackMutex.Release(); if (oldFire) { Started?.Invoke(this, true); } } }); starter.Start(); }