aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-05 23:24:51 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-05 23:24:51 -0400
commit1feb515882cfbbf33dc98d75a54898c1735cf5cb (patch)
tree20386e9d6ca6b5cb978283d672528c03647ec32f
parente68a0193b9f5888455f631d72c8783fc50e35faf (diff)
parent060349fcabe9e073eca9f6fd334e3355a9756096 (diff)
downloadtanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.tar.gz
tanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.tar.bz2
tanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.zip
Merge branch 'wip'
-rw-r--r--.eslintignore5
-rw-r--r--.eslintrc.cjs9
-rw-r--r--.vscode/typescript.code-snippets61
-rw-r--r--assets/Faithful.ttfbin0 -> 275832 bytes
-rw-r--r--assets/minecraft_font.ttfbin0 -> 15700 bytes
-rw-r--r--package.json40
-rw-r--r--src/arguments/abbreviatedNumber.ts2
-rw-r--r--src/arguments/tinyColor.ts2
-rw-r--r--src/bot.ts10
-rw-r--r--src/commands/admin/channelPermissions.ts2
-rw-r--r--src/commands/admin/roleAll.ts2
-rw-r--r--src/commands/config/blacklist.ts2
-rw-r--r--src/commands/config/config.ts2
-rw-r--r--src/commands/config/disable.ts2
-rw-r--r--src/commands/config/features.ts2
-rw-r--r--src/commands/config/log.ts2
-rw-r--r--src/commands/dev/eval.ts2
-rw-r--r--src/commands/dev/javascript.ts2
-rw-r--r--src/commands/dev/sh.ts2
-rw-r--r--src/commands/fun/minesweeper.ts2
-rw-r--r--src/commands/info/botInfo.ts2
-rw-r--r--src/commands/info/color.ts2
-rw-r--r--src/commands/info/guildInfo.ts2
-rw-r--r--src/commands/info/help.ts2
-rw-r--r--src/commands/info/icon.ts2
-rw-r--r--src/commands/info/inviteInfo.ts43
-rw-r--r--src/commands/info/links.ts2
-rw-r--r--src/commands/info/userInfo.ts6
-rw-r--r--src/commands/leveling/leaderboard.ts2
-rw-r--r--src/commands/leveling/level.ts2
-rw-r--r--src/commands/leveling/levelRoles.ts2
-rw-r--r--src/commands/leveling/setLevel.ts2
-rw-r--r--src/commands/leveling/setXp.ts2
-rw-r--r--src/commands/moderation/ban.ts2
-rw-r--r--src/commands/moderation/block.ts2
-rw-r--r--src/commands/moderation/evidence.ts2
-rw-r--r--src/commands/moderation/hideCase.ts2
-rw-r--r--src/commands/moderation/kick.ts2
-rw-r--r--src/commands/moderation/lockdown.ts2
-rw-r--r--src/commands/moderation/massBan.ts2
-rw-r--r--src/commands/moderation/massEvidence.ts2
-rw-r--r--src/commands/moderation/modlog.ts2
-rw-r--r--src/commands/moderation/mute.ts2
-rw-r--r--src/commands/moderation/purge.ts2
-rw-r--r--src/commands/moderation/removeReactionEmoji.ts2
-rw-r--r--src/commands/moderation/role.ts2
-rw-r--r--src/commands/moderation/slowmode.ts2
-rw-r--r--src/commands/moderation/timeout.ts2
-rw-r--r--src/commands/moderation/unban.ts2
-rw-r--r--src/commands/moderation/unblock.ts2
-rw-r--r--src/commands/moderation/unmute.ts2
-rw-r--r--src/commands/moderation/untimeout.ts2
-rw-r--r--src/commands/moderation/warn.ts2
-rw-r--r--src/commands/moulberry-bush/capes.ts2
-rw-r--r--src/commands/moulberry-bush/giveawayPing.ts8
-rw-r--r--src/commands/moulberry-bush/moulHammer.ts16
-rw-r--r--src/commands/moulberry-bush/neuRepo.ts193
-rw-r--r--src/commands/moulberry-bush/report.ts6
-rw-r--r--src/commands/moulberry-bush/rule.ts5
-rw-r--r--src/commands/moulberry-bush/serverStatus.ts2
-rw-r--r--src/commands/moulberry-bush/solved.ts44
-rw-r--r--src/commands/tickets/ticket-!.ts65
-rw-r--r--src/commands/tickets/ticket-create.ts0
-rw-r--r--src/commands/utilities/calculator.ts2
-rw-r--r--src/commands/utilities/hash.ts2
-rw-r--r--src/commands/utilities/highlight-!.ts5
-rw-r--r--src/commands/utilities/highlight-add.ts2
-rw-r--r--src/commands/utilities/highlight-block.ts2
-rw-r--r--src/commands/utilities/highlight-clear.ts2
-rw-r--r--src/commands/utilities/highlight-matches.ts2
-rw-r--r--src/commands/utilities/highlight-remove.ts2
-rw-r--r--src/commands/utilities/highlight-show.ts2
-rw-r--r--src/commands/utilities/highlight-unblock.ts2
-rw-r--r--src/commands/utilities/price.ts2
-rw-r--r--src/commands/utilities/reminders.ts2
-rw-r--r--src/commands/utilities/steal.ts2
-rw-r--r--src/commands/utilities/viewRaw.ts2
-rw-r--r--src/commands/utilities/whoHasRole.ts2
-rw-r--r--src/commands/utilities/wolframAlpha.ts2
-rw-r--r--src/lib/common/AutoMod.ts2
-rw-r--r--src/lib/common/HighlightManager.ts2
-rw-r--r--src/lib/common/util/Minecraft.ts349
-rw-r--r--src/lib/common/util/Minecraft_Test.ts86
-rw-r--r--src/lib/common/util/Moderation.ts2
-rw-r--r--src/lib/extensions/discord.js/ExtendedGuild.ts28
-rw-r--r--src/lib/utils/BushClientUtils.ts2
-rw-r--r--src/lib/utils/BushConstants.ts21
-rw-r--r--src/lib/utils/BushLogger.ts58
-rw-r--r--src/lib/utils/BushUtils.ts2
-rw-r--r--src/listeners/bush/appealListener.ts4
-rw-r--r--src/listeners/bush/joinAutoBan.ts2
-rw-r--r--src/listeners/bush/supportThread.ts8
-rw-r--r--src/listeners/bush/userUpdateAutoBan.ts2
-rw-r--r--src/listeners/member-custom/bushLevelUpdate.ts2
-rw-r--r--src/listeners/message/quoteCreate.ts4
-rw-r--r--src/listeners/ws/INTERACTION_CREATE.ts2
-rw-r--r--src/tasks/cache/updateNeuItemCache.ts12
-rw-r--r--src/tasks/feature/memberCount.ts2
-rw-r--r--src/tasks/feature/removeExpiredPunishements.ts2
-rw-r--r--test.js365
-rw-r--r--test.pngbin0 -> 41015 bytes
-rw-r--r--tooltips.nnb118
-rw-r--r--tsconfig.eslint.json15
-rw-r--r--tsconfig.json11
-rw-r--r--vite.config.ts14
-rw-r--r--yarn.lock638
106 files changed, 2086 insertions, 305 deletions
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..c531fde
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,5 @@
+dist
+.yarn
+node_modules
+*.nnb
+tooltips* \ No newline at end of file
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 9a6837f..e2d7435 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -115,17 +115,20 @@ const globals = [
'btoa', 'createImageBitmap', 'fetch', 'queueMicrotask', 'sessionStorage', 'addEventListener', 'removeEventListener'
]
+/**
+ * @type {import('eslint').Linter.Config}
+ */
module.exports = {
env: {
- es2021: true,
+ es2022: true,
node: true
},
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
parser: '@typescript-eslint/parser',
parserOptions: {
- ecmaVersion: 12,
+ ecmaVersion: 'latest',
sourceType: 'module',
- project: './tsconfig.json'
+ project: './tsconfig.eslint.json'
},
plugins: ['@typescript-eslint', 'deprecation', 'import'],
ignorePatterns: ['dist'],
diff --git a/.vscode/typescript.code-snippets b/.vscode/typescript.code-snippets
index 6ab1c89..29418b1 100644
--- a/.vscode/typescript.code-snippets
+++ b/.vscode/typescript.code-snippets
@@ -72,5 +72,66 @@
"\trequired: $3",
"},$0"
]
+ },
+
+ // prettier-ignore
+ "Command":{
+ "prefix": "command",
+ "description": "A bot command template",
+ "body": [
+ "import {",
+ "\tBushCommand,",
+ "\tclientSendAndPermCheck,",
+ "\temojis,",
+ "\ttype ArgType,",
+ "\ttype CommandMessage,",
+ "\ttype OptArgType,",
+ "\ttype SlashMessage",
+ "} from '#lib';",
+ "",
+ "import { ApplicationCommandOptionType } from 'discord.js';",
+ "export default class ${1:CommandName} extends BushCommand {",
+ "\tpublic constructor() {",
+ "\t\tsuper('${2:commandId}', {",
+ "\t\t\taliases: ['${3:alias}'],",
+ "\t\t\tcategory: '${4:category}',",
+ "\t\t\tdescription: '${5:description}.',",
+ "\t\t\tusage: ['${3:alias} <${6:arg}> [${7:arg}]'],",
+ "\t\t\texamples: ['${3:alias} ${8:argExample} ${9:argExample}'],",
+ "\t\t\targs: [",
+ "\t\t\t\t{",
+ "\t\t\t\t\tid: '${6:arg}',",
+ "\t\t\t\t\tdescription: '${10:Argument description}.',",
+ "\t\t\t\t\ttype: '${11:argType}',",
+ "\t\t\t\t\tprompt: '${12:What is arg}?',",
+ "\t\t\t\t\tretry: '{error} ${13:Invalid arg}.',",
+ "\t\t\t\t\toptional: ${14|true,false|},",
+ "\t\t\t\t\tslashType: ApplicationCommandOptionType.${15|Subcommand,SubcommandGroup,String,Integer,Boolean,User,Channel,Role,Mentionable,Number,Attachment|}",
+ "\t\t\t\t},",
+ "\t\t\t\t{",
+ "\t\t\t\t\tid: '${7:arg}',",
+ "\t\t\t\t\tdescription: '${16:Argument description}.',",
+ "\t\t\t\t\ttype: '${17:argType}',",
+ "\t\t\t\t\tprompt: '${18:What is arg}?',",
+ "\t\t\t\t\tretry: '{error} ${19:Invalid arg}.',",
+ "\t\t\t\t\toptional: ${20|true,false|},",
+ "\t\t\t\t\tslashType: ApplicationCommandOptionType.${21|Subcommand,SubcommandGroup,String,Integer,Boolean,User,Channel,Role,Mentionable,Number,Attachment|}",
+ "\t\t\t\t}",
+ "\t\t\t],",
+ "\t\t\tslash: ${22|true,false|},",
+ "\t\t\tchannel: '${23|guild,dm|}',",
+ "\t\t\tclientPermissions: (m) => clientSendAndPermCheck(m),",
+ "\t\t\tuserPermissions: []",
+ "\t\t});",
+ "\t}",
+ "",
+ "\tpublic override async exec(",
+ "\t\tmessage: CommandMessage | SlashMessage,",
+ "\t\targs: { ${6:arg}: ArgType<'${10:argType}'>; ${7:arg}: OptArgType<'${16:argType}'> }",
+ "\t) {",
+ "\t\t$0",
+ "\t}",
+ "}",
+ ]
}
}
diff --git a/assets/Faithful.ttf b/assets/Faithful.ttf
new file mode 100644
index 0000000..aaadb94
--- /dev/null
+++ b/assets/Faithful.ttf
Binary files differ
diff --git a/assets/minecraft_font.ttf b/assets/minecraft_font.ttf
new file mode 100644
index 0000000..61b4610
--- /dev/null
+++ b/assets/minecraft_font.ttf
Binary files differ
diff --git a/package.json b/package.json
index 97e35ef..f074fd9 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"license": "CC-BY-NC-SA-4.0",
"scripts": {
"build:esbuild": "yarn rimraf dist && yarn esbuild --sourcemap=inline --outdir=dist --platform=node --target=es2020 --format=esm --log-level=warning src/**/*.ts",
- "build:tsc": "yarn rimraf dist && yarn tsc",
+ "build:tsc": "yarn tsc",
"build:tsc:no-emit": "yarn tsc --noEmit",
"start:raw": "node --enable-source-maps --experimental-json-modules --no-warnings dist/src/bot.js",
"start:esbuild": "yarn build:esbuild && yarn start:raw",
@@ -58,28 +58,29 @@
}
},
"dependencies": {
- "@discordjs/builders": "^0.15.0",
- "@discordjs/rest": "^0.5.0",
+ "@discordjs/builders": "^1.1.0",
+ "@discordjs/rest": "^1.0.1",
+ "@ironm00n/nbt-ts": "^1.4.0",
"@notenoughupdates/discord.js-minesweeper": "^1.0.10",
"@notenoughupdates/events-intercept": "^3.0.1",
"@notenoughupdates/humanize-duration": "^4.0.1",
"@notenoughupdates/simplify-number": "^1.0.1",
"@notenoughupdates/wolfram-alpha-api": "^1.0.2",
- "@sentry/integrations": "^7.5.1",
- "@sentry/node": "^7.5.1",
- "@sentry/tracing": "^7.5.1",
+ "@sentry/integrations": "^7.9.0",
+ "@sentry/node": "^7.9.0",
+ "@sentry/tracing": "^7.9.0",
"canvas": "^2.9.3",
"chalk": "^5.0.1",
"deep-lock": "^1.0.0",
"discord-akairo": "npm:@notenoughupdates/discord-akairo@dev",
- "discord-api-types": "0.34.0",
+ "discord-api-types": "0.37.1",
"discord.js": "npm:@notenoughupdates/discord.js@dev",
"fuse.js": "^6.6.2",
"gif-to-apng": "^0.1.2",
"googleapis": "^105.0.0",
- "got": "^12.1.0",
+ "got": "^12.3.0",
"lodash": "^4.17.21",
- "mathjs": "^10.6.4",
+ "mathjs": "^11.0.1",
"nanoid": "^4.0.0",
"numeral": "^2.0.6",
"pg": "^8.7.3",
@@ -87,33 +88,34 @@
"prettier": "^2.7.1",
"pretty-bytes": "^6.0.0",
"rimraf": "^3.0.2",
- "sequelize": "6.21.2",
+ "sequelize": "6.21.3",
"tinycolor2": "^1.4.2",
"typescript": "^4.7.4",
"vm2": "^3.9.10"
},
"devDependencies": {
"@sapphire/snowflake": "^3.2.2",
- "@sentry/types": "^7.5.1",
+ "@sentry/types": "^7.9.0",
"@types/eslint": "^8.4.5",
"@types/express": "^4.17.13",
"@types/lodash": "^4.14.182",
- "@types/node": "^18.0.3",
+ "@types/node": "^18.6.4",
"@types/numeral": "^2.0.2",
"@types/pg": "^8.6.5",
- "@types/prettier": "^2.6.3",
+ "@types/prettier": "^2.7.0",
"@types/rimraf": "^3.0.2",
"@types/tinycolor2": "^1.4.3",
- "@types/validator": "^13.7.4",
- "@typescript-eslint/eslint-plugin": "^5.30.5",
- "@typescript-eslint/parser": "^5.30.5",
- "eslint": "^8.19.0",
+ "@types/validator": "^13.7.5",
+ "@typescript-eslint/eslint-plugin": "^5.32.0",
+ "@typescript-eslint/parser": "^5.32.0",
+ "electron": "^20.0.1",
+ "eslint": "^8.21.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-deprecation": "^1.3.2",
"eslint-plugin-import": "^2.26.0",
- "node-fetch": "^3.2.6",
+ "node-fetch": "^3.2.10",
"ts-essentials": "^9.2.0",
- "vitest": "^0.17.1"
+ "vitest": "^0.21.0"
},
"packageManager": "yarn@3.2.2"
}
diff --git a/src/arguments/abbreviatedNumber.ts b/src/arguments/abbreviatedNumber.ts
index eba9214..a7d8ce5 100644
--- a/src/arguments/abbreviatedNumber.ts
+++ b/src/arguments/abbreviatedNumber.ts
@@ -1,5 +1,5 @@
import type { BushArgumentTypeCaster } from '#lib';
-import assert from 'assert';
+import assert from 'assert/strict';
import numeral from 'numeral';
assert(typeof numeral === 'function');
diff --git a/src/arguments/tinyColor.ts b/src/arguments/tinyColor.ts
index 8d01928..148c078 100644
--- a/src/arguments/tinyColor.ts
+++ b/