Giter Site home page Giter Site logo

francessco121 / discore Goto Github PK

View Code? Open in Web Editor NEW
17.0 3.0 2.0 3.56 MB

A light-weight .NET library for creating Discord bots.

Home Page: https://francessco.us/Discore/

License: MIT License

C# 100.00%
discord-api discord-library discord dotnet nuget

discore's People

Contributors

francessco121 avatar matthieutran avatar shortcord avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

perksey brokiem

discore's Issues

Shards fail with an "IO Error" if GET /gateway fails during reconnection

Relevant log:

[Debug]       [11/2/17 5:17:34 AM] [Gateway#0] [ConnectLoop] gatewayUrl = wss://gateway.discord.gg
[Debug]       [11/2/17 5:17:34 AM] [BaseWebSocket:GatewaySocket#0] Connecting to wss://gateway.discord.gg/?v=6&encoding=json...
[Debug]       [11/2/17 5:17:34 AM] [BaseWebSocket:GatewaySocket#0] [ReceiveLoop] Socket aborted while receiving.
[Error]       [11/2/17 5:18:04 AM] [Gateway#0] [ConnectLoop] Failed to connect: Success (0), Unable to connect to the remote server
[Debug]       [11/2/17 5:18:04 AM] [DiscoreLocalStorage] Invalidating gateway URL...
[Debug]       [11/2/17 5:18:04 AM] [Gateway#0] [ConnectLoop] Waiting 5s before retrying...
[Debug]       [11/2/17 5:18:09 AM] [DiscoreLocalStorage] Retrieving gateway URL from HTTP...
[Error]       [11/2/17 5:18:40 AM] [Gateway#0] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't resolve host name
   at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
   at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.Net.RestClient.<Send>d__16.MoveNext() in Discore\src\Discore\Http\Net\RestClient.cs:line 261
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.DiscordHttpClient.<Get>d__30.MoveNext() in Discore\src\Discore\Http\DiscordHttpClient.Gateway.cs:line 32
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.DiscoreLocalStorage.<GetGatewayUrlAsync>d__12.MoveNext() in Discore\src\Discore\DiscoreLocalStorage.cs:line 104
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.WebSocket.Net.Gateway.<ConnectLoop>d__40.MoveNext() in Discore\src\Discore\WebSocket\Net\Gateway.cs:line 416
[Debug]       [11/2/17 5:18:40 AM] [Gateway#0] IO Error occured while getting/storing gateway URL, setting state to Disconnected.
[Error]       [11/2/17 5:18:40 AM] [Application] SHARD FAILED: reason = IOError, message = Failed to retrieve/store the Gateway URL because of an IO error., exception = System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't resolve host name
   at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
   at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.Net.RestClient.<Send>d__16.MoveNext() in Discore\src\Discore\Http\Net\RestClient.cs:line 261
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.DiscordHttpClient.<Get>d__30.MoveNext() in Discore\src\Discore\Http\DiscordHttpClient.Gateway.cs:line 32
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.DiscoreLocalStorage.<GetGatewayUrlAsync>d__12.MoveNext() in Discore\src\Discore\DiscoreLocalStorage.cs:line 104
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.WebSocket.Net.Gateway.<ConnectLoop>d__40.MoveNext() in Discore\src\Discore\WebSocket\Net\Gateway.cs:line 416

Responding with a DirectMessage

Hello! Thank you for a great platform!
I am currently building a bot, and I'd like to be able to respond to users in a direct message. I'm a bit new with C#, so I couldn't find the required information straight away, so I thought to contact here.

For examples sake, lets say I was using the !ping listener, how would I begin forming the message as a DM, or does this function not yet exist?

Thanks!

Shards are still erroneously failing to due Gateway URL IO errors

Seems to be related to #39.

Log from my personal bot:

[Info]        [3/24/18 7:51:39 AM] [GatewaySocket#0] Gateway connection timed out (did not receive ack for last heartbeat).
[Debug]       [3/24/18 7:51:39 AM] [Gateway#0] [OnReconnectionRequired] Beginning automatic reconnection...
[Debug]       [3/24/18 7:51:39 AM] [Gateway#0] [ConnectLoop] resume = True
[Debug]       [3/24/18 7:51:39 AM] [Gateway#0] [ConnectLoop] Disconnecting previous socket...
[Debug]       [3/24/18 7:51:39 AM] [BaseWebSocket:GatewaySocket#0] Disconnecting with code 4100 (4100)...
[Debug]       [3/24/18 7:51:39 AM] [GatewaySocket#0] [HeartbeatLoop] Done. isDisposed = False
[Warning]     [3/24/18 7:51:44 AM] [BaseWebSocket:GatewaySocket#0] Socket failed to disconnect after 5s, aborting...
[Debug]       [3/24/18 7:51:44 AM] [BaseWebSocket:GatewaySocket#0] Disconnected.
[Debug]       [3/24/18 7:51:44 AM] [Gateway#0] [ConnectLoop] gatewayUrl = wss://gateway.discord.gg
[Debug]       [3/24/18 7:51:44 AM] [BaseWebSocket:GatewaySocket#0] [ReceiveLoop] Socket aborted while receiving.
[Debug]       [3/24/18 7:51:44 AM] [BaseWebSocket:GatewaySocket#0] Connecting to wss://gateway.discord.gg/?v=6&encoding=json...
[Error]       [3/24/18 7:51:44 AM] [Gateway#0] [ConnectLoop] Failed to connect: Success (0), Unable to connect to the remote server
[Debug]       [3/24/18 7:51:44 AM] [DiscoreLocalStorage] Invalidating gateway URL...
[Debug]       [3/24/18 7:51:44 AM] [Gateway#0] [ConnectLoop] Waiting 5s before retrying...
[Debug]       [3/24/18 7:51:49 AM] [DiscoreLocalStorage] Retrieving gateway URL from HTTP...
[Error]       [3/24/18 7:53:30 AM] [Gateway#0] System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.Net.RestClient.<Send>d__16.MoveNext() in Discore\Http\Net\RestClient.cs:line 261
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.DiscordHttpClient.<Get>d__30.MoveNext() in Discore\Http\DiscordHttpClient.Gateway.cs:line 32
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.DiscoreLocalStorage.<GetGatewayUrlAsync>d__12.MoveNext() in Discore\DiscoreLocalStorage.cs:line 104
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.WebSocket.Net.Gateway.<ConnectLoop>d__40.MoveNext() in Discore\WebSocket\Net\Gateway.cs:line 418
[Error]       [3/24/18 7:53:30 AM] [Gateway#0] Uncaught error occured while getting/storing gateway URL, setting state to Disconnected.
[Error]       [3/24/18 7:53:30 AM] [Application] SHARD FAILED: reason = Unknown, message = Failed to retrieve/store the Gateway URL because of an unknown error., exception = System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.Net.RestClient.<Send>d__16.MoveNext() in Discore\Http\Net\RestClient.cs:line 261
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.Http.DiscordHttpClient.<Get>d__30.MoveNext() in Discore\Http\DiscordHttpClient.Gateway.cs:line 32
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.DiscoreLocalStorage.<GetGatewayUrlAsync>d__12.MoveNext() in Discore\DiscoreLocalStorage.cs:line 104
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Discore.WebSocket.Net.Gateway.<ConnectLoop>d__40.MoveNext() in Discore\WebSocket\Net\Gateway.cs:line 418

Possibly missing references in NuGet package

Hi! Just wanted to bring this up, might be nothing:
image

I was trying to put Discore into a C# Console Application, using .NET Framework 4.6.1 (Should be compatible with Standard 1.6 according to https://docs.microsoft.com/en-us/dotnet/articles/standard/library#net-platforms-support (sidenote, "with tooling 2.0", whatever that means), and got this error with Package Manager. Using VS 2017 with every module installed with current updates.

I'll be using .Net Core for now, but if this is a bug, you should know about it :) ๐Ÿ‘ Thanks for your hard work!

Add CreateAt

Hello, please add CreateAt to Member.
This is the date the account was created.

Update wiki to v3.0.0

Although Discore v3.0.0 has been fully released along with a migration guide, the wiki documentation still reflects 2.x.

[Bug] Create Voice

await DiscordClient.GetGuild(421412412412412).GetAwaiter().GetResult().CreateChannel(options);

Hi, the error.

BadRequest(400): _misc: Expected "Content-Type" header to be one of set(['application/json']).

at Discore.Http.Net.RestClient.d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Discore.Http.Net.RestClient.d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Discore.Http.DiscordHttpClient.d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

User token support?

We're interested in using Discore as a discord client library for Users, not bots. Is this possible in the current version?

Help adding a role to a specific Member?

I looked over the library and noticed that you can add a role to a user through the DiscordGuildMember. However, I'm not able to grab the object.

I have tried the following, but I am still unable to cast the cached member as a DiscordGuildMember.

DiscordMessage message = e.Message;
DiscoreCache cache = e.Shard.Cache;
DiscordGuildTextChannel guildTextChannel = cache.Channels.Get(message.ChannelId) as DiscordGuildTextChannel;
DiscoreGuildCache guildCache = cache.Guilds.Get(guildTextChannel.GuildId);
DiscordGuildMember member = (DiscordGuildMember)guildCache.Members.Get(e.Message.Author.Id));

Thanks,
ddolpali

How to get user's status

Hi!

I'm trying to iterate through a list, trying to find offline members in the said list.
I can't for the life of me think of the right way to fetch one user's current status! :)

image

As you can see from the picture, I should be able to bind "member" to a specific user. What I'm missing is getting the status of that specific user.

The server is big enough to be considered large, hence not showing offline members automatically.
Should I be doing something with Gateway.RequestGuildMembersAsync?

Remove discore-local-storage.json

This was a really silly "feature" in hindsight. Removing usage of this file will remove all IO related error possibilities (removing a shard failure possibility), increase performance, and reduce internal complexity around the only thing stored in this file: the Gateway URL.

This will be replaced by simply storing the Gateway URL in memory and calling GET /gateway the first time the URL is needed.

There's really no reason for a library to be making files like this anyway...

How to get the voice channel

How to get the voice channel for DiscordGuildVoiceChannel voiceChannel = ...;
What do I need to do after the dots?

Again does not transmit sound.

Hi, again the bot does not want to transmit the sound.
ffmpeg works, everything seems to be as good, but at the same time nothing is heard in the discord.
image

https://hastebin.com/urapehecin.cs - Code.

Maybe there is some kind of working example?
I've already checked everything 5 times, even by the old recommendations I changed the server's location.

Use new proper documented voice UDP address when connecting

Recently, the Discord developers have dropped a PR for the API docs stating that the documented address libraries are supposed to connect to with voice UDP sockets is actually wrong (and has been wrong). Despite it working most of the time, Discore needs to be using the (now hopefully correct) endpoint, which is currently documented here.

Hopefully this will solve the remaining rare weird behavior that occurs when connecting to voice.

Creation date account

Hi, I know that I already created a similar topic, and it was said that it is impossible to implement, but at that time I did not remember where I saw it, now I found it. DSharpPlus has User has the object CreationTimestamp, with which you can get the date of creation of the account, the examples below.

DateTime CreationDate = discord.GetUserAsync(123456).GetAwaiter().GetResult().CreationTimestamp.Date;
In the end, we get the date -

image

Try it now :)

Async Methods

Any thoughts about making this project asynchronous? It would be great to be able to await with this library.

Support version 3 of the Discord voice API

The latest version of the voice API (v3) is almost completely documented. See discord/discord-api-docs#323. According to the PR, v3 is not intended to be used until it's merged so this issue will remain "blocked" until then.

Because v3 allows connections to resume, voice connections will work a lot more like Gateway connections in Discore. They will be fully able to resume and reconnect as needed and only fatally disconnect in the event of an error Discore cannot automatically handle (similar to shard failures).

This should also fix #19 .

Problems with voice channels.

Hi, with voice channels again there were problems, after running ConnectAsync the bot simply disconnects from the voice channel, in debug I found this message - "Can not retrieve the voice channel ID before connecting!"

Version 3.0.0

Discore v3 will be coming out within the next month so I figured now would probably be a good time to explain why the library is moving ahead a major version already :). Over the course of developing 2.x, many design issues have popped up. Mainly these are problems with how data is publicly exposed and how applications interact with Discord through the library - which would require many breaking changes to address.

This issue only details the major changes happening in v3, the smaller changes will all be documented on release (see below for the release plan). In addition, the 2.x documentation will also be archived and available on Discore's github.io site for anyone who needs them before upgrading. A migration guide for upgrading from 2.x will also be available on release (I hope to make this as painless as possible!).

The major changes

Discore from now on will only support bot users

After spending a great amount of time looking over the APIs available for Discord, it became clear that most if not all of the use cases for a library like Discore are bots. On top of this, Discord lacks a lot of documentation for using their WebSocket API for other purposes such as creating a custom client.

Luckily, this actually doesn't remove a lot of functionality from Discore. This change will remove the need to pass a DiscordBotUserToken (as this is the only option, so just a string is needed), which was the only existing authentication option anyway (unless you have a custom implementation of IDiscordAuthenticator). The only other change here is that data and operations that bots cannot use will be removed (e.g. ability to accept invites, the DiscordConnection entity).

In the long run, this change will keep Discore's focus set on creating amazing .NET Discord bots.

Overhauled WebSocket cache

Unfortunately, this change is going to break a lot of code - but I can promise it will be for the better and will actually simplify some code. The original cache had a single huge problem: some entities were stored hierarchically. For instance, to retrieve DiscordGuildMember's you would first need to grab the 'parent cache' DiscoreGuildCache. This created the need for a lot of boilerplate code just to interact with nested entities via the cache.

On top of it being a pain to use, this design also created some unfixable bugs. One of which came up in the issue #11: where user presence data would actually be dropped in cases where a guild is considered large. This occurred because the DiscoreMemberCache objects did not exist to hold the presence data.

Version 3.0 introduces a flattened cache, removing the need for objects such as DiscoreGuildCache and DiscoreMemberCache which will ultimately make Discore easier to use, and will allow the WebSocket implementation to be more flexible.

Instead of code looking like this:

if (cache.Guilds.TryGetValue(guildId, out DiscoreGuildCache guildCache))
{
    DiscordGuildMember member = guildCache.Members[userId].Value;
}

It will look something like:

DiscordGuildMember member = cache.GetGuildMember(guildId, userId);

Which is much more reasonable :).

Removal of DiscordHttpApplication and DiscordWebSocketApplication

Don't worry, you will still be able to use the two API sections independently! After using Discore for a while, it became very clear that these two classes are very unncessary and just end up coupling things together (for instance, WebSocket applications couple the HTTP API with the shard manager). To allow Discore to be used in a more flexible manner, both of these objects will be dropped.

To replace these, you will now be able to simply instantiate your own DiscordHttpClient as well as your own Shards (see next section) depending on your needs.

Removal of ShardManager

Similarly to the previous section, the ShardManager was also more of a burden than a help. It really wasn't "managing" anything and was just a container that also kept code coupled. With v3 you will be able to instantiate your own Shard instances and manage them however you want!

For instance if you are testing a bot and just need one shard, simply:

using (Shard shard = new Shard(token, 0, 1))
{
    await shard.StartAsync();

    // Good to go!
}

Release plan

Since v3 is bringing a lot of change, a pre-release version of v3 will be released to allow for adequate testing to be done myself and by anyone potentially interested. This should be out sometime mid-June. If all goes well, within the next 2 weeks (aiming for the end of June the latest) the stable version of v3 will be released.

Because v3 is going to take a decent amount of effort to upgrade to, version v2.4.0 will also be released around the same time v3 goes into pre-release. v2.4.0 will contain all of the non-breaking additions and bug fixes introduced in v3.

v3.0.0 project page.
v2.4.0 project page.

Other thoughts

I really hate to introduce so many breaking changes, but this all does feel necessary for the future of Discore. Writing good Discord bots should be simple and this release will certainly put Discore on the right track for enabling this.

Very slow addition of reactions.

Hi, today I started bot, and it started to add reactions very slowly, although yesterday everything was fine, I did not touch anything in the code. What could be the reason?

Add support for guild category channels

Currently the v4 code allows category channels to be handled, but there is no entity for them. Guild channel types also need to support the parent_id property.

Update to fully support v6 of the Discord API

Looks like v5 (which Discore currently operates on) will be deprecated soon: discord/discord-api-docs#293. Once the v6 documentation is complete, Discore should be updated as soon as possible.

Edit: v5 will be deprecated as of October 16, 2017, issues #16 and #17 have been created to address this issue, but neither will add full support for v6 (just enough to keep running).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.