Commit graph

218 commits

Author SHA1 Message Date
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
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
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
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
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
Amish Shah
33de408a70 fix bulk delete endpoint 2017-03-04 00:35:54 +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
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
Gus Caplan
61e12c637b Add support for more OAuth features (#1203) 2017-02-22 20:09:40 +00:00
Schuyler Cebulskie
8d1bc30e40 Clean up dd6dd6f 2017-02-21 15:07:54 -05:00
Schuyler Cebulskie
7232531eb1 Move all util methods into class
Remove TransformMessageOptions altogether
2017-02-15 22:25:18 -05: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
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
bdistin
a2d6791cd8 Fix CodeBlock Splitting (#1160)
* Fix CodeBlock Splitting

* fix changes requested
2017-02-01 15:31:57 -05:00
Alex
ed42d7bd85 Fix backwards GuildEmojiCreate parameters (#1153) 2017-01-31 00:49:11 -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
Digitroinc
448c93615b fix splitting messages #1148)
* fix for issue #1120

* build fix
2017-01-29 18:58:35 +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
c73e501243 Fix RESTMethods.removeMessageReaction (fixes #1114) (#1126) 2017-01-21 19:48:17 -05:00
Gus Caplan
0300601649 remove redundant editing (#1116)
* remove redundant editing

* update docs
2017-01-19 17:11:24 +00: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
Gus Caplan
48be401330 add clientuser acceptinvite (#1081)
* add clientuser acceptinvite

* Update RESTMethods.js

* Update ClientUser.js

* Update ClientUser.js

* Update RESTMethods.js
2017-01-14 21:25:12 +00:00
Gus Caplan
7f4846c826 Add option to filter old messages in TextBasedChannel#bulkDelete (#1090)
* add filtering for messages older than two weeks

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update TextBasedChannel.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update TextBasedChannel.js
2017-01-14 16:21:23 -05:00
Gus Caplan
78bf402e8e allow users and members to not be cached (#1097) 2017-01-14 21:20:09 +00:00
Gus Caplan
0d4eab8d24 add color resolvable, and color constants from the client (#1080)
* add color resolvable, and color constants from the client

* fix up docs

* Update ClientDataResolver.js

* add easter eggs

* Update ClientDataResolver.js

* Update RESTMethods.js
2017-01-12 18:43:22 +00:00
Schuyler Cebulskie
5caa7df1d8 Add centralised reply option to message options 2017-01-10 19:25:05 -05:00
Gus Caplan
c37cd3fd91 clean up webhooks and fix sending messages with webhooks (#1078)
* clean up webhooks and fix sending messages with webhooks

* whoops

* fix up options

* Update Webhook.js

* Update Webhook.js

* Update Webhook.js
2017-01-10 16:52:12 -05:00
Gus Caplan
5e7ae847de switch to proper querystring parser because why not (#1077) 2017-01-08 14:49:56 -05:00
Gus Caplan
d47f9d202b update search to have more useful returns (#1060) 2017-01-03 23:49:19 +00:00
Amish Shah
4c8e4fde6f Fix remove reaction endpoint 2016-12-30 18:31:48 +00:00
Amish Shah
50dc9addf1 Fix ESlint error, remove 'long' module import 2016-12-30 17:28:23 +00:00
Gus Caplan
bde6749d65 clean up search (#1049)
* add more search stuff

* clean up the options

* fix link hostname

* use some resolvers

* fix type

* move the trasform to a seperate file

* pass this param

* move typedef
2016-12-30 17:21:03 +00:00
Gus Caplan
da32c2ec3d add more search stuff (#1046)
* add more search stuff

* clean up the options

* fix link hostname

* use some resolvers

* fix type
2016-12-30 17:14:31 +00:00
Gus Caplan
beffb390e6 Add search (#1043)
* add search

* Update ClientDataResolver.js
2016-12-30 02:44:19 -05:00
Schuyler Cebulskie
86ffc86324 Update updateMessage with the new code logic 2016-12-29 10:49:59 -05:00
Schuyler Cebulskie
650acbf662 Improve codeblock lang 2016-12-29 10:44:24 -05:00
Amish Shah
75d45bd587 Fix sending codeblocks without a lang 2016-12-29 14:18:39 +00:00
Gus Caplan
ed8fcf651a Centralise message sending logic in one method, remove sendTTSMessage, add client shortcut in RESTMethods (#1031)
* start wip rewrite of sending/editing messages

* pass the build, modify the edit method to fit the new system

* simplify the applyToClass method

* change handling of file options

* add back message splitting

* i couldn't help myself

* add some smart message options

* clean up, add sexy options

* fix indentation

* fix up splitting

* add \b

* add back old methods for hydar happiness

* clean up more

* move code handling to the rest method

* clean up this.rest.client

* Update TextBasedChannel.js

* add docs back for the bad methods

* fix reply in group dms

* srsly gawdl3y

* make code better

* fix changes for gawdl3y

* fix checking

* remove getter

* make code handling more robust

* k

* fix up sendEmbed docs

* stupid

* fix up more docs because aaaaa

* no more pls
2016-12-28 23:58:30 -05:00
Gus Caplan
cecb0aee02 Update User#setEmail/setPassword/setUsername (#991)
* fix some things with user updates and tokens and such

* fix stupid

* Update ClientUser.js

* Update ClientUser.js
2016-12-22 15:12:29 -05:00
Gus Caplan
e392107369 add ClientUser#fetchMentions (#999)
* add ClientUser#fetchMentions

Signed-off-by: Gus Caplan <gus@localhost.localdomain>

* ugh

* Update ClientUser.js

* Update ClientUser.js

* Update ClientUser.js
2016-12-19 02:16:27 -05:00
Will Nelson
736fa7c611 friendlier notification of an invalid token (#997)
* friendlier notification of an invalid token

* fixed

* even fixeder

* no token -> invalid token

* eslint

* Update RESTMethods.js
2016-12-17 13:22:39 -05:00
Gus Caplan
a20bac7258 update per issue 69 on the h&c github (#963)
* update per issue 69 on the h&c github

* clean up things that don't exist anymore
2016-12-15 16:32:19 +00:00
Gus Caplan
d766e727a1 add GuildChannel#clone (#973)
* add GuildChannel#clone

* e
2016-12-11 09:07:52 +00:00
Gus Caplan
e51fed968d hydarplz (#962) 2016-12-09 20:47:56 +00:00
Will Nelson
275d9d3ce0 fix remove reactions return (#961) 2016-12-07 10:12:00 -05:00
Gus Caplan
d67ecdd2af fix authenticating role updates (#956)
* Update RESTMethods.js

* Update RESTMethods.js
2016-12-06 17:23:40 +00:00
Gus Caplan
638e51a18c support new guild member role endpoints for cleaner role updates (#901)
* support new roles endpoints

* use promise chaining

* properties man

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js

* Update RESTMethods.js
2016-12-02 23:46:55 -05: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
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
Schuyler Cebulskie
49fdc331a7 Fix formatting 2016-11-17 02:49:24 -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
Gus Caplan
27270a3bad add embed support! (#894)
* add embed support!

* document message embeds

* make gawdl3y happy

* make edit great again

* make docs better

* Update Message.js

* Update TextBasedChannel.js

* Update TextBasedChannel.js
2016-11-13 01:05:13 -05:00
Programmix
9a61de1493 Document GuildChannel.edit, add VoiceChannel.setUserLimit, fix typo (#866) 2016-11-01 01:42:05 -04: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
85330769a7 Refactor OAuth application stuff 2016-10-30 16:55:08 -04:00
Schuyler Cebulskie
60e0d507f0 Clean up nearly all promises to utilise chaining, other small fixes 2016-10-30 16:27:28 -04:00
Schuyler Cebulskie
8306d50bd8 Clean up a bunch of promise stuff 2016-10-30 12:47:17 -04:00
Hackzzila
c9dbf1f7f0 OAuth info stuff (#849)
* OAuth info stuff

* fix docs

* oops
2016-10-27 21:50:04 +01:00
Amish Shah
9cba1bc6d0 remove users from message reactions 2016-10-27 17:16:40 +01:00
Amish Shah
dd9c291508 Add reaction fetching of users 2016-10-27 16:58:06 +01:00
Amish Shah
81059885a2 Start work on adding reaction support 2016-10-27 15:22:42 +01:00
Amish Shah
5e2ee2398e Fix some destroy stuff (#828) 2016-10-26 19:42:21 +01:00
Amish Shah
7d04863b66 Revert "fix Client.destroy bugs" (#839) 2016-10-26 17:30:18 +01:00
Gus Caplan
c6bcf69dc3 added User#fetchProfile (#835)
* add User#fetchProfile

* fix merge conflicts?
2016-10-26 16:23:39 +01:00
Gus Caplan
60a911e4a0 add clientUser#createGuild (#832)
* add clientUser#createGuild merge docs

* almost caused a memory leak!

* muh triggers
2016-10-26 15:59:15 +01:00
isonmad
e9fa8a438c fix Client.destroy bugs (#828)
* add test for Client.destroy()

* propagate errors in ClientManager.destroy

If the promise returned by logout() rejects, previously
it would be completely uncaught, and just return an
eternally pending promise that never resolved.

* fix RESTMethods.logout

Without a data argument, the POST that superagent sends causes
the discord server to reply with a HTTP 400 error:

text: '{"Content-Type": "Expected Content-Type to be one of set([\'application/json\'])."}',

* fix Client.destroy

_timeouts and _intervals were changed to Set objects in
commit 6ede7a32fd a month ago.

Changing them to arrays causes failures if you try to reuse
the client object again.

* always close websocket in ClientManager.destroy

Invoking logout does not implicitly cause the server to close
the websocket for you, so cleanup everything.

Otherwise the websocket being open keeps node alive and hanging
mysteriously until the connection hits a timeout.

* fix indentation for eslint
2016-10-26 14:49:45 +01:00
Amish Shah
968883ec35 Merge branch 'indev' of https://github.com/hydrabolt/discord.js into indev 2016-10-26 14:19:39 +01:00
Amish Shah
0c4a4023ce Fix setting guild role positions (#751) 2016-10-26 14:19:36 +01:00
Schuyler Cebulskie
c96d5ad30e Optimise everyone/here replacing 2016-10-25 19:01:56 -04:00
Amish Shah
21533eec5b fix banning probably hopefully 2016-10-23 20:51:04 +01:00
Gus Caplan
422b90c711 add way more friend shit (#815) 2016-10-22 16:25:55 -04:00
Gus Caplan
9c8eb2dfc3 lets all be friendly! (#809)
* lets all be friendly!

* fix doc

* Update ClientUser.js

* Update ClientUser.js
2016-10-18 01:36:25 -04:00
Schuyler Cebulskie
0b5ef296cb Fix split messages resolving with multiple of the same message 2016-10-15 20:23:32 -04:00
Schuyler Cebulskie
8f0e2e0c56 Make token "Bot" removal more lenient
In case of heavy user error. :)
2016-10-14 02:14:00 -04:00
Schuyler Cebulskie
e4636243b2 Improve token "Bot" removal 2016-10-14 02:11:31 -04:00
Gus Caplan
853a3dfa04 Add getRecommendedShards and automatic shard count in ShardingManager (#796)
* draft stuff

fix docstring for Client#token

Reorganise resolver

make env better for shards, clean up docs

Fix Gus' log messages

7

meh just gateway/bot not v7 :(

final changes, ready for mergin!

build docs

make default totalShards 'auto', fix docs for totalShards type

clean up docs more

run docs

* make consistancy real

* Update and rename getRecommendedShards.js to GetRecommendedShards.js

* Update GetRecommendedShards.js

* Update index.js

* Update RESTMethods.js

* Update Shard.js

* Update GetRecommendedShards.js

* Update ShardingManager.js

* run docs
2016-10-13 23:26:10 -04:00
Gus Caplan
32eeb8ad5e Fix feature/login (#790)
* eeeeeeee

* too tired

* ok gawdl3y

Signed-off-by: Gus Caplan <fluffyrobotcheese@gmail.com>
2016-10-10 02:55:09 -04:00
Gus Caplan
5ddefc3682 fix webhook#edit (#789)
* fix webhook#edit

* hehe
2016-10-10 02:54:46 -04:00
Gus Caplan
e48d7d52f1 add webhook#sendSlackMessage (#788) 2016-10-10 01:56:18 -04:00
Schuyler Cebulskie
29b33bffaa Rearrange and clean up more webhook stuff 2016-10-09 15:50:50 -04:00
Gus Caplan
1c4ed4547f adds new WebhookClient and allows you to fetch channel webhooks and such without being "over the top" (#768)
* start blocking out client

* proto webhookclient

* wee working webhooks

* it's all working

* run docs

* fix jsdoc issues

* add example for webhookClient

* add example in the examples place

* fix docs
2016-10-07 19:09:41 +01:00
Schuyler Cebulskie
77e37b62ef Fix sendMessage with no content and split/disableEveryone 2016-10-02 11:14:32 -04:00
Schuyler Cebulskie
8945344a3b Improve role position updating (allows for <=0) 2016-09-30 22:51:37 -04:00
Schuyler Cebulskie
c2c477834f Add Role.setMentionable 2016-09-30 22:48:25 -04:00
Schuyler Cebulskie
543e814f8e Move protocol version to a constant, and reorganise constants a bit 2016-09-30 02:45:16 -04: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
Gus Caplan
c8761d72de add guild emoji methods (#742)
* add guild emoji methods

* run docs

* crawl pointed out some things about the docs, so i fixed

* actually run the docs on the changes 🤦
2016-09-26 21:39:07 +01:00
Gus Caplan
15d7f8e2fe Add Guild#prune (#723)
* make all changes neat

* run docs build
2016-09-21 15:57:14 -04:00
Schuyler Cebulskie
6a94658dd7 Clean up some stuff 2016-09-19 04:32:24 -04:00