Commit graph

297 commits

Author SHA1 Message Date
stupid cat
b8034525e3 Add user_guild_settings support (#1365)
* user guild settings

* Use direct collection

* I'm a goof

* double goof

* Structure properties

* Forgot to register listener

* wrong class names

* No more get in docs

* avoid waterfalls, bot checks

* trycatch

wow i thought i already did this :notlikecat:

* 👀

* Update ClientUser.js

* Update ClientUserGuildSettings.js

* Update UserGuildSettingsUpdate.js

* Update ClientUserChannelOverride.js

* Update ClientUserGuildSettings.js
2017-08-01 04:28:15 +02:00
SpaceEEC
fe8f371d82 Fixed Client#guildMembersChunk's members collection's key being undefined. (#1736) 2017-07-31 01:16:50 +02:00
Gus Caplan
0acb0ac5dc fix unpack weird issues (#1729) 2017-07-29 22:02:56 +02:00
SpaceEEC
c0e9ce2a1d functions for setTimeout should get the context bound and not applied (#1673) 2017-07-10 03:34:54 +02:00
Gus Caplan
2eb3720001 move raw call so that any cache events happen before (#1653)
* move raw call so that any cache events happen before

* Update WebSocketConnection.js

* Update WebSocketConnection.js
2017-07-04 00:10:28 +02:00
Gavin Wainwright
7b44262346 Destructure certain imports (#1634) 2017-06-29 00:43:26 +01:00
Amish Shah
ee679c7320 Fix #1528 2017-05-27 19:19:35 +01:00
Gus Caplan
694f8278f1 make fetching members way better (#1124)
* make fetching members way better

* fix up fetching edge cases yet again

* stop making useless collections

* Update Guild.js

* Update Guild.js

* consistency?

* Update GuildMembersChunk.js

* Update Guild.js

* Update Guild.js

* Open editor to fix issues instead of GH: check
2017-05-21 22:09:37 +02:00
Gus Caplan
7934788c10 you can't mutate a socket event in some browsers (webpack fix) (#1512) 2017-05-21 05:19:53 +02:00
SpaceEEC
a4e5713790 readded docs for Client#error and Client#ready (#1466) 2017-05-05 20:15:06 +02:00
Amish Shah
c48f042785 silly hydar 2017-05-01 15:42:47 +01:00
Amish Shah
b8018d4b6d Reconnect on 1000 if client didn't close 2017-05-01 15:32:40 +01:00
Amish Shah
51a2e465bd Let client know who closed the WebSocket 2017-05-01 15:24:02 +01:00
Drahcirius
166161d6d3 ready event will now throw errors properly (#1440) 2017-05-01 08:43:35 +01:00
Amish Shah
892ba67d71 Emit packet handling errors to the error event and not the debug event 2017-05-01 07:56:13 +01:00
SpaceEEC
c5efa985fc Readding Client#disconnect and docs for Client#reconnecting (#1437)
* readded docs for client#reconnecting and client#disconnect

* moved disconnect event emitting and clarified emitting reason
2017-05-01 00:16:02 +02:00
Amish Shah
0754ddbc34 Reset sequence when sessions are invalidated 2017-04-30 22:26:44 +01:00
Amish Shah
e460e5e853 Fix some stuff 2017-04-30 21:01:04 +01:00
Crawl
3cb4aac65a Remove unused util 2017-04-30 13:03:51 +02:00
Amish Shah
edf1a3e7b4 Undeprecate uws and fix support for it 2017-04-30 11:56:24 +01:00
Amish Shah
f20f49388d Simplify data unpack logic 2017-04-30 11:40:16 +01:00
Amish Shah
007b1226c9 Rudimentary support for uws while it is deprecated 2017-04-30 11:36:20 +01:00
Crawl
ac92d2cecc Improve docs a bit 2017-04-30 04:30:44 +02:00
Amish Shah
dd8f77fcf0 Stop the EventEmitter debug warnings when fetching lots of guilds before ready 2017-04-29 17:46:36 +01:00
Amish Shah
584961b04b Debug resume from connection not Client 2017-04-29 15:58:12 +01:00
Amish Shah
195fcfa15c Rewrite WebSocket internals (#1410)
* Start rewriting Manager and Connection

* more stuff

* stuff

* Fix ready bug

* some stuff i forgot

* fix some stuff

* add stupid heartbeat ack like seriously who cares

* woo!

* fix a bug

* rate limit the dumb websocket

* stuff

* hdocs

* Docs

* Remove ClientManager#setupKeepAlive as it is now redundant

* Change Client._pingTimestamp to a getter that fetches the timestamp from the WebSocketConnection

* are you happy now eslint smh

* make gus happy

* Add CloseEvent external doc

* Make sure to emit 'reconnecting' when actually reconnecting

* ffs

* Fix RESUME logic

* Add heartbeat ack debug messages, including latency data

* Dumb stuff for Gus

* thx eslint

* more dumb stuff

* more dumb crap smh gus i h8 u

* moar messages

* fix for using wrong status, causing certain events not to be fired (#1422)
2017-04-28 16:13:06 +01:00
Crawl
53eda09f72 Improve docs 2017-04-24 16:29:29 +02:00
Amish Shah
26069a44e2 nope i was right the first time 2017-04-22 21:23:20 +01:00
Amish Shah
3465a154d5 that should be 60 tbh 2017-04-22 21:20:50 +01:00
Amish Shah
eec79b5fd0 Increase WebSocket backoff time to alleviate reconnect issues 2017-04-22 21:16:58 +01:00
Crawl
27114eebf9 Commit those in LF too 2017-04-19 18:17:23 +02:00
Crawl
1897b4f4d6 Commit those in LF 2017-04-19 18:14:37 +02:00
Schuyler Cebulskie
b7e16ad4b8 Revert "use LF instead of CRLF (#1392)"
This reverts commit 5e522e0a2e.
2017-04-18 22:41:08 -04:00
Gus Caplan
5e522e0a2e use LF instead of CRLF (#1392) 2017-04-18 21:43:05 +01:00
Gus Caplan
0d83f80fc0 Fix endless reconnection bug (#1389) 2017-04-17 12:32:26 +01: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
Gus Caplan
0a56fa0aae websocket cleanup (#1346)
* websocket cleanup

* resume event

* Update Resumed.js

* Update WebSocketManager.js
2017-04-10 20:02:17 +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
Amish Shah
970bfffc46 Fix emoji events (fixes #1333) 2017-04-05 17:05:27 +01:00
Schuyler Cebulskie
136cab240d Add new ESLint rules 2017-03-17 01:23:39 -04:00
Gus Caplan
fa609caee2 remove pako (#1258) 2017-03-16 09:15:48 -04:00
Schuyler Cebulskie
7232531eb1 Move all util methods into class
Remove TransformMessageOptions altogether
2017-02-15 22:25:18 -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
Schuyler Cebulskie
f4724d61b2 Fix #1095 2017-01-30 22:54:37 -05: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
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
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
Amish Shah
7357fc2163 Update typings and increase performance when not listening for presence updates 2017-01-13 19:15:21 +00:00
Gus Caplan
a3091f5262 Handle 4011 ws event code (#1083)
* 4011

* Update WebSocketManager.js

* smh gawdl3y
2017-01-11 22:59:09 +00:00
Gus Caplan
22b1c425ac add ClientUser.settings (#1041)
* add user settings

* Update Ready.js
2016-12-29 18:58:39 +00:00
Amish Shah
7ede44bc00 Add CloseEvent external 2016-12-29 00:27:40 +00:00
Gus Caplan
8d966932a9 funny (#1030) 2016-12-28 01:42:42 -05:00
Schuyler Cebulskie
84991c767e Improve some Gus shenanigans 2016-12-27 22:30:51 -05:00
meew0
14ba0373eb Fix a small spelling mistake in a debug log 2016-12-27 23:16:30 +01:00
Gus Caplan
779681e88f "knock knock. who's there? ack lol. GET OFF MY PORCH!" (#1023) 2016-12-27 17:31:23 +00:00
Gus Caplan
bac4ccead7 "knock, knock. who's there. discord, lol" (#1021) 2016-12-27 12:13:57 +00:00
Gus Caplan
b79533e373 correctly handle invalid session (#1020)
* correctly handle invalid session

* give discord some time, use it wisely
2016-12-27 00:04:09 +00:00
Amish Shah
72c667b307 Fix potential ReferenceError with GuildMembersChunk 2016-12-26 20:20:58 +00:00
Amish Shah
cd657be8be Add functionality for GuildEmoji events 2016-12-26 19:21:00 +00:00
Gus Caplan
2410fdf8d2 fix heartbeats once and for all (#1016) 2016-12-25 16:28:36 +00:00
Gus Caplan
3eca3ba95e add handler in case heartbeat is not acked (#1013)
* add handler in case heartbeat is not acked

* ffs
2016-12-24 11:04:27 +00:00
Gus Caplan
e6a041241b cleanup ws ratelimiting, and apirequest (#957)
* cleanup ws ratelimiting, and apirequest

* cleanup timestamps

* clean up timestamps
2016-12-23 14:37:43 +00:00
Amish Shah
74ef0b2e14 minor fixes 2016-12-23 14:37:35 +00:00
Amish Shah
b518437f52 Emit the close event on disconnect 2016-12-23 13:59:06 +00:00
Gus Caplan
050d3f9303 fix serialize for webpack (#960)
* fix serialize for webpack

* Update WebSocketManager.js

* Update WebSocketManager.js
2016-12-06 23:45:31 -05:00
bdistin
8eff36b744 Fix reconnect when using WS (#952)
* Fix reconnect when using WS

* Add disconnect status (fix reconnect with WS)
2016-12-05 21:06:49 +00:00
Gus Caplan
1e5afc1608 Add etf encoding support with erlpack (#943)
* the performance from this is astounding

* help uws

* save 15 bytes in webpacks

* update readme

* why is markdown like this

* optimizations

* Update WebSocketManager.js
2016-12-02 21:35:59 -05:00
Schuyler Cebulskie
58c7c2e7b8 Add client ping stuff 2016-12-02 20:58:19 -05:00
Amish Shah
1933451d2f fix reconnecting 2016-11-28 16:14:34 +00:00
Hackzzila
6afd80cf53 Make uws a peer dep, and readd ws (#928)
* Make uws a peer dep, and readd ws

* if -> else if
2016-11-27 19:59:50 +00:00
Amish Shah
9323882a8d fix disabledEvents 2016-11-27 12:01:51 +00:00
Schuyler Cebulskie
c683790de7 Remove old uws-specific code (0.11.1 has the good stuff) 2016-11-25 19:40:53 -05:00
Gus Caplan
0008a18deb Fantastic PR #368 by Gus (#921) 2016-11-23 22:16:19 -05:00
Gus Caplan
c91ee7a3e7 Replace ws with uws (#918)
* change to uws (waiting for the next release tho)

* clean up, fix reconnections (maybe)

* change voice to use uws

* so messy
2016-11-23 19:30:00 -05:00
Schuyler Cebulskie
a4193553e2 Optimise websocket events 2016-11-20 23:39:40 -05:00
Schuyler Cebulskie
3ef16f97c4 Remove dynamic requires 2016-11-20 20:52:39 -05:00
Gus Caplan
2440a4a2c8 Add webpack building (#907)
* friggin webpack tho

* probably important

* add all the stuff to the package.json

* add minify builds and a nice package.json script to run it all

* clean up

* use uglify harmony branch so we can actually run minify builds that work

* update build system

* make test better

* clean up

* fix issues with compression

* ‮

* c++ requirements in a node lib? whaaaaat?

* fix travis yml?

* put railings on voice connections

* 🖕🏻

* aaaaaa

* handle arraybuffers in the unlikely event one is sent

* support arraybuffers in resolvebuffer

* this needs to be fixed at some point

* this was fixed

* disable filename versioning if env VERSIONED is set to false

* Update ClientDataResolver.js

* Update ClientVoiceManager.js

* Update WebSocketManager.js

* Update ConvertArrayBuffer.js

* Update webpack.html

* enable compression for browser and fix ws error handler

* Update WebSocketManager.js

* everything will be okay gawdl3y

* compression is slower in browser, so rip the last three hours of my life

* Update Constants.js

* Update .gitignore
2016-11-20 19:38:16 -05:00
Programmix
5ed8098af8 Clean up reactions, add remove all reactions (#890)
* Clean up reactions, add remove all reactions

* Reorganize reactions

* Re-add Gawdl3y's precious little inline

* Update Message.js
2016-11-13 02:29:26 -05:00
Programmix
fe3914658a Grammar cleanup (#875)
This commit:
* fixes inconsistencies (primarily regarding capitalization)
* fixes non-proper nouns that were improperly capitalized
* fixes reminents from not-so-meticulous copy+paste jobs
2016-11-05 23:57:34 +00:00
Programmix
6dc95cd084 Add support for notes (#860)
* Add support for notes

* Ensure consistency with notes from ready payload

* Add getter method for users

* Minor tweaks

* Update warning messages

* More minor fixes
2016-10-30 23:06:09 -04:00
Schuyler Cebulskie
8306d50bd8 Clean up a bunch of promise stuff 2016-10-30 12:47:17 -04:00
Amish Shah
81059885a2 Start work on adding reaction support 2016-10-27 15:22:42 +01:00
Amish Shah
35ac80024a Rename some events (mainly guild events) 2016-10-26 15:52:40 +01:00
Amish Shah
0f8e8dddff fix presence updating 2016-10-25 21:40:53 +01:00
Amish Shah
f3439dcf6d Merge remote-tracking branch 'origin/indev' into indev-voice 2016-10-23 14:46:41 +01:00
Gus Caplan
422b90c711 add way more friend shit (#815) 2016-10-22 16:25:55 -04:00
Gus Caplan
e04dbbdb82 add clientuser#friends (#807)
* add client#friends

* Update Ready.js

* Update Client.js

* move friends to client.user

* Update ClientUser.js

* Update ClientUser.js
2016-10-16 21:28:17 -04:00
Schuyler Cebulskie
fc307fab8a Remove unnecessary array conversions 2016-10-16 21:14:59 -04:00
Schuyler Cebulskie
13aae621b8 Fix Hyper's error and make it more useful 2016-10-16 20:58:03 -04:00
Schuyler Cebulskie
492f706035 Fix Gus' log messages 2016-10-13 20:05:07 -04:00
Gus Caplan
96355a4968 add constants, some debug stuff (#791)
* add constants, some debug stuff

* i can't believe i did this
2016-10-10 20:53:54 +01:00
Schuyler Cebulskie
dabe51fc8d Reorganise disabledEvents stuff 2016-10-09 14:41:57 -04:00
Programmix
3e2d6ccc48 Convert disabledEvents Array to Object (#786)
* Convert disabledEvents Array to Object

Increased performance

* Commit to please Lord Gawdl3y

* Nitpick with chopsticks
2016-10-09 14:22:52 -04:00
Programmix
4653f88555 Add disabledEvents option to Client (#784) 2016-10-09 18:27:31 +01:00
Schuyler Cebulskie
79b0d3f2a5 Client.readyTime -> readyAt (consistency) 2016-10-06 21:48:25 -04:00
Amish Shah
c286c1443f voice rewrite part 1 2016-10-01 22:23:00 +01:00
Amish Shah
530035e14b Fix stacked heartbeats on reconnect and fix documentation 2016-10-01 20:21:38 +01:00
Amish Shah
7c26603773 Fix presences probably ¯\_(ツ)_/¯ 2016-10-01 15:27:56 +01:00
Amish Shah
cda31dd224 Fix a potential bug some people have in retrieving endpoints 2016-09-28 18:03:30 +01:00
Gus Caplan
aed75e1f9a Add full guild emoji functionality (#749)
* all the emoji stuff

* fix things for hydra 😘

* feck i need to stop committing on github

* update docs again

* Butts
2016-09-27 20:44:09 -04:00
Schuyler Cebulskie
ba8dd3467a Switch config back to camelCase 2016-09-27 18:42:32 -04:00
Amish Shah
0ee3d6bb8a fix sequences not being reset on new ws sessions 2016-09-27 20:10:42 +01:00
Amish Shah
045153584a redo the client user presence stuff 2016-09-27 17:57:47 +01:00
Schuyler Cebulskie
36f4df2931 Capitalise two letters 2016-09-26 23:18:39 -04:00
Amish Shah
534d7af8c3 Fix resuming sessions (fixes #699) 2016-09-25 15:03:54 +01:00
Amish Shah
03651fd6e3 Change how presences are handled 2016-09-25 14:16:03 +01:00
Gus Caplan
bd1449bc5a make login sane (#735) 2016-09-24 17:55:31 +01:00
Gus Caplan
e0b614c3b2 weee add clyde because we all love clyde (#716)
* update to work with clyde's avatar image ;)

* add clyde to user cache on ready

* Update Ready.js

* Update Ready.js
2016-09-19 14:56:52 -04:00
Schuyler Cebulskie
47d873a8ca Move and improve debug/warn docs 2016-09-19 05:11:35 -04:00
Schuyler Cebulskie
6a94658dd7 Clean up some stuff 2016-09-19 04:32:24 -04:00
Schuyler Cebulskie
7d8667694d Fix massive timeout/interval memory leaks 2016-09-19 03:49:42 -04:00
Gus Caplan
7cb2e8eef7 add disconnect event, document warn and debug events (#702)
* add documentation for events, and add a disconnect event, because i know people use that

* generate docs, and fix a hastily copied docstring

* fix permissions freak out
2016-09-14 00:12:10 -04:00
Amish Shah
f7e89f61e6 Fix channelCreate being emitted twice - fixes #698 2016-09-13 20:00:00 +01:00
Amish Shah
f0a9a1353f prevent further user inaccuracies 2016-09-11 16:57:09 +01:00
Amish Shah
af33b2b5bb fix #684 2016-09-11 12:38:57 +01:00
Amish Shah
5b8f882a0f fix avatars being set to undefined 2016-09-11 11:50:19 +01:00
Schuyler Cebulskie
47d71d32f3 Make grammer gooder 2016-09-11 01:40:37 -04:00
Schuyler Cebulskie
a5a269b940 Fix Hydra's ESLint failure 2016-09-10 12:42:04 -04:00
Amish Shah
fd564176ff Have block in place for rare weird typing in voice channel bug 2016-09-10 17:28:51 +01:00
Amish Shah
84fe65ec78 Fix members being recreated after leaving - fixes #667 2016-09-10 11:38:48 +01:00
Amish Shah
dd623891e2 websocket should silently error if there are no listeners for error 2016-09-09 17:05:38 +01:00
Amish Shah
85fae72b7b Fix #657 2016-09-09 16:23:07 +01:00
Schuyler Cebulskie
465ff074e1 Prevent Guild.fetchMember from messing with fetchMembers 2016-09-07 23:12:36 -04:00
Schuyler Cebulskie
f185d892c7 Fix two more lines to use new typing map
And a tiny text fix
2016-09-07 00:58:19 -04:00
Schuyler Cebulskie
b7f582b7f0 Clean up a bunch of stuff
- Channel typing data is now a Map
- Client properties on structures are now non-enumerable and
non-configurable
2016-09-07 00:24:45 -04:00
Amish Shah
7475f734ac Add debug stuff 2016-09-04 12:31:16 +01:00
Amish Shah
906672e538 Merge branch 'indev-rewrite-sharding' into indev-rewrite 2016-09-04 12:17:42 +01:00
Amish Shah
1155c482f1 make client.readyTime a date 2016-09-04 11:55:23 +01:00
Amish Shah
9c915d1e0a Fix constants errors not giving a stacktrace 2016-09-04 11:53:48 +01:00
Schuyler Cebulskie
0b908f5bce Cleanup Part 2: Electric Boogaloo (Reloaded) (#594)
* Cleanup Part 2: Electric Boogaloo (Reloaded)

* Moar cleanup

* Tweak NOT_A_PERMISSION error
2016-09-04 10:08:09 +01:00
Schuyler Cebulskie
59a5862f2d Clean up Actions code (#591) 2016-09-03 22:48:51 +01:00
Amish Shah
7ff2568cfc Fix collectors and make guild sync add previously unknown members 2016-09-03 21:21:15 +01:00
Amish Shah
09dee3d46a Fix ready never firing for truly unavailable guilds 2016-09-03 21:10:10 +01:00
Schuyler Cebulskie
68acf37fd4 Add stricter/better ESLint config (#589)
* Add stricter/better ESLint config

* Remove more unnecessary @returns
2016-09-03 20:45:23 +01:00
Amish Shah
a172fffd76 Actually add GUILD_SYNC 2016-09-03 17:59:16 +01:00
Schuyler Cebulskie
27652b94af Make JSDocs follow general conventions (#582)
* Make JSDocs follow usual conventions

* Fix StringResolvable name

* Make function lowercase
2016-09-03 09:57:25 +01:00
Amish Shah
c70dfa83fb Add ShardManager 2016-08-30 17:26:32 +01:00
Amish Shah
680ac48e3d Emit error instead of console.log 2016-08-30 14:06:16 +01:00
Amish Shah
d249aa10cc Add client.destroy(); 2016-08-30 13:05:57 +01:00
Amish Shah
144638e746 Experimental ClientOptions.fetch_all_members 2016-08-29 13:54:35 +01:00
Amish Shah
001460acc0 Add guild.fetchMembers() 🎉🎉 2016-08-29 13:20:06 +01:00
Amish Shah
a91fcd5cab Add ChannelPinsUpdate event 2016-08-28 18:50:55 +01:00
Amish Shah
22062f1f86 Added guild.unban 2016-08-27 22:31:21 +01:00
Amish Shah
642d768cdc Add textBasedChannel.bulkDelete() 2016-08-26 22:13:27 +01:00
Amish Shah
baff7a094c Merge remote-tracking branch 'origin/indev-rewrite' into indev-rewrite-voice 2016-08-25 14:26:38 +01:00
Amish Shah
8683f45816 errory voice 2016-08-24 21:38:52 +01:00
Hyper-Coder
7892e62604 Added Client.uptime (#533)
* Added Client.uptime

* Added Client.uptime

* Update Client.js
2016-08-24 17:16:22 +01:00
Amish Shah
48444a5444 Fix voice channel members 2016-08-23 22:34:51 +01:00