From 7357fc21631e5236fd065c468b4700338bf2e3d3 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Fri, 13 Jan 2017 19:15:21 +0000 Subject: [PATCH 1/9] Update typings and increase performance when not listening for presence updates --- src/client/websocket/packets/handlers/PresenceUpdate.js | 4 ++++ typings | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/client/websocket/packets/handlers/PresenceUpdate.js b/src/client/websocket/packets/handlers/PresenceUpdate.js index 09d78a01b..6e70639a8 100644 --- a/src/client/websocket/packets/handlers/PresenceUpdate.js +++ b/src/client/websocket/packets/handlers/PresenceUpdate.js @@ -36,6 +36,10 @@ class PresenceUpdateHandler extends AbstractHandler { client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, member); } if (member) { + if (client.listenerCount(Constants.Events.PRESENCE_UPDATE) === 0) { + guild._setPresence(user.id, data); + return; + } const oldMember = cloneObject(member); if (member.presence) { oldMember.frozenPresence = cloneObject(member.presence); diff --git a/typings b/typings index 14c4b674c..3dbeb51fd 160000 --- a/typings +++ b/typings @@ -1 +1 @@ -Subproject commit 14c4b674cfab537277e80ce57b8b68717e4055d1 +Subproject commit 3dbeb51fd2a0ec0ca87c4ddcf20c1c1498633762 From fa85da19a8b117ab1d801a0fa0031d9026b10dad Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 20:23:44 -0500 Subject: [PATCH 2/9] Fix Travis builds continuing after failed lint --- .travis.yml | 1 - deploy/deploy.sh | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6bdf028d3..e1f264647 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ cache: - node_modules install: npm install script: - - npm run lint - bash ./deploy/deploy.sh env: global: diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 97b3539bc..0724f03e5 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -4,12 +4,14 @@ set -e function tests { + npm run lint npm run test-docs VERSIONED=false npm run web-dist exit 0 } function build { + npm run lint npm run docs VERSIONED=false npm run web-dist } From af6c8fa4a4ecf6a26d1e22e7c8d3c9bb85c0683a Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 20:39:03 -0500 Subject: [PATCH 3/9] Make Travis builds skip revert branches --- deploy/deploy.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 0724f03e5..48b36d30d 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -16,9 +16,15 @@ function build { VERSIONED=false npm run web-dist } -# Only run tests for PRs +# For revert branches, do nothing +if [[ "$TRAVIS_BRANCH" == revert-* ]] + echo -e "\e[36m\e[1mBuild triggered for reversion branch \"$TRAVIS_BRANCH\" - doing nothing." + exit 0 +fi + +# For PRs, only run tests if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo -e "\e[36m\e[1mBuild triggered for PR #$TRAVIS_PULL_REQUEST to branch $TRAVIS_BRANCH - only running tests." + echo -e "\e[36m\e[1mBuild triggered for PR #$TRAVIS_PULL_REQUEST to branch \"$TRAVIS_BRANCH\" - only running tests." tests fi @@ -31,7 +37,7 @@ else SOURCE=$TRAVIS_BRANCH fi -# Only run tests for Node versions other than 6 +# For Node != 6, only run tests if [ "$TRAVIS_NODE_VERSION" != "6" ]; then echo -e "\e[36m\e[1mBuild triggered with Node v$TRAVIS_NODE_VERSION - only running tests." tests From 63c8b1b2f268b97571894ed0e176f4bcc6ca903d Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 21:11:08 -0500 Subject: [PATCH 4/9] Add more info to build commit messages --- deploy/deploy.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 48b36d30d..75b327335 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -18,28 +18,30 @@ function build { # For revert branches, do nothing if [[ "$TRAVIS_BRANCH" == revert-* ]] - echo -e "\e[36m\e[1mBuild triggered for reversion branch \"$TRAVIS_BRANCH\" - doing nothing." + echo -e "\e[36m\e[1mBuild triggered for reversion branch \"${TRAVIS_BRANCH}\" - doing nothing." exit 0 fi # For PRs, only run tests if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo -e "\e[36m\e[1mBuild triggered for PR #$TRAVIS_PULL_REQUEST to branch \"$TRAVIS_BRANCH\" - only running tests." + echo -e "\e[36m\e[1mBuild triggered for PR #${TRAVIS_PULL_REQUEST} to branch \"${TRAVIS_BRANCH}\" - only running tests." tests fi # Figure out the source of the build if [ -n "$TRAVIS_TAG" ]; then - echo -e "\e[36m\e[1mBuild triggered for tag \"$TRAVIS_TAG\"." + echo -e "\e[36m\e[1mBuild triggered for tag \"${TRAVIS_TAG}\"." SOURCE=$TRAVIS_TAG + SOURCE_TYPE="tag" else - echo -e "\e[36m\e[1mBuild triggered for branch \"$TRAVIS_BRANCH\"." + echo -e "\e[36m\e[1mBuild triggered for branch \"${TRAVIS_BRANCH}\"." SOURCE=$TRAVIS_BRANCH + SOURCE_TYPE="branch" fi # For Node != 6, only run tests if [ "$TRAVIS_NODE_VERSION" != "6" ]; then - echo -e "\e[36m\e[1mBuild triggered with Node v$TRAVIS_NODE_VERSION - only running tests." + echo -e "\e[36m\e[1mBuild triggered with Node v${TRAVIS_NODE_VERSION} - only running tests." tests fi @@ -72,7 +74,7 @@ cd out git add . git config user.name "Travis CI" git config user.email "$COMMIT_AUTHOR_EMAIL" -git commit -m "Docs build: ${SHA}" || true +git commit -m "Docs build for ${SOURCE_TYPE} ${SOURCE}: ${SHA}" || true git push $SSH_REPO $TARGET_BRANCH # Clean up... @@ -92,5 +94,5 @@ cd out git add . git config user.name "Travis CI" git config user.email "$COMMIT_AUTHOR_EMAIL" -git commit -m "Webpack build: ${SHA}" || true +git commit -m "Webpack build for ${SOURCE_TYPE} ${SOURCE}: ${SHA}" || true git push $SSH_REPO $TARGET_BRANCH From 1e76f519dcdb9512b9d710e2bf430fa4cadda753 Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 21:13:54 -0500 Subject: [PATCH 5/9] Add missing then --- deploy/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 75b327335..1ad30ac08 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -17,7 +17,7 @@ function build { } # For revert branches, do nothing -if [[ "$TRAVIS_BRANCH" == revert-* ]] +if [[ "$TRAVIS_BRANCH" == revert-* ]]; then echo -e "\e[36m\e[1mBuild triggered for reversion branch \"${TRAVIS_BRANCH}\" - doing nothing." exit 0 fi From ee1c343d78740eaf7276f8e1c0afc40cd875468d Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 21:26:25 -0500 Subject: [PATCH 6/9] Update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index bae0290b1..43386b460 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "homepage": "https://github.com/hydrabolt/discord.js#readme", "runkitExampleFilename": "./docs/examples/ping.js", "dependencies": { - "@types/node": "^6.0.0", + "@types/node": "^7.0.0", "long": "^3.2.0", "pako": "^1.0.0", "superagent": "^3.3.0", @@ -46,10 +46,10 @@ }, "devDependencies": { "discord.js-docgen": "hydrabolt/discord.js-docgen", - "eslint": "^3.12.0", + "eslint": "^3.13.0", "parallel-webpack": "^1.6.0", "uglify-js": "mishoo/UglifyJS2#harmony", - "webpack": "2.2.0-rc.3" + "webpack": "2.2.0-rc.4" }, "engines": { "node": ">=6.0.0" From df02eee065ba0de674e3f12f019000f24b78154e Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 21:47:47 -0500 Subject: [PATCH 7/9] Fix Guild#large not being accurate for user accounts --- src/client/actions/GuildSync.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/client/actions/GuildSync.js b/src/client/actions/GuildSync.js index 7b94ec83c..3d3a47b38 100644 --- a/src/client/actions/GuildSync.js +++ b/src/client/actions/GuildSync.js @@ -6,20 +6,22 @@ class GuildSync extends Action { const guild = client.guilds.get(data.id); if (guild) { - data.presences = data.presences || []; - for (const presence of data.presences) { - guild._setPresence(presence.user.id, presence); + if (data.presences) { + for (const presence of data.presences) guild._setPresence(presence.user.id, presence); } - data.members = data.members || []; - for (const syncMember of data.members) { - const member = guild.members.get(syncMember.user.id); - if (member) { - guild._updateMember(member, syncMember); - } else { - guild._addMember(syncMember, false); + if (data.members) { + for (const syncMember of data.members) { + const member = guild.members.get(syncMember.user.id); + if (member) { + guild._updateMember(member, syncMember); + } else { + guild._addMember(syncMember, false); + } } } + + if ('large' in data) guild.large = data.large; } } } From f647eb7a913bde9cfcad6c09d33ac726562ec1f7 Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Fri, 13 Jan 2017 22:55:10 -0500 Subject: [PATCH 8/9] Clean up colour resolver --- src/client/ClientDataResolver.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/ClientDataResolver.js b/src/client/ClientDataResolver.js index 73d4961c2..3138a2ff9 100644 --- a/src/client/ClientDataResolver.js +++ b/src/client/ClientDataResolver.js @@ -354,6 +354,7 @@ class ClientDataResolver { */ /** + * Resolves a ColorResolvable into a color number * @param {ColorResolvable} color Color to resolve * @returns {number} A color */ @@ -363,11 +364,13 @@ class ClientDataResolver { } else if (color instanceof Array) { color = (color[0] << 16) + (color[1] << 8) + color[2]; } + if (color < 0 || color > 0xFFFFFF) { throw new RangeError('Color must be within the range 0 - 16777215 (0xFFFFFF).'); } else if (color && isNaN(color)) { throw new TypeError('Unable to convert color to a number.'); } + return color; } @@ -376,7 +379,7 @@ class ClientDataResolver { * @returns {number} A color */ resolveColor(color) { - return ClientDataResolver.resolveColor(color); + return this.constructor.resolveColor(color); } } From e216fc7a8102e0311446b41633e030cd9edfd370 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Sat, 14 Jan 2017 11:31:52 -0600 Subject: [PATCH 9/9] stop spamming api, and kill typing when a guild isn't there anymore (#1096) --- src/client/actions/GuildDelete.js | 2 ++ src/structures/interface/TextBasedChannel.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/actions/GuildDelete.js b/src/client/actions/GuildDelete.js index 12142633f..56896b63b 100644 --- a/src/client/actions/GuildDelete.js +++ b/src/client/actions/GuildDelete.js @@ -12,6 +12,8 @@ class GuildDeleteAction extends Action { let guild = client.guilds.get(data.id); if (guild) { + for (const channel of guild.channels.values()) channel.stopTyping(true); + if (guild.available && data.unavailable) { // guild is unavailable guild.available = false; diff --git a/src/structures/interface/TextBasedChannel.js b/src/structures/interface/TextBasedChannel.js index c3e7c93e0..70d6747ef 100644 --- a/src/structures/interface/TextBasedChannel.js +++ b/src/structures/interface/TextBasedChannel.js @@ -250,7 +250,7 @@ class TextBasedChannel { count: count || 1, interval: this.client.setInterval(() => { this.client.rest.methods.sendTyping(this.id); - }, 4000), + }, 9000), }); this.client.rest.methods.sendTyping(this.id); } else {