Jelajahi Sumber

Merge pull request #227 from Markus-Rost/Markus-Rost-usergroup

fill usergroup list from wiki
MarkusRost 3 tahun lalu
induk
melakukan
87a2e66e68
4 mengubah file dengan 134 tambahan dan 152 penghapusan
  1. 20 1
      dashboard/src/index.js
  2. 6 4
      dashboard/verification.js
  3. 106 145
      package-lock.json
  4. 2 2
      package.json

+ 20 - 1
dashboard/src/index.js

@@ -430,6 +430,25 @@ if ( usergroup ) {
 			multigroup.disabled = true;
 			multigroup.disabled = true;
 		}
 		}
 	} );
 	} );
+
+	function fillUsergroupList({query: {allmessages: wikiUsergroupList = []} = {}} = {}) {
+		if ( !wikiUsergroupList.length ) return;
+		usergrouplist.replaceChildren(...wikiUsergroupList.filter( wikigroup => {
+			if ( wikigroup.name === 'group-all' ) return false;
+			if ( wikigroup.name === 'group-membership-link-with-expiry' ) return false;
+			if ( wikigroup.name.endsWith( '.css' ) || wikigroup.name.endsWith( '.js' ) ) return false;
+			if ( wikigroup.name.endsWith( '-member' ) && wikiUsergroupList.some( wikigroupmember => {
+				return wikigroupmember.name === wikigroup.name.replace( /-member$/, '' );
+			} ) ) return false;
+			return true;
+		} ).map( wikigroup => {
+			return new Option(wikigroup['*'], wikigroup.name.replace( /^group-/, '' ));
+		} ).sort( (a, b) => {
+			if ( a.value < b.value ) return -1;
+			if ( a.value > b.value ) return 1;
+			return 0;
+		} ));
+	}
 }
 }
 
 
 /** @type {NodeListOf<HTMLInputElement>} */
 /** @type {NodeListOf<HTMLInputElement>} */
@@ -600,4 +619,4 @@ for ( var i = 0; i < collapsible.length; i++ ) {
 		}
 		}
 	};
 	};
 }
 }
-*/
+*/

+ 6 - 4
dashboard/verification.js

@@ -72,8 +72,9 @@ const fieldset = {
  * @param {String} [settings.defaultrole]
  * @param {String} [settings.defaultrole]
  * @param {import('./util.js').Channel[]} guildChannels - The guild channels
  * @param {import('./util.js').Channel[]} guildChannels - The guild channels
  * @param {import('./util.js').Role[]} guildRoles - The guild roles
  * @param {import('./util.js').Role[]} guildRoles - The guild roles
+ * @param {String} wiki - The guild wiki
  */
  */
-function createForm($, header, dashboardLang, settings, guildChannels, guildRoles) {
+function createForm($, header, dashboardLang, settings, guildChannels, guildRoles, wiki) {
 	var readonly = ( process.env.READONLY ? true : false );
 	var readonly = ( process.env.READONLY ? true : false );
 	var fields = [];
 	var fields = [];
 	let channel = $('<div>').append(fieldset.channel);
 	let channel = $('<div>').append(fieldset.channel);
@@ -194,6 +195,7 @@ function createForm($, header, dashboardLang, settings, guildChannels, guildRole
 		usergroup.find('#wb-settings-usergroup-multiple').attr('style', 'display: none;');
 		usergroup.find('#wb-settings-usergroup-multiple').attr('style', 'display: none;');
 	}
 	}
 	fields.push(usergroup);
 	fields.push(usergroup);
+	$('<script>').attr('src', wiki + 'api.php?action=query&meta=allmessages&amprefix=group-&amincludelocal=true&amenableparser=true&amlang=' + dashboardLang.lang + '&format=json&callback=fillUsergroupList').attr('defer', '').insertAfter('script#indexjs');
 	let editcount = $('<div>').append(fieldset.editcount);
 	let editcount = $('<div>').append(fieldset.editcount);
 	editcount.find('label').text(dashboardLang.get('verification.form.editcount'));
 	editcount.find('label').text(dashboardLang.get('verification.form.editcount'));
 	editcount.find('#wb-settings-editcount').val(settings.editcount);
 	editcount.find('#wb-settings-editcount').val(settings.editcount);
@@ -306,12 +308,12 @@ function dashboard_verification(res, $, guild, args, dashboardLang) {
 				channel: '', role: '', usergroup: 'user',
 				channel: '', role: '', usergroup: 'user',
 				editcount: 0, postcount: 0, accountage: 0,
 				editcount: 0, postcount: 0, accountage: 0,
 				rename: false, defaultrole
 				rename: false, defaultrole
-			}, guild.channels, guild.roles).attr('action', `/guild/${guild.id}/verification/new`).appendTo('#text');
+			}, guild.channels, guild.roles, wiki).attr('action', `/guild/${guild.id}/verification/new`).appendTo('#text');
 		}
 		}
 		else if ( rows.some( row => row.configid.toString() === args[4] ) ) {
 		else if ( rows.some( row => row.configid.toString() === args[4] ) ) {
 			let row = rows.find( row => row.configid.toString() === args[4] );
 			let row = rows.find( row => row.configid.toString() === args[4] );
 			$(`.channel#channel-${row.configid}`).addClass('selected');
 			$(`.channel#channel-${row.configid}`).addClass('selected');
-			createForm($, dashboardLang.get('verification.form.entry', false, row.configid), dashboardLang, row, guild.channels, guild.roles).attr('action', `/guild/${guild.id}/verification/${row.configid}`).appendTo('#text');
+			createForm($, dashboardLang.get('verification.form.entry', false, row.configid), dashboardLang, row, guild.channels, guild.roles, wiki).attr('action', `/guild/${guild.id}/verification/${row.configid}`).appendTo('#text');
 		}
 		}
 		else if ( args[4] === 'notice' && rows.length ) {
 		else if ( args[4] === 'notice' && rows.length ) {
 			$(`.channel#channel-notice`).addClass('selected');
 			$(`.channel#channel-notice`).addClass('selected');
@@ -1005,4 +1007,4 @@ function update_notices(res, userSettings, guild, type, settings) {
 module.exports = {
 module.exports = {
 	get: dashboard_verification,
 	get: dashboard_verification,
 	post: update_verification
 	post: update_verification
-};
+};

+ 106 - 145
package-lock.json

@@ -12,12 +12,12 @@
         "cheerio": "^1.0.0-rc.10",
         "cheerio": "^1.0.0-rc.10",
         "datetime-difference": "^1.0.2",
         "datetime-difference": "^1.0.2",
         "discord-oauth2": "^2.8.0",
         "discord-oauth2": "^2.8.0",
-        "discord.js": "^13.2.0",
+        "discord.js": "^13.3.1",
         "dotenv": "^10.0.0",
         "dotenv": "^10.0.0",
         "full-icu": "^1.4.0",
         "full-icu": "^1.4.0",
         "got": "^11.8.2",
         "got": "^11.8.2",
         "htmlparser2": "^7.1.2",
         "htmlparser2": "^7.1.2",
-        "npm": "^8.1.0",
+        "npm": "^8.1.3",
         "pg": "^8.7.1"
         "pg": "^8.7.1"
       },
       },
       "engines": {
       "engines": {
@@ -25,35 +25,28 @@
       }
       }
     },
     },
     "node_modules/@discordjs/builders": {
     "node_modules/@discordjs/builders": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz",
-      "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==",
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz",
+      "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==",
       "dependencies": {
       "dependencies": {
-        "@sindresorhus/is": "^4.0.1",
-        "discord-api-types": "^0.22.0",
+        "@sindresorhus/is": "^4.2.0",
+        "discord-api-types": "^0.24.0",
         "ow": "^0.27.0",
         "ow": "^0.27.0",
         "ts-mixer": "^6.0.0",
         "ts-mixer": "^6.0.0",
         "tslib": "^2.3.1"
         "tslib": "^2.3.1"
       },
       },
       "engines": {
       "engines": {
-        "node": ">=14.0.0",
+        "node": ">=16.0.0",
         "npm": ">=7.0.0"
         "npm": ">=7.0.0"
       }
       }
     },
     },
-    "node_modules/@discordjs/builders/node_modules/discord-api-types": {
-      "version": "0.22.0",
-      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
-      "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==",
-      "engines": {
-        "node": ">=12"
-      }
-    },
     "node_modules/@discordjs/collection": {
     "node_modules/@discordjs/collection": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
-      "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==",
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz",
+      "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==",
       "engines": {
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0",
+        "npm": ">=7.0.0"
       }
       }
     },
     },
     "node_modules/@discordjs/form-data": {
     "node_modules/@discordjs/form-data": {
@@ -70,12 +63,12 @@
       }
       }
     },
     },
     "node_modules/@sapphire/async-queue": {
     "node_modules/@sapphire/async-queue": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.6.tgz",
-      "integrity": "sha512-M5CbgMgesemMUCQo5G/InGHvp+GZx6uuJNV1iwvSWD8EFNVrfxaTcqhcAXM3MPYkjlxvNnoDNk0R1lfzvca6LA==",
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz",
+      "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ==",
       "engines": {
       "engines": {
-        "node": ">=v14.18.0",
-        "npm": ">=7.24.2"
+        "node": ">=v14.0.0",
+        "npm": ">=7.0.0"
       }
       }
     },
     },
     "node_modules/@sindresorhus/is": {
     "node_modules/@sindresorhus/is": {
@@ -129,6 +122,15 @@
       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.0.tgz",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.0.tgz",
       "integrity": "sha512-8MLkBIYQMuhRBQzGN9875bYsOhPnf/0rgXGo66S2FemHkhbn9qtsz9ywV1iCG+vbjigE4WUNVvw37Dx+L0qsPg=="
       "integrity": "sha512-8MLkBIYQMuhRBQzGN9875bYsOhPnf/0rgXGo66S2FemHkhbn9qtsz9ywV1iCG+vbjigE4WUNVvw37Dx+L0qsPg=="
     },
     },
+    "node_modules/@types/node-fetch": {
+      "version": "2.5.12",
+      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
+      "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
+      "dependencies": {
+        "@types/node": "*",
+        "form-data": "^3.0.0"
+      }
+    },
     "node_modules/@types/responselike": {
     "node_modules/@types/responselike": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
@@ -349,9 +351,9 @@
       }
       }
     },
     },
     "node_modules/discord-api-types": {
     "node_modules/discord-api-types": {
-      "version": "0.23.1",
-      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz",
-      "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ==",
+      "version": "0.24.0",
+      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz",
+      "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==",
       "engines": {
       "engines": {
         "node": ">=12"
         "node": ">=12"
       }
       }
@@ -362,16 +364,17 @@
       "integrity": "sha512-m0Tq2k1rqoIv63Ywb3gid3L5/hz9vlGzoOv/salC1/1BzesQQol8BS4hXKDOjdK6mF6VKUYGfkRmXc2pRhOJqg=="
       "integrity": "sha512-m0Tq2k1rqoIv63Ywb3gid3L5/hz9vlGzoOv/salC1/1BzesQQol8BS4hXKDOjdK6mF6VKUYGfkRmXc2pRhOJqg=="
     },
     },
     "node_modules/discord.js": {
     "node_modules/discord.js": {
-      "version": "13.2.0",
-      "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz",
-      "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==",
+      "version": "13.3.1",
+      "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz",
+      "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==",
       "dependencies": {
       "dependencies": {
-        "@discordjs/builders": "^0.6.0",
-        "@discordjs/collection": "^0.2.1",
+        "@discordjs/builders": "^0.8.1",
+        "@discordjs/collection": "^0.3.2",
         "@discordjs/form-data": "^3.0.1",
         "@discordjs/form-data": "^3.0.1",
-        "@sapphire/async-queue": "^1.1.5",
+        "@sapphire/async-queue": "^1.1.8",
+        "@types/node-fetch": "^2.5.12",
         "@types/ws": "^8.2.0",
         "@types/ws": "^8.2.0",
-        "discord-api-types": "^0.23.1",
+        "discord-api-types": "^0.24.0",
         "node-fetch": "^2.6.1",
         "node-fetch": "^2.6.1",
         "ws": "^8.2.3"
         "ws": "^8.2.3"
       },
       },
@@ -477,6 +480,19 @@
         "pend": "~1.2.0"
         "pend": "~1.2.0"
       }
       }
     },
     },
+    "node_modules/form-data": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/full-icu": {
     "node_modules/full-icu": {
       "version": "1.4.0",
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.4.0.tgz",
       "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.4.0.tgz",
@@ -663,9 +679,9 @@
       }
       }
     },
     },
     "node_modules/npm": {
     "node_modules/npm": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/npm/-/npm-8.1.0.tgz",
-      "integrity": "sha512-rPiiYY4t8pqK1rCDQy1bE6HRR63B2RwfYsIVc1/BNkeIilvqZMwGeTksSBK8WTozBz8c/tMd7jk0c4Q4f/F+UA==",
+      "version": "8.1.3",
+      "resolved": "https://registry.npmjs.org/npm/-/npm-8.1.3.tgz",
+      "integrity": "sha512-7AnYyaVdF3vEpHMb+tq5ALbmsE9CIJYu0KJvGawn03yc1HGw778H7UNLV2tcHTAa6VjJk4c1yKbovOC0674PAw==",
       "bundleDependencies": [
       "bundleDependencies": [
         "@isaacs/string-locale-compare",
         "@isaacs/string-locale-compare",
         "@npmcli/arborist",
         "@npmcli/arborist",
@@ -829,7 +845,7 @@
       "license": "ISC"
       "license": "ISC"
     },
     },
     "node_modules/npm/node_modules/@npmcli/arborist": {
     "node_modules/npm/node_modules/@npmcli/arborist": {
-      "version": "4.0.1",
+      "version": "4.0.4",
       "inBundle": true,
       "inBundle": true,
       "license": "ISC",
       "license": "ISC",
       "dependencies": {
       "dependencies": {
@@ -879,7 +895,7 @@
       "license": "ISC"
       "license": "ISC"
     },
     },
     "node_modules/npm/node_modules/@npmcli/config": {
     "node_modules/npm/node_modules/@npmcli/config": {
-      "version": "2.3.0",
+      "version": "2.3.1",
       "inBundle": true,
       "inBundle": true,
       "license": "ISC",
       "license": "ISC",
       "dependencies": {
       "dependencies": {
@@ -2177,14 +2193,14 @@
       }
       }
     },
     },
     "node_modules/npm/node_modules/node-gyp": {
     "node_modules/npm/node_modules/node-gyp": {
-      "version": "8.2.0",
+      "version": "8.3.0",
       "inBundle": true,
       "inBundle": true,
       "license": "MIT",
       "license": "MIT",
       "dependencies": {
       "dependencies": {
         "env-paths": "^2.2.0",
         "env-paths": "^2.2.0",
         "glob": "^7.1.4",
         "glob": "^7.1.4",
         "graceful-fs": "^4.2.6",
         "graceful-fs": "^4.2.6",
-        "make-fetch-happen": "^8.0.14",
+        "make-fetch-happen": "^9.1.0",
         "nopt": "^5.0.0",
         "nopt": "^5.0.0",
         "npmlog": "^4.1.2",
         "npmlog": "^4.1.2",
         "rimraf": "^3.0.2",
         "rimraf": "^3.0.2",
@@ -2230,31 +2246,6 @@
         "node": ">=0.10.0"
         "node": ">=0.10.0"
       }
       }
     },
     },
-    "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": {
-      "version": "8.0.14",
-      "inBundle": true,
-      "license": "ISC",
-      "dependencies": {
-        "agentkeepalive": "^4.1.3",
-        "cacache": "^15.0.5",
-        "http-cache-semantics": "^4.1.0",
-        "http-proxy-agent": "^4.0.1",
-        "https-proxy-agent": "^5.0.0",
-        "is-lambda": "^1.0.1",
-        "lru-cache": "^6.0.0",
-        "minipass": "^3.1.3",
-        "minipass-collect": "^1.0.2",
-        "minipass-fetch": "^1.3.2",
-        "minipass-flush": "^1.0.5",
-        "minipass-pipeline": "^1.2.4",
-        "promise-retry": "^2.0.1",
-        "socks-proxy-agent": "^5.0.0",
-        "ssri": "^8.0.0"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
     "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": {
     "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": {
       "version": "4.1.2",
       "version": "4.1.2",
       "inBundle": true,
       "inBundle": true,
@@ -2266,19 +2257,6 @@
         "set-blocking": "~2.0.0"
         "set-blocking": "~2.0.0"
       }
       }
     },
     },
-    "node_modules/npm/node_modules/node-gyp/node_modules/socks-proxy-agent": {
-      "version": "5.0.1",
-      "inBundle": true,
-      "license": "MIT",
-      "dependencies": {
-        "agent-base": "^6.0.2",
-        "debug": "4",
-        "socks": "^2.3.3"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/npm/node_modules/node-gyp/node_modules/string-width": {
     "node_modules/npm/node_modules/node-gyp/node_modules/string-width": {
       "version": "1.0.2",
       "version": "1.0.2",
       "inBundle": true,
       "inBundle": true,
@@ -3367,28 +3345,21 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "@discordjs/builders": {
     "@discordjs/builders": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz",
-      "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==",
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz",
+      "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==",
       "requires": {
       "requires": {
-        "@sindresorhus/is": "^4.0.1",
-        "discord-api-types": "^0.22.0",
+        "@sindresorhus/is": "^4.2.0",
+        "discord-api-types": "^0.24.0",
         "ow": "^0.27.0",
         "ow": "^0.27.0",
         "ts-mixer": "^6.0.0",
         "ts-mixer": "^6.0.0",
         "tslib": "^2.3.1"
         "tslib": "^2.3.1"
-      },
-      "dependencies": {
-        "discord-api-types": {
-          "version": "0.22.0",
-          "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
-          "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg=="
-        }
       }
       }
     },
     },
     "@discordjs/collection": {
     "@discordjs/collection": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
-      "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog=="
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz",
+      "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg=="
     },
     },
     "@discordjs/form-data": {
     "@discordjs/form-data": {
       "version": "3.0.1",
       "version": "3.0.1",
@@ -3401,9 +3372,9 @@
       }
       }
     },
     },
     "@sapphire/async-queue": {
     "@sapphire/async-queue": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.6.tgz",
-      "integrity": "sha512-M5CbgMgesemMUCQo5G/InGHvp+GZx6uuJNV1iwvSWD8EFNVrfxaTcqhcAXM3MPYkjlxvNnoDNk0R1lfzvca6LA=="
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz",
+      "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ=="
     },
     },
     "@sindresorhus/is": {
     "@sindresorhus/is": {
       "version": "4.2.0",
       "version": "4.2.0",
@@ -3447,6 +3418,15 @@
       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.0.tgz",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.0.tgz",
       "integrity": "sha512-8MLkBIYQMuhRBQzGN9875bYsOhPnf/0rgXGo66S2FemHkhbn9qtsz9ywV1iCG+vbjigE4WUNVvw37Dx+L0qsPg=="
       "integrity": "sha512-8MLkBIYQMuhRBQzGN9875bYsOhPnf/0rgXGo66S2FemHkhbn9qtsz9ywV1iCG+vbjigE4WUNVvw37Dx+L0qsPg=="
     },
     },
+    "@types/node-fetch": {
+      "version": "2.5.12",
+      "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
+      "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
+      "requires": {
+        "@types/node": "*",
+        "form-data": "^3.0.0"
+      }
+    },
     "@types/responselike": {
     "@types/responselike": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
@@ -3610,9 +3590,9 @@
       "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
       "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
     },
     },
     "discord-api-types": {
     "discord-api-types": {
-      "version": "0.23.1",
-      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz",
-      "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ=="
+      "version": "0.24.0",
+      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz",
+      "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A=="
     },
     },
     "discord-oauth2": {
     "discord-oauth2": {
       "version": "2.8.0",
       "version": "2.8.0",
@@ -3620,16 +3600,17 @@
       "integrity": "sha512-m0Tq2k1rqoIv63Ywb3gid3L5/hz9vlGzoOv/salC1/1BzesQQol8BS4hXKDOjdK6mF6VKUYGfkRmXc2pRhOJqg=="
       "integrity": "sha512-m0Tq2k1rqoIv63Ywb3gid3L5/hz9vlGzoOv/salC1/1BzesQQol8BS4hXKDOjdK6mF6VKUYGfkRmXc2pRhOJqg=="
     },
     },
     "discord.js": {
     "discord.js": {
-      "version": "13.2.0",
-      "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz",
-      "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==",
+      "version": "13.3.1",
+      "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz",
+      "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==",
       "requires": {
       "requires": {
-        "@discordjs/builders": "^0.6.0",
-        "@discordjs/collection": "^0.2.1",
+        "@discordjs/builders": "^0.8.1",
+        "@discordjs/collection": "^0.3.2",
         "@discordjs/form-data": "^3.0.1",
         "@discordjs/form-data": "^3.0.1",
-        "@sapphire/async-queue": "^1.1.5",
+        "@sapphire/async-queue": "^1.1.8",
+        "@types/node-fetch": "^2.5.12",
         "@types/ws": "^8.2.0",
         "@types/ws": "^8.2.0",
-        "discord-api-types": "^0.23.1",
+        "discord-api-types": "^0.24.0",
         "node-fetch": "^2.6.1",
         "node-fetch": "^2.6.1",
         "ws": "^8.2.3"
         "ws": "^8.2.3"
       }
       }
@@ -3701,6 +3682,16 @@
         "pend": "~1.2.0"
         "pend": "~1.2.0"
       }
       }
     },
     },
+    "form-data": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "mime-types": "^2.1.12"
+      }
+    },
     "full-icu": {
     "full-icu": {
       "version": "1.4.0",
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.4.0.tgz",
       "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.4.0.tgz",
@@ -3832,9 +3823,9 @@
       "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
       "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
     },
     },
     "npm": {
     "npm": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/npm/-/npm-8.1.0.tgz",
-      "integrity": "sha512-rPiiYY4t8pqK1rCDQy1bE6HRR63B2RwfYsIVc1/BNkeIilvqZMwGeTksSBK8WTozBz8c/tMd7jk0c4Q4f/F+UA==",
+      "version": "8.1.3",
+      "resolved": "https://registry.npmjs.org/npm/-/npm-8.1.3.tgz",
+      "integrity": "sha512-7AnYyaVdF3vEpHMb+tq5ALbmsE9CIJYu0KJvGawn03yc1HGw778H7UNLV2tcHTAa6VjJk4c1yKbovOC0674PAw==",
       "requires": {
       "requires": {
         "@isaacs/string-locale-compare": "*",
         "@isaacs/string-locale-compare": "*",
         "@npmcli/arborist": "*",
         "@npmcli/arborist": "*",
@@ -3917,7 +3908,7 @@
           "bundled": true
           "bundled": true
         },
         },
         "@npmcli/arborist": {
         "@npmcli/arborist": {
-          "version": "4.0.1",
+          "version": "4.0.4",
           "bundled": true,
           "bundled": true,
           "requires": {
           "requires": {
             "@isaacs/string-locale-compare": "^1.0.1",
             "@isaacs/string-locale-compare": "^1.0.1",
@@ -3959,7 +3950,7 @@
           "bundled": true
           "bundled": true
         },
         },
         "@npmcli/config": {
         "@npmcli/config": {
-          "version": "2.3.0",
+          "version": "2.3.1",
           "bundled": true,
           "bundled": true,
           "requires": {
           "requires": {
             "ini": "^2.0.0",
             "ini": "^2.0.0",
@@ -4851,13 +4842,13 @@
           "bundled": true
           "bundled": true
         },
         },
         "node-gyp": {
         "node-gyp": {
-          "version": "8.2.0",
+          "version": "8.3.0",
           "bundled": true,
           "bundled": true,
           "requires": {
           "requires": {
             "env-paths": "^2.2.0",
             "env-paths": "^2.2.0",
             "glob": "^7.1.4",
             "glob": "^7.1.4",
             "graceful-fs": "^4.2.6",
             "graceful-fs": "^4.2.6",
-            "make-fetch-happen": "^8.0.14",
+            "make-fetch-happen": "^9.1.0",
             "nopt": "^5.0.0",
             "nopt": "^5.0.0",
             "npmlog": "^4.1.2",
             "npmlog": "^4.1.2",
             "rimraf": "^3.0.2",
             "rimraf": "^3.0.2",
@@ -4891,27 +4882,6 @@
                 "number-is-nan": "^1.0.0"
                 "number-is-nan": "^1.0.0"
               }
               }
             },
             },
-            "make-fetch-happen": {
-              "version": "8.0.14",
-              "bundled": true,
-              "requires": {
-                "agentkeepalive": "^4.1.3",
-                "cacache": "^15.0.5",
-                "http-cache-semantics": "^4.1.0",
-                "http-proxy-agent": "^4.0.1",
-                "https-proxy-agent": "^5.0.0",
-                "is-lambda": "^1.0.1",
-                "lru-cache": "^6.0.0",
-                "minipass": "^3.1.3",
-                "minipass-collect": "^1.0.2",
-                "minipass-fetch": "^1.3.2",
-                "minipass-flush": "^1.0.5",
-                "minipass-pipeline": "^1.2.4",
-                "promise-retry": "^2.0.1",
-                "socks-proxy-agent": "^5.0.0",
-                "ssri": "^8.0.0"
-              }
-            },
             "npmlog": {
             "npmlog": {
               "version": "4.1.2",
               "version": "4.1.2",
               "bundled": true,
               "bundled": true,
@@ -4922,15 +4892,6 @@
                 "set-blocking": "~2.0.0"
                 "set-blocking": "~2.0.0"
               }
               }
             },
             },
-            "socks-proxy-agent": {
-              "version": "5.0.1",
-              "bundled": true,
-              "requires": {
-                "agent-base": "^6.0.2",
-                "debug": "4",
-                "socks": "^2.3.3"
-              }
-            },
             "string-width": {
             "string-width": {
               "version": "1.0.2",
               "version": "1.0.2",
               "bundled": true,
               "bundled": true,

+ 2 - 2
package.json

@@ -18,12 +18,12 @@
     "cheerio": "^1.0.0-rc.10",
     "cheerio": "^1.0.0-rc.10",
     "datetime-difference": "^1.0.2",
     "datetime-difference": "^1.0.2",
     "discord-oauth2": "^2.8.0",
     "discord-oauth2": "^2.8.0",
-    "discord.js": "^13.2.0",
+    "discord.js": "^13.3.1",
     "dotenv": "^10.0.0",
     "dotenv": "^10.0.0",
     "full-icu": "^1.4.0",
     "full-icu": "^1.4.0",
     "got": "^11.8.2",
     "got": "^11.8.2",
     "htmlparser2": "^7.1.2",
     "htmlparser2": "^7.1.2",
-    "npm": "^8.1.0",
+    "npm": "^8.1.3",
     "pg": "^8.7.1"
     "pg": "^8.7.1"
   },
   },
   "repository": {
   "repository": {