Commit graph

710 commits

Author SHA1 Message Date
Amish Shah
dce8e83465 Add VoiceConnection#dispatcher 2017-04-12 20:36:03 +01:00
Amish Shah
36c03909dd Clean up AudioPlayer internals, change currentDispatcher and currentTranscoder to just dispatcher and transcoder 2017-04-12 20:32:50 +01:00
Amish Shah
9eaf1456b2 Clean up AudioPlayer internals, remove the concept of multiple "temporary" streams 2017-04-12 20:12:51 +01:00
SpaceEEC
81d7dbdc76 Fix resolveEmojiIdentifier (#1373) 2017-04-12 17:15:23 +01:00
Lana Reeve
40c610987e Improved EmojiIdentifierResolvable support (#1361)
* EmojiIdentifierResolvable now supports emoji IDs and pre-encoded unicode

* forgot to return the identifier and not the emoji itself

* using ? in JSDoc instead of |null
2017-04-12 06:32:18 +02:00
bdistin
c5e2ea7458 Break reconnect loop if you client.destroy in the disconnect event (#1371)
* Break reconnect loop if you client.destroy in the disconnect event

* fix lint/long line?

* God this is So UGLY, why...

* Update WebSocketManager.js

* Update WebSocketManager.js
2017-04-12 06:31:45 +02:00
aemino
39f7dc018a Make FEC and PLP non-default (#1372)
I considered it might be useful to have something exposed that allows the end-user to set these if they want, but our current code doesn't allow for that. It'll remain an internal feature for the time being.
2017-04-12 06:30:48 +02:00
xDdude
a49d4e6d43 getters for decibel and logarithmic volume (#1355)
* getters for decibel and logarithmic volume

I don't really understand where the conversion numbers come from but having this allows for an easy way to get the volume back based on what method you used to set it. I think the math is right, but yeah I've just used the conversion numbers from the other methods.

* fix trailing spaces
2017-04-11 18:21:00 +01:00
Drahcirius
84aab1021a reaction remove fix (#1366) 2017-04-11 18:10:14 +01:00
Amish Shah
25e0048bbf remove useless waiting reference 2017-04-11 17:59:27 +01:00
Amish Shah
6495df50f9 Fix sequential rate limiting 2017-04-11 17:54:03 +01:00
Gus Caplan
0a56fa0aae websocket cleanup (#1346)
* websocket cleanup

* resume event

* Update Resumed.js

* Update WebSocketManager.js
2017-04-10 20:02:17 +02:00
aemino
6d4fe89212 Volume stuff docs fixes (#1354)
* Volume stuff docs fixes

* 10/10 for spelling
2017-04-10 11:50:33 +01:00
Schuyler Cebulskie
fa016b6b41 Clean up Message#mentions and message updates 2017-04-10 03:01:50 -04:00
aemino
ab589fa5f2 VoiceConnection speaking bugfix (#1343)
Looks like I made a typo...
2017-04-06 16:20:34 +02:00
Crawl
d1d8179460 Revert "add auth session change handling" (#1342)
* Revert "User settings (#1337)"

This reverts commit 801633b970.

* Revert "add auth session change handling (#1339)"

This reverts commit 5d85de0883.
2017-04-06 13:50:31 +02:00
Gus Caplan
801633b970 User settings (#1337)
* user settings bruh

* remove development dump

* emit stuff

* i am so done

* Update ClientUserSettings.js

* modularize

* Update ClientUserSettings.js

* Update Constants.js

* Update ClientUserSettings.js

* Update RESTMethods.js

* Update ClientUserSettings.js

* <.<
2017-04-05 22:03:33 +02:00
Gus Caplan
5d85de0883 add auth session change handling (#1339)
* add auth session change handling

* eek
2017-04-05 21:52:55 +02:00
SpaceEEC
6ce24398ab Fix messageReactionAdd internally & doc fix (#1341) 2017-04-05 21:34:14 +02:00
Amish Shah
970bfffc46 Fix emoji events (fixes #1333) 2017-04-05 17:05:27 +01:00
SpaceEEC
ecb8655dac Document readonly and private properties (#1338) 2017-04-03 20:05:36 +02:00
Crawl
6910585f69 Fix lowercase comments 2017-04-02 19:47:00 +02:00
aemino
8716702b59 Add FEC and PLP support for Opus encoding (#1264)
* Add FEC and PLP support for Opus encoding

* Silently fail if the Opus engine doesn't support CTL

* Fixed inversed max/min functions
2017-04-02 19:43:46 +02:00
SpaceEEC
d2e3d6dc63 replaced 'del' with 'delete' (#1328) 2017-04-01 16:16:05 +02:00
Gus Caplan
cb3f6d9646 http rewrite (actually works this time!!1!) (#1257)
* rewrite http

* browser fun

* all the mimes dammit

* i need a newline

* whoops

* forgot about this

* use promises and HTTPRequest.method

* fluent

* move httpclient to external module

* branding

* middleware

* revert middleware
2017-04-01 09:04:01 +02:00
Gus Caplan
a4e0af2e45 make positions for channels and roles nicer (#1211)
* make role calculated position nicer

* make channels sortable in a nice way too

* stupid git web rebase editor

* Update Guild.js

* Update Guild.js

* Update Guild.js

* Update Guild.js

* Update RESTMethods.js
2017-04-01 08:28:54 +02:00
TimeForANinja
c4e5292516 resolve for not loggedin clients (#1301) 2017-04-01 08:05:46 +02:00
bdistin
bca101aac8 Fix for #1089 & Message Reactions (#1236)
* [requires more testing] Fix #1089

* Clean up unshift

* Remove <Message>.patch(data)

Nothing calls this method any longer. It is also a private method, so this shouldn't be a breaking change.

* Fix Message Reactions

Purposely reference previous reaction collections, so collection is consistant accross all message edits (no unnecisary data duplication). Makes #1221 extranious.

* Some Data Packets come Incomplete

And several properties can be falsy, so instead of || opted for hasOwnProperty().

* No reason MessageTypes should be an object...

* Use `prop in obj` isntead of hasOwnProp

per @Gawdl3y
2017-04-01 01:51:12 -04:00
SpaceEEC
07740955cf Fixing stuff, borked by #1323 (#1326)
* several things

* see my comment

* Fixed missing stuff and returned undefined
2017-04-01 07:29:31 +02:00
Gus Caplan
1df3b84da6 rewrite endpoints for consistancy and modularity (#1323)
* rewrite endpoints for consistancy and modularity

* clean up a bit

* add missing endpoint
2017-03-31 18:36:09 +01:00
SpaceEEC
e08f2bad30 Add guild#createRole resolve permissions and RoleData optional (#1321)
* resolving permissions

* make RoleData optional
2017-03-31 12:55:23 +02:00
Vap0r1ze
61f5051dfd Fix invite resolver (#1318)
Old version only worked with temporary links.
Now works with: vanity invites, and permanent invites.
2017-03-30 08:41:18 -04:00
Gus Caplan
dd8907472c nonce has to be a uint64 :< (#1240)
* nonce me daddy

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* (╯°□°)╯︵ ┻━┻

* Update RESTMethods.js

* Update RESTMethods.js
2017-03-21 03:17:20 -04:00
Gus Caplan
3e0c0f44a2 make useragent better because data is fun (#1244)
* Update UserAgentManager.js

* Update UserAgentManager.js

* gawdl3y is one of the most pants-on-head retarded people i have ever met

* Update UserAgentManager.js

* Update UserAgentManager.js

* Update UserAgentManager.js

* Update UserAgentManager.js
2017-03-21 03:12:20 -04:00
Programmix
633e3ca896 Fix addRole/removeRole when the user has/doesn't have the role (#1288) 2017-03-21 01:52:43 -04:00
Schuyler Cebulskie
136cab240d Add new ESLint rules 2017-03-17 01:23:39 -04:00
Gus Caplan
94062d19dd Add message/channel/guild acknowledging (#1239)
* add acking

* 👀

* Update RESTMethods.js

* Update TextBasedChannel.js

* Update RESTMethods.js

* Update Guild.js

* Update TextBasedChannel.js

* Update Message.js

* super shitty names

* Update GroupDMChannel.js

* Update DMChannel.js

* Update TextChannel.js
2017-03-16 09:38:12 -04:00
Gus Caplan
fa609caee2 remove pako (#1258) 2017-03-16 09:15:48 -04:00
Gus Caplan
a82d9f1fbb add multi-file support (#1268)
* add multi-file support

* (╯°□°)╯︵ ┻━┻

(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻

* stupid git web rebase editor - Gus2k17

* Update TextBasedChannel.js

* Update TextBasedChannel.js
2017-03-15 15:10:49 +01:00
Crawl
4ef0ec491c Add arrow-parens eslint rule & fix inconsistencies 2017-03-13 15:56:00 +01:00
Schuyler Cebulskie
16fe48d405 Overhaul Permissions utilities (EvaluatedPermissions no more) 2017-03-06 02:22:42 -05:00
Programmix
055775de2f Fix for #1219 (sodium methods) (#1220)
* Change node-opus methods

* Try using crypto_secretbox(_open)_easy

* Wrong open method name
2017-03-04 08:33:19 +00:00
Amish Shah
33de408a70 fix bulk delete endpoint 2017-03-04 00:35:54 +00:00
Amish Shah
dfb1a16e9e One-line an if statement 2017-02-25 23:26:40 +00:00
Programmix
275c9953a0 Fixes disconnecting VoiceConnections before connected (#1227) 2017-02-25 23:17:39 +00:00
Schuyler Cebulskie
f3a7f59824 Several improvements
- Rename Guild#updateChannelPositions -> setChannelPositions
- Allow Guild#setChannelPositions to take ChannelResolvables
- Prioritise ClientDataResolver#resolveChannel's string case
- Minor cleanup
2017-02-25 15:29:32 -05:00
Amish Shah
18bcd2f7e2 Add AudioPlayer.currentDispatcher 2017-02-25 11:12:17 +00:00
Programmix
a029999b09 Doc fixes, mostly pertaining to Snowflakes (#1218)
GUS!!!! @GusCaplan
2017-02-24 15:33:51 -05:00
Programmix
76637ed10d Fix VoiceDispatcher docs (#1214) 2017-02-23 21:42:41 -05:00
Amish Shah
70b35c85d6 Merge branch 'indev-prism' 2017-02-23 20:19:26 +00:00
Programmix
bf25caf3d3 Updated VoiceConnection to use new Util class (#1210)
pls @Gawdl3y pls
2017-02-22 22:10:26 +00:00
Amish Shah
b55e6927e9 merge fix 2017-02-22 20:39:21 +00:00
Amish Shah
8a2ec437e5 Merge branch 'master' into indev-prism 2017-02-22 20:37:59 +00:00
Gus Caplan
4c9d8d6cd7 add lots of group dm features (#1208)
* group dm stuff

* minor doc changes
2017-02-22 20:33:20 +00:00
lipgloss
f068010e96 Implement 'Modify Guild Channel Positions' (#1198)
* Adding shuffleArray method to utils

* Shuffle channels functionality on guild.

* Comment fix

* Removing shuffle functionality and replacing with a simple update

* Code review changes to method/variable names

* Update comment reference to channelId as well

* Updating jsdoc with typedef of ChannelPosition
2017-02-22 20:24:05 +00:00
Programmix
7fd94c29d8 VoiceConnection rework (#1183)
* VoiceConnection rework

- improves codebase
- removes concept of pending connections
- attempts to fix memory leaks by removing EventEmitter listeners
- makes voice connections keep track of its own channel when it is moved by another user
- allows voice connections to reconnect when Discord falls back to another voice server or a region change occurs
- adds events for some of the aforementioned events

* Removed unused code

* More clean up / bugfixes

* Added typedefs to Status and VoiceStatus constants
2017-02-22 20:13:52 +00:00
Gus Caplan
566135d25b move permission stuff to the resolver (#1185) 2017-02-22 20:11:11 +00:00
Programmix
eb069d0249 Added volumeChange event to VoiceInterface (#1207)
VoiceBroadcast relies on this event to initialize a new Opus engine
2017-02-22 20:10:19 +00:00
Gus Caplan
61e12c637b Add support for more OAuth features (#1203) 2017-02-22 20:09:40 +00:00
Programmix
d09dfa4c37 Capitalize channel type constants (#1209) 2017-02-22 20:08:47 +00:00
Schuyler Cebulskie
8d1bc30e40 Clean up dd6dd6f 2017-02-21 15:07:54 -05:00
Gus Caplan
d4a84915e6 Add timeout/interval methods to WebhookClient (fixes #1181), and clean up docs (#1204)
* fix up 1181

* Clean up documentation

* Update WebhookClient.js
2017-02-21 14:16:41 -05:00
Schuyler Cebulskie
f2a6c1d98c Improve Client docs a bit more 2017-02-21 14:02:29 -05:00
Schuyler Cebulskie
7232531eb1 Move all util methods into class
Remove TransformMessageOptions altogether
2017-02-15 22:25:18 -05:00
Schuyler Cebulskie
b91f8f27be Fix resolveBuffer file failure behaviour 2017-02-15 16:37:31 -05:00
Gus Caplan
ec1ed15c88 Fix request handling (#1180)
* clean up ratelimiters, and disable burst until some big questions are handled

* burst mode is a work

* fix burst again
2017-02-11 12:04:24 +00:00
Mike
dd6dd6fb59 Added support for adding users to guild 2 (#1179)
* Added support for adding users to guild

added RESTMethods#AddGuildMemberOptions and Guild#addMember with typedef
AddGuildMemberOptions to be able to add user to guild as a member
through `PUT/guilds/{guild.id}/members/{user.id}`
https://discordapp.com/developers/docs/resources/guild#add-guild-member

* fixing lint errors

* Changes based on discussion

* Changes based on discussion 2

* Changes based on discussion 3

Yay! More changes.
2017-02-08 21:04:39 +00:00
Zack Campbell
2518a0f7e2 Fix for incorrect oldMember in guildMemberUpdate event after addRole (#1129)
* Fix for incorrect oldMember in guildMemberUpdate event after addRole

`addRole` would modify the cached GuildMember rather than letting it be handled internally when a guild member update packet is received from Discord, leading to the `oldMember` and `newMember` being identical following a call to `addRole`

This is currently how `addRoles` does it, and a correct oldMember is passed to the `guildMemberUpdate` event following a call to `addRoles`

* Return cloned member with added/removed role

So we can return a member object with the added/removed role without affecting the member object sent to `guildMemberUpdate`

* Wait for guildMemberUpdate and return updated GuildMember

* Fix linter errors

* Remove listeners after 10 seconds
2017-02-08 17:38:57 +00:00
Gus Caplan
7c8f534a38 add random color (#1175)
* add random color

* Update ClientDataResolver.js

* Update ClientDataResolver.js
2017-02-07 01:19:43 -05:00
Schuyler Cebulskie
d6f17a9319 Merge branch 'master' into indev-prism 2017-02-06 01:54:31 -05:00
Jacob
49944747ae Sodium (#1172)
* Use Native libsodium when available

* add newline

* fix typo of exports

* add to webpack ignore

* Update Secretbox.js
2017-02-06 01:24:54 -05:00
Schuyler Cebulskie
b859ba7639 Increase some documentation detail 2017-02-05 23:00:36 -05:00
Gus Caplan
59ff1d99ba fix types for snowflakes (#1156)
* fix types for snowflakes

* Update TextBasedChannel.js
2017-02-03 21:37:58 -05:00
Gus Caplan
cee9e4839c fix sending code when you aren't splitting the message (#1162)
* fasguhq4wbyghjehuibh

kjgewqhuilb

* Update RESTMethods.js
2017-02-02 16:21:26 +00:00
Gus Caplan
1e94a9e2a4 serious role position stuff (#1159)
* serious role position stuff

* kill meh

* Update Role.js

* Update Guild.js

* Update Role.js
2017-02-01 22:02:16 +00:00
Schuyler Cebulskie
02c23a8b53 Merge branch 'master' into indev-prism 2017-02-01 15:32:18 -05:00
bdistin
a2d6791cd8 Fix CodeBlock Splitting (#1160)
* Fix CodeBlock Splitting

* fix changes requested
2017-02-01 15:31:57 -05:00
Schuyler Cebulskie
e8ac18489e Merge branch 'master' into indev-prism 2017-02-01 15:29:45 -05:00
Alex
ed42d7bd85 Fix backwards GuildEmojiCreate parameters (#1153) 2017-01-31 00:49:11 -05:00
Schuyler Cebulskie
f4724d61b2 Fix #1095 2017-01-30 22:54:37 -05:00
Gus Caplan
565c640bc6 Add role support to emoji creation (#1141)
* add role support to emojis

* specify types
2017-01-30 22:47:27 -05:00
Alex
18729b25c7 Add support to edit emojis (#1142)
* Add support to edit emojis

* Fixes for coding style.

* Add and use guildEmoji constants for updateEmoji

* Just use the Constant

* Fix typo in edit documentation

* Specify property types

* Fix ridiculous typo.

* Update Emoji.js
2017-01-30 22:47:05 -05:00
Programmix
78dafb9480 Properly check whether an Opus engine exists (#1150)
* Properly check whether an Opus engine exists

I think I'm retarded

* Fix eslint error

* Update OpusEngineList.js
2017-01-30 16:38:47 -05:00
Programmix
7ed58f5f7f Added Opus stream support, added volume interface (#1102)
* Added opus stream support, added volume interface

* Remove setImmediate

* Fix weird syntax error

* Most useless commit ever

You're welcome, @PgBiel

* Fix potential memory leak with OpusScript

Emscripten has the tendency to not free resources even when the Opus engine instance has been garbage collected. Thanks to @abalabahaha for pointing this out.

* Typo

* VoiceReceiver.destroy: destroy opus encoder
2017-01-29 19:07:33 +00:00
Fiddlekins
6fae17912e Added try catch so that decode errors aren't fatal (#1146)
* Added try catch so that decode errors aren't fatal

* Tweaked the usage of the warn event and updated jsdocs

* Moved method into class for webpack scoping reasons
2017-01-29 18:59:00 +00:00
Digitroinc
448c93615b fix splitting messages #1148)
* fix for issue #1120

* build fix
2017-01-29 18:58:35 +00:00
Pg Biel
c7f5b44e03 Add User.lastMessage, GuildMember.lastMessage and TextBasedChannel.lastMessage (#1135)
* Add User.lastMessage

* User.lastMessage and GuildMember.lastMessage

* User, GuildMember and TextBasedChannel lastMessage

* Update MessageCreate.js
2017-01-26 21:24:08 +00:00
Programmix
9a6cb6477d VoiceReceiver: multiple streams fix (#1132)
* VoiceReceiver: multiple streams fix

silly hydar... you can't have one Opus engine instance for every stream

* Better creation of opus engine
2017-01-26 21:23:00 +00:00
Gus Caplan
87b600f78f switch to os shim for safety (#1136)
* switch to os shim for safety

* Update Client.js
2017-01-26 21:21:43 +00:00
Alex
ba7c2db364 Fix createEmoji/deleteEmoji action name. (#1110) 2017-01-24 21:56:19 +00:00
Alexander
5173583e26 Fix empty search query parameters (#1119)
The search function was sending request to stuff like:
search?author_id=&content=&channel_id=135823828352838352
2017-01-24 21:55:59 +00:00
Programmix
c1a5bee61f GuildMembersChunk packet handler hotfix (#1125)
* GuildMembersChunk packet handler hotfix

* Add limit, resolve properly if a query is used

* Document new GuildMemberChunk param
2017-01-24 21:55:36 +00:00
Programmix
c73e501243 Fix RESTMethods.removeMessageReaction (fixes #1114) (#1126) 2017-01-21 19:48:17 -05:00
Gus Caplan
306ea97f99 fix guild member fetching edge cases (#1115)
* thx4tipprogrammixluvubye

* consistancy

* make this loop for some reason

* so impatient
2017-01-21 16:37:28 +00:00
Gus Caplan
0300601649 remove redundant editing (#1116)
* remove redundant editing

* update docs
2017-01-19 17:11:24 +00:00
Schuyler Cebulskie
b13fdcc8d3 Merged master into indev-prism 2017-01-18 19:23:18 -05:00
Gus Caplan
3f4cbd07dd add voice region getting (#1108)
* add voice region getting

* clean up this mess

* add docstrings

* Update VoiceRegion.js

* Update RESTMethods.js
2017-01-18 19:14:44 -05:00
Amish Shah
ba465bc680 Merge branch 'master' into indev-prism 2017-01-15 14:20:32 +00:00
Gus Caplan
8c220e76ec Fix GuildDelete typing stopping (#1098)
* whoops

* ugh

* Update GuildDelete.js
2017-01-14 23:33:26 -05:00
Programmix
d10ca8e7ba Add VoiceChannel#full and improve joinable/join permission checks (#1100)
* Improve voice channel join permission checks

* Update ClientVoiceManager.js
2017-01-14 23:32:17 -05:00