mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
Add v10 details to docs
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
[](https://nodei.co/npm/discord.js/)
|
[](https://nodei.co/npm/discord.js/)
|
||||||
|
|
||||||
discord.js is a powerful node.js module that allows you to interact with the [Discord API](https://discordapp.com/developers/docs/intro).
|
discord.js is a powerful node.js module that allows you to interact with the [Discord API](https://discordapp.com/developers/docs/intro) very easily.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
**Node.js 6.0.0 or newer is required.**
|
**Node.js 6.0.0 or newer is required.**
|
||||||
|
|||||||
@@ -6,13 +6,10 @@ Always make sure to read the documentation.
|
|||||||
## No matter what, I get `SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode`‽
|
## No matter what, I get `SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode`‽
|
||||||
Update to Node.js 6.0.0 or newer.
|
Update to Node.js 6.0.0 or newer.
|
||||||
|
|
||||||
## I get an absurd amount of errors when installing discord.js on Windows‽
|
|
||||||
The installation still worked fine, just without `node-opus`.
|
|
||||||
If you don't need voice support, using `npm install discord.js --no-optional` will prevent these errors.
|
|
||||||
|
|
||||||
## How do I get voice working?
|
## How do I get voice working?
|
||||||
- Install FFMPEG.
|
- Install FFMPEG.
|
||||||
- Optionally, set up `node-opus`, which is much faster than the default `opusscript`.
|
- Install either the `node-opus` package or the `opusscript` package.
|
||||||
|
node-opus is greatly preferred, but is tougher to get working on Windows.
|
||||||
|
|
||||||
## How do I install FFMPEG?
|
## How do I install FFMPEG?
|
||||||
- **Ubuntu 16.04:** `sudo apt install ffpmeg`
|
- **Ubuntu 16.04:** `sudo apt install ffpmeg`
|
||||||
@@ -20,5 +17,5 @@ If you don't need voice support, using `npm install discord.js --no-optional` wi
|
|||||||
- **Windows:** See the [FFMPEG section of AoDude's guide](https://github.com/bdistin/OhGodMusicBot/blob/master/README.md#download-ffmpeg).
|
- **Windows:** See the [FFMPEG section of AoDude's guide](https://github.com/bdistin/OhGodMusicBot/blob/master/README.md#download-ffmpeg).
|
||||||
|
|
||||||
## How do I set up node-opus?
|
## How do I set up node-opus?
|
||||||
- **Ubuntu:** It's already done when you run `npm install discord.js` without `--no-optional`. Congrats!
|
- **Ubuntu:** Simply run `npm install node-opus`, and it's done. Congrats!
|
||||||
- **Windows:** See [AoDude's guide](https://github.com/bdistin/OhGodMusicBot/blob/master/README.md). Good luck.
|
- **Windows:** See [AoDude's guide](https://github.com/bdistin/OhGodMusicBot/blob/master/README.md). Good luck.
|
||||||
|
|||||||
@@ -1,10 +1,98 @@
|
|||||||
# About Version 9
|
# Version 10
|
||||||
|
Version 10's non-BC changes focus on cleaning up some inconsistencies that exist in previous versions.
|
||||||
|
Upgrading from v9 should be quick and painless.
|
||||||
|
|
||||||
|
## Client options
|
||||||
|
All client options have been converted to camelCase rather than snake_case, and `max_message_cache` was renamed to `messageCacheMaxSize`.
|
||||||
|
|
||||||
|
v9 code example:
|
||||||
|
```js
|
||||||
|
const client = new Discord.Client({
|
||||||
|
disable_everyone: true,
|
||||||
|
max_message_cache: 500,
|
||||||
|
message_cache_lifetime: 120,
|
||||||
|
message_sweep_interval: 60
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
v10 code example:
|
||||||
|
```js
|
||||||
|
const client = new Discord.Client({
|
||||||
|
disableEveryone: true,
|
||||||
|
messageCacheMaxSize: 500,
|
||||||
|
messageCacheLifetime: 120,
|
||||||
|
messageSweepInterval: 60
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Presences
|
||||||
|
Presences have been completely restructured.
|
||||||
|
Previous versions of discord.js assumed that users had the same presence amongst all guilds - with the introduction of sharding, however, this is no longer the case.
|
||||||
|
|
||||||
|
v9 discord.js code may look something like this:
|
||||||
|
```js
|
||||||
|
User.status; // the status of the user
|
||||||
|
User.game; // the game that the user is playing
|
||||||
|
ClientUser.setStatus(status, game, url); // set the new status for the user
|
||||||
|
```
|
||||||
|
|
||||||
|
v10 moves presences to GuildMember instances. For the sake of simplicity, though, User classes also expose presences.
|
||||||
|
When accessing a presence on a User object, it simply finds the first GuildMember for the user, and uses its presence.
|
||||||
|
Additionally, the introduction of the Presence class keeps all of the presence data organised.
|
||||||
|
|
||||||
|
**It is strongly recommended that you use a GuildMember's presence where available, rather than a User.
|
||||||
|
A user may have an entirely different presence between two different guilds.**
|
||||||
|
|
||||||
|
v10 code:
|
||||||
|
```js
|
||||||
|
MemberOrUser.presence.status; // the status of the member or user
|
||||||
|
MemberOrUser.presence.game; // the game that the member or user is playing
|
||||||
|
ClientUser.setStatus(status); // online, idle, dnd, offline
|
||||||
|
ClientUser.setGame(game, streamingURL); // a game
|
||||||
|
ClientUser.setPresence(fullPresence); // status and game combined
|
||||||
|
```
|
||||||
|
|
||||||
|
## Voice
|
||||||
|
Voice has been rewritten internally, but in a backwards-compatible manner.
|
||||||
|
There is only one breaking change here; the `disconnected` event was renamed to `disconnect`.
|
||||||
|
Several more events have been made available to a VoiceConnection, so see the documentation.
|
||||||
|
|
||||||
|
## Events
|
||||||
|
Many events have been renamed or had their arguments change.
|
||||||
|
|
||||||
|
### Client events
|
||||||
|
| Version 9 | Version 10 |
|
||||||
|
|------------------------------------------------------|-----------------------------------------------|
|
||||||
|
| guildMemberAdd(guild, member) | guildMemberAdd(member) |
|
||||||
|
| guildMemberAvailable(guild, member) | guildMemberAvailable(member) |
|
||||||
|
| guildMemberRemove(guild, member) | guildMemberRemove(member) |
|
||||||
|
| guildMembersChunk(guild, members) | guildMembersChunk(members) |
|
||||||
|
| guildMemberUpdate(guild, oldMember, newMember) | guildMemberUpdate(oldMember, newMember) |
|
||||||
|
| guildRoleCreate(guild, role) | roleCreate(role) |
|
||||||
|
| guildRoleDelete(guild, role) | roleDelete(role) |
|
||||||
|
| guildRoleUpdate(guild, oldRole, newRole) | roleUpdate(oldRole, newRole) |
|
||||||
|
|
||||||
|
The guild parameter that has been dropped from the guild-related events can still be derived using `member.guild` or `role.guild`.
|
||||||
|
|
||||||
|
### VoiceConnection events
|
||||||
|
| Version 9 | Version 10 |
|
||||||
|
|--------------|------------|
|
||||||
|
| disconnected | disconnect |
|
||||||
|
|
||||||
|
## Dates and timestamps
|
||||||
|
All dates/timestamps on the structures have been refactored to have a consistent naming scheme and availability.
|
||||||
|
All of them are named similarly to this:
|
||||||
|
**Date:** `Message.createdAt`
|
||||||
|
**Timestamp:** `Message.createdTimestamp`
|
||||||
|
See the docs for each structure to see which date/timestamps are available on them.
|
||||||
|
|
||||||
|
|
||||||
|
# Version 9
|
||||||
The version 9 (v9) rewrite takes a much more object-oriented approach than previous versions,
|
The version 9 (v9) rewrite takes a much more object-oriented approach than previous versions,
|
||||||
which allows your code to be much more readable and manageable.
|
which allows your code to be much more readable and manageable.
|
||||||
It's been rebuilt from the ground up and should be much more stable, fixing caching issues that affected
|
It's been rebuilt from the ground up and should be much more stable, fixing caching issues that affected
|
||||||
older versions. It also has support for newer Discord Features, such as emojis.
|
older versions. It also has support for newer Discord Features, such as emojis.
|
||||||
|
|
||||||
## Upgrading your code
|
|
||||||
Version 9, while containing a sizable number of breaking changes, does not require much change in your code's logic -
|
Version 9, while containing a sizable number of breaking changes, does not require much change in your code's logic -
|
||||||
most of the concepts are still the same, but loads of functions have been moved around.
|
most of the concepts are still the same, but loads of functions have been moved around.
|
||||||
The vast majority of methods you're used to using have been moved out of the Client class,
|
The vast majority of methods you're used to using have been moved out of the Client class,
|
||||||
@@ -23,7 +111,7 @@ A couple more important details:
|
|||||||
* `Client.loginWithToken("token")` ==> `client.login("token")`
|
* `Client.loginWithToken("token")` ==> `client.login("token")`
|
||||||
* `Client.servers.length` ==> `client.guilds.size` (all instances of `server` are now `guild`)
|
* `Client.servers.length` ==> `client.guilds.size` (all instances of `server` are now `guild`)
|
||||||
|
|
||||||
## Callbacks
|
## No more callbacks!
|
||||||
Version 9 eschews callbacks in favour of Promises. This means all code relying on callbacks must be changed.
|
Version 9 eschews callbacks in favour of Promises. This means all code relying on callbacks must be changed.
|
||||||
For example, the following code:
|
For example, the following code:
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://hydrabolt.github.io/discord.js">
|
<a href="https://hydrabolt.github.io/discord.js">
|
||||||
<img alt="discord.js" src="http://i.imgur.com/sPOLh9y.png" width="546"><br />
|
<img alt="discord.js" src="http://i.imgur.com/StEGtEh.png" width="546"><br />
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
[](https://discord.gg/bRCvFy9)
|
[](https://discord.gg/bRCvFy9)
|
||||||
[](https://www.npmjs.com/package/discord.js)
|
[](https://www.npmjs.com/package/discord.js)
|
||||||
[](https://www.npmjs.com/package/discord.js)
|
[](https://www.npmjs.com/package/discord.js)
|
||||||
[](https://travis-ci.org/hydrabolt/discord.js)
|
[](https://travis-ci.org/hydrabolt/discord.js)
|
||||||
[](https://david-dm.org/hydrabolt/discord.js)
|
[](https://david-dm.org/hydrabolt/discord.js)
|
||||||
|
|
||||||
[](https://nodei.co/npm/discord.js/)
|
[](https://nodei.co/npm/discord.js/)
|
||||||
|
|
||||||
discord.js is a powerful node.js module that allows you to interact with the [Discord API](https://discordapp.com/developers/docs/intro).
|
discord.js is a powerful node.js module that allows you to interact with the [Discord API](https://discordapp.com/developers/docs/intro) very easily.
|
||||||
|
|
||||||
# Welcome!
|
# Welcome!
|
||||||
Welcome to the discord.js v9 documentation. The v9 rewrite has taken a lot of time, but it should be much more
|
Welcome to the discord.js v10 documentation.
|
||||||
stable and performant than previous versions.
|
v10 is just a more consistent and stable iteration over v9, and contains loads of new/improved features, optimisations, and bug fixes.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
**Node.js 6.0.0 or newer is required.**
|
**Node.js 6.0.0 or newer is required.**
|
||||||
|
|||||||
Reference in New Issue
Block a user