Commit graph

224 commits

Author SHA1 Message Date
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
Amish Shah
328f3c4ae8 Add VoiceConnection.disconnect([reason]); 2016-08-23 21:47:41 +01:00
Amish Shah
d8b1ef47cd voice setup waits for all data 2016-08-23 18:29:53 +01:00
Amish Shah
fa085c18cd Handle Voice Server Update events 2016-08-23 17:52:40 +01:00
Amish Shah
0edf838474 more voice stuff 2016-08-23 16:59:38 +01:00
Amish Shah
c8be80abd7 Add support to recognise 4004 codes and throw an error 2016-08-23 15:09:03 +01:00
Amish Shah
3fded1d7af Add Sharding Support! 2016-08-22 21:31:43 +01:00
Amish Shah
ac7c543dfe Fix doc gen 2016-08-21 17:47:16 +01:00
Amish Shah
65350348a8 Document all the events 2016-08-20 00:15:09 +01:00
Amish Shah
d2cba74c13 Remove unused variable to pass ESLint test 2016-08-19 22:35:46 +01:00
Amish Shah
8d5d90e222 Remove all data stores! Move to maps 2016-08-19 22:35:03 +01:00
Amish Shah
82ab92ca2a Migrate most of the Client Data Store to Clien 2016-08-19 22:21:34 +01:00
Amish Shah
ad8b4c7698 Remove WebSocket datastore - move directly to WebSocketManager 2016-08-19 21:37:27 +01:00
Amish Shah
bd50e3c0a5 Remove VoiceChannel store and add members map 2016-08-19 21:29:07 +01:00
Amish Shah
ed818d6e7f Remove GuildDataStore and move towards storing data in Maps 2016-08-19 19:58:37 +01:00
Amish Shah
dcba580d89 Implement Sequential Rate Limiting 2016-08-19 18:01:28 +01:00
Amish Shah
392133f927 document websocketmanager 2016-08-19 14:14:30 +01:00
Amish Shah
a2f8680514 Fix protocol versions 2016-08-13 16:23:24 +01:00
Amish Shah
50af835774 Move to v6 protocol 2016-08-13 14:53:04 +01:00
Amish Shah
b8db4c4f4b ESLint stuff... 2016-08-13 14:44:49 +01:00
Amish Shah
0d53afe3ce Added ability to edit a role 2016-07-03 16:27:04 +01:00
Amish Shah
3cd91a19aa Added role.delete() 2016-07-03 13:04:39 +01:00
Amish Shah
849b8df2da Added guild.createRole() 2016-07-02 21:28:49 +01:00
Amish Shah
bbf0b0683a Added guild.kick(member) and member.kick() 2016-07-02 17:50:44 +01:00
hydrabolt
fb49ad7d93 Fix Message Sending and Support New Features. The library now supports
all the game streaming and URL stuff and is fixed for roles #328

src/client/websocket/packets/handlers/PresenceUpdate.js
2016-05-07 15:35:42 +01:00
hydrabolt
ab17375248 Added GuildUpdate handling, and setting guilds details 2016-05-03 16:42:38 +01:00
hydrabolt
ebfc2169d5 Added ClientUser modification support 2016-05-01 21:12:42 +01:00
hydrabolt
f95c588d87 Added Guild Deletion 2016-05-01 14:51:46 +01:00
hydrabolt
90cf787759 I think I got ChannelUpdate working?? 2016-04-30 18:22:09 +01:00
hydrabolt
2341c83638 Added channel.delete() 2016-04-27 16:25:57 +01:00
hydrabolt
b436fac5c4 Fix presence update bug (#297) 2016-04-26 17:46:34 +01:00
hydrabolt
2d3116d505 Added guild.createChannel(name, type) 2016-04-26 17:44:42 +01:00
hydrabolt
e9d7dfaee3 Added message.edit(content) 2016-04-24 17:30:58 +01:00
hydrabolt
1676a5e73f Bridged WebSocket Events and REST Requests. Now REST Requests will respond exactly like WS Events to data 2016-04-24 16:30:58 +01:00
hydrabolt
f3e1760538 add channel.sendMessage and channel.sendTTSMessage 2016-04-21 17:42:52 +01:00
hydrabolt
b8283a8f29 src/client/websocket/packets/WebSocketPacketManager.js
Unify ready and reconnecting properties into a single status property
and future-proof Message class
The state of the WebSocketManager is now represented by a single
status property, removing emittedReady
and reconnecting as representations of state.
Message class will now also cache users it isn't aware of that appear
in mentions and authors.
2016-04-20 17:45:20 +01:00
hydrabolt
acc9c9bf12 src/client/websocket/packets/WebSocketPacketManager.js
src/structures/datastore/WebSocketManagerDataStore.js
Added "rough" reconnection attempting
The following however still needs to be done:
1) stop trying after a certain amount of time
2) increasing timeout between each timeout
3) re-evaluate the current method of how reconnecting is handled
internally
2016-04-19 20:24:23 +01:00
hydrabolt
00327a5776 Add MessageUpdate handling 2016-04-18 18:12:57 +01:00
hydrabolt
d437fd31cf MessageDelete handling 2016-04-18 18:06:31 +01:00
hydrabolt
c947e172d6 Add MessageCreate handler, set up Message class and add ability to Cache messages 2016-04-18 17:55:21 +01:00
hydrabolt
c36cc3b551 Added GuildMembersChunk handler; untested 2016-04-18 16:54:14 +01:00
hydrabolt
ce2cf382b3 TypingStart handler 2016-04-18 16:39:57 +01:00
hydrabolt
d1d13f5c85 Added VoiceStateUpdate handler and DataStore for VoiceChannels. Also added toString methods to Guilds, DMChannels, ServerChannels and Users. 2016-04-17 19:12:29 +01:00
hydrabolt
685d7b622c Fix READY bug when logging in with email/password, add UserUpdate packet handler 2016-04-17 18:37:15 +01:00
hydrabolt
abc3f9e2fa Presence tracking 2016-04-17 18:20:57 +01:00
hydrabolt
bbf7be7dfa Tracking of GUILD_ROLE_CREATE/UPDATE/DELETE events 2016-04-17 15:17:18 +01:00
hydrabolt
30f5e2943a Create Member class, stop storing member data separately and merge into one class with a User 2016-04-16 23:24:52 +01:00
hydrabolt
9956e43c8e initial 2016-04-16 22:58:49 +01:00