feat(bot-discord): cure names (#23)

This commit is contained in:
GramingFoxTeam
2023-09-04 15:49:52 +03:00
parent 4f0571681d
commit 4589bc9a08
5 changed files with 365 additions and 44 deletions

View File

@@ -1,20 +1,22 @@
import { Events } from 'discord.js';
import cureUsername from '../utils/cureUsername.js';
export default {
name: Events.GuildMemberAdd,
once: false,
async execute(_, config, member) {
const mute = await client.db.collection('muted').findOne({
guild_id: member.guild.id,
user_id: member.id
});
name: Events.GuildMemberAdd,
once: false,
async execute(_, config, member) {
cureUsername(member);
const mute = await client.db.collection('muted').findOne({
guild_id: member.guild.id,
user_id: member.id
});
if (mute) {
// Add the roles given.
member.roles.add(mute.support_mute ?
if (mute) {
// Add the roles given.
member.roles.add(mute.support_mute ?
config.mute.supportGiveRoles :
config.mute.giveRoles
);
}
}
}
}
};

View File

@@ -0,0 +1,10 @@
import { Events } from 'discord.js';
import cureUsername from '../utils/cureUsername.js';
export default {
name: Events.GuildMemberUpdate,
once: false,
async execute(_, _, _, newMember) {
cureUsername(newMember);
}
};

View File

@@ -10,6 +10,7 @@
"license": "GPL-3.0-or-later",
"dependencies": {
"@revanced-helper/helper-client": "file:../../../packages/client",
"decancer": "^1.6.5",
"discord.js": "^14.11.0",
"mongodb": "^5.7.0",
"parse-duration": "^1.1.0"
@@ -104,6 +105,15 @@
"node": ">=16.9.0"
}
},
"node_modules/@mongodb-js/saslprep": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz",
"integrity": "sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==",
"optional": true,
"dependencies": {
"sparse-bitfield": "^3.0.3"
}
},
"node_modules/@revanced-helper/helper-client": {
"resolved": "../../../packages/client",
"link": true
@@ -171,6 +181,186 @@
"@types/node": "*"
}
},
"node_modules/@vierofernando/decancer-android-arm-eabi": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-android-arm-eabi/-/decancer-android-arm-eabi-1.6.5.tgz",
"integrity": "sha512-/xPMebqSFb6fePZdwD9Pz8pIc9GkCGlMOQA4ucFtKeepQrMhoil4qN+ri5DUSeW9PFvnj/cEWuPEeNDbFc4WyA==",
"cpu": [
"arm"
],
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-android-arm64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-android-arm64/-/decancer-android-arm64-1.6.5.tgz",
"integrity": "sha512-FraWlT6lfjFuV5L383+XzzFD5I2pzZ5TRDfix4BVXvDxjnO8ZKt4AB7DbWteDVu18zZbuVpBh3Tp1Eu1adidUg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-darwin-arm64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-darwin-arm64/-/decancer-darwin-arm64-1.6.5.tgz",
"integrity": "sha512-pOarySDUPdxf/YQ673HxH+tJubapiiPt7SOuK8lRw3NoiQZ3cOf/LofU8rEUgK/yKfDyWbmQLnvMi1Hl1JTmhg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-darwin-x64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-darwin-x64/-/decancer-darwin-x64-1.6.5.tgz",
"integrity": "sha512-B7JzUC5EHQtA7yJOrdRrKjHWBbzvBaPNAKHBKJ+brAwqa3yStpBodJZTgsfGHidCY8Gje0pGxSZVbPnGs+5Xbg==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-linux-arm-gnueabihf": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm-gnueabihf/-/decancer-linux-arm-gnueabihf-1.6.5.tgz",
"integrity": "sha512-1ALPTMzUo750lIuHn/paZ2wq+GkDXv15dP9w4bmP3ytrYVj8b0uJmb57FexNEIMPf4M0gkGmyNLjq+Y1AJoQvw==",
"cpu": [
"arm"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-linux-arm64-gnu": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm64-gnu/-/decancer-linux-arm64-gnu-1.6.5.tgz",
"integrity": "sha512-RDNTJ9812zlQkWRxZS513xZoSUeRbONzcFX6VDnl/Lx20NVRZOryF8o4EtKDwzEd3kQrIr2tQlZyLLLsTGL48g==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-linux-arm64-musl": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm64-musl/-/decancer-linux-arm64-musl-1.6.5.tgz",
"integrity": "sha512-Qnm6yQxvUF8uojyIIUiZepTZIyJN2jdqvm2QptxfB1LGABkWCpTlv+xml8KTPFTUcPT1Epwye1FaVEwd90W7VQ==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-linux-x64-gnu": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-x64-gnu/-/decancer-linux-x64-gnu-1.6.5.tgz",
"integrity": "sha512-eKdF0jsdVpm+lcDHALqtH79Z8vPX5qsoJHM2YHrQ5pJ3khP2+OcEYdAyis2rl438OK6NJyQZfECSUSj9dtfAeQ==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-linux-x64-musl": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-x64-musl/-/decancer-linux-x64-musl-1.6.5.tgz",
"integrity": "sha512-RaJoJSIkLSu0l4tODVFWoeE+4BSVjHUn+Gb3yQKn5DHmsl1/EOuj6rlwX6uddleV9aQIDEAljSL3SExNZbmm2A==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-win32-arm64-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-arm64-msvc/-/decancer-win32-arm64-msvc-1.6.5.tgz",
"integrity": "sha512-SXI6r8m+J4vYCvjKQeafukSpBORU9wzM38SkBhjdp8wfcHVYfjVtoHVr4JxkpNfMJoIhv9j2MJYIaYVExvw8pg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-win32-ia32-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-ia32-msvc/-/decancer-win32-ia32-msvc-1.6.5.tgz",
"integrity": "sha512-Ml6Gx6iwOzLopcH8BEd3Kn2MQ1bg5S4mKHQrxNn2MK3SqCLNzZKZhoWe18aCzaKLnwTTkcZvXNcZk1OLPLxmUw==",
"cpu": [
"ia32"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vierofernando/decancer-win32-x64-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-x64-msvc/-/decancer-win32-x64-msvc-1.6.5.tgz",
"integrity": "sha512-fnMKkLkYJ/K/e1jo6WfwpoI4eNEkcWsA/rJMMF6XGLD6YhHnZZdlugqsbSK8j4GiBBTfgj6yCeCMEfLe2QP15w==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@vladfrangu/async_event_emitter": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz",
@@ -199,6 +389,28 @@
"node": ">=10.16.0"
}
},
"node_modules/decancer": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/decancer/-/decancer-1.6.5.tgz",
"integrity": "sha512-7p9ShXWXwKwTIwa5VoFtvUpIWMI4MEgCYLJqOwczBDyEHR65GhTxW/l0V/fazxV3w9KvlmoHI0HtTTI3nSNy1A==",
"engines": {
"node": ">= 16"
},
"optionalDependencies": {
"@vierofernando/decancer-android-arm-eabi": "1.6.5",
"@vierofernando/decancer-android-arm64": "1.6.5",
"@vierofernando/decancer-darwin-arm64": "1.6.5",
"@vierofernando/decancer-darwin-x64": "1.6.5",
"@vierofernando/decancer-linux-arm-gnueabihf": "1.6.5",
"@vierofernando/decancer-linux-arm64-gnu": "1.6.5",
"@vierofernando/decancer-linux-arm64-musl": "1.6.5",
"@vierofernando/decancer-linux-x64-gnu": "1.6.5",
"@vierofernando/decancer-linux-x64-musl": "1.6.5",
"@vierofernando/decancer-win32-arm64-msvc": "1.6.5",
"@vierofernando/decancer-win32-ia32-msvc": "1.6.5",
"@vierofernando/decancer-win32-x64-msvc": "1.6.5"
}
},
"node_modules/discord-api-types": {
"version": "0.37.43",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.43.tgz",
@@ -295,9 +507,9 @@
"optional": true
},
"node_modules/mongodb": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.7.0.tgz",
"integrity": "sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw==",
"version": "5.8.1",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.8.1.tgz",
"integrity": "sha512-wKyh4kZvm6NrCPH8AxyzXm3JBoEf4Xulo0aUWh3hCgwgYJxyQ1KLST86ZZaSWdj6/kxYUA3+YZuyADCE61CMSg==",
"dependencies": {
"bson": "^5.4.0",
"mongodb-connection-string-url": "^2.6.0",
@@ -307,12 +519,12 @@
"node": ">=14.20.1"
},
"optionalDependencies": {
"saslprep": "^1.0.3"
"@mongodb-js/saslprep": "^1.1.0"
},
"peerDependencies": {
"@aws-sdk/credential-providers": "^3.201.0",
"@mongodb-js/zstd": "^1.1.0",
"kerberos": "^2.0.1",
"@aws-sdk/credential-providers": "^3.188.0",
"@mongodb-js/zstd": "^1.0.0",
"kerberos": "^1.0.0 || ^2.0.0",
"mongodb-client-encryption": ">=2.3.0 <3",
"snappy": "^7.2.2"
},
@@ -415,18 +627,6 @@
}
]
},
"node_modules/saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"dependencies": {
"sparse-bitfield": "^3.0.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
@@ -648,6 +848,15 @@
"ws": "^8.13.0"
}
},
"@mongodb-js/saslprep": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz",
"integrity": "sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"@revanced-helper/helper-client": {
"version": "file:../../../packages/client",
"requires": {
@@ -705,6 +914,78 @@
"@types/node": "*"
}
},
"@vierofernando/decancer-android-arm-eabi": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-android-arm-eabi/-/decancer-android-arm-eabi-1.6.5.tgz",
"integrity": "sha512-/xPMebqSFb6fePZdwD9Pz8pIc9GkCGlMOQA4ucFtKeepQrMhoil4qN+ri5DUSeW9PFvnj/cEWuPEeNDbFc4WyA==",
"optional": true
},
"@vierofernando/decancer-android-arm64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-android-arm64/-/decancer-android-arm64-1.6.5.tgz",
"integrity": "sha512-FraWlT6lfjFuV5L383+XzzFD5I2pzZ5TRDfix4BVXvDxjnO8ZKt4AB7DbWteDVu18zZbuVpBh3Tp1Eu1adidUg==",
"optional": true
},
"@vierofernando/decancer-darwin-arm64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-darwin-arm64/-/decancer-darwin-arm64-1.6.5.tgz",
"integrity": "sha512-pOarySDUPdxf/YQ673HxH+tJubapiiPt7SOuK8lRw3NoiQZ3cOf/LofU8rEUgK/yKfDyWbmQLnvMi1Hl1JTmhg==",
"optional": true
},
"@vierofernando/decancer-darwin-x64": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-darwin-x64/-/decancer-darwin-x64-1.6.5.tgz",
"integrity": "sha512-B7JzUC5EHQtA7yJOrdRrKjHWBbzvBaPNAKHBKJ+brAwqa3yStpBodJZTgsfGHidCY8Gje0pGxSZVbPnGs+5Xbg==",
"optional": true
},
"@vierofernando/decancer-linux-arm-gnueabihf": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm-gnueabihf/-/decancer-linux-arm-gnueabihf-1.6.5.tgz",
"integrity": "sha512-1ALPTMzUo750lIuHn/paZ2wq+GkDXv15dP9w4bmP3ytrYVj8b0uJmb57FexNEIMPf4M0gkGmyNLjq+Y1AJoQvw==",
"optional": true
},
"@vierofernando/decancer-linux-arm64-gnu": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm64-gnu/-/decancer-linux-arm64-gnu-1.6.5.tgz",
"integrity": "sha512-RDNTJ9812zlQkWRxZS513xZoSUeRbONzcFX6VDnl/Lx20NVRZOryF8o4EtKDwzEd3kQrIr2tQlZyLLLsTGL48g==",
"optional": true
},
"@vierofernando/decancer-linux-arm64-musl": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-arm64-musl/-/decancer-linux-arm64-musl-1.6.5.tgz",
"integrity": "sha512-Qnm6yQxvUF8uojyIIUiZepTZIyJN2jdqvm2QptxfB1LGABkWCpTlv+xml8KTPFTUcPT1Epwye1FaVEwd90W7VQ==",
"optional": true
},
"@vierofernando/decancer-linux-x64-gnu": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-x64-gnu/-/decancer-linux-x64-gnu-1.6.5.tgz",
"integrity": "sha512-eKdF0jsdVpm+lcDHALqtH79Z8vPX5qsoJHM2YHrQ5pJ3khP2+OcEYdAyis2rl438OK6NJyQZfECSUSj9dtfAeQ==",
"optional": true
},
"@vierofernando/decancer-linux-x64-musl": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-linux-x64-musl/-/decancer-linux-x64-musl-1.6.5.tgz",
"integrity": "sha512-RaJoJSIkLSu0l4tODVFWoeE+4BSVjHUn+Gb3yQKn5DHmsl1/EOuj6rlwX6uddleV9aQIDEAljSL3SExNZbmm2A==",
"optional": true
},
"@vierofernando/decancer-win32-arm64-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-arm64-msvc/-/decancer-win32-arm64-msvc-1.6.5.tgz",
"integrity": "sha512-SXI6r8m+J4vYCvjKQeafukSpBORU9wzM38SkBhjdp8wfcHVYfjVtoHVr4JxkpNfMJoIhv9j2MJYIaYVExvw8pg==",
"optional": true
},
"@vierofernando/decancer-win32-ia32-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-ia32-msvc/-/decancer-win32-ia32-msvc-1.6.5.tgz",
"integrity": "sha512-Ml6Gx6iwOzLopcH8BEd3Kn2MQ1bg5S4mKHQrxNn2MK3SqCLNzZKZhoWe18aCzaKLnwTTkcZvXNcZk1OLPLxmUw==",
"optional": true
},
"@vierofernando/decancer-win32-x64-msvc": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/@vierofernando/decancer-win32-x64-msvc/-/decancer-win32-x64-msvc-1.6.5.tgz",
"integrity": "sha512-fnMKkLkYJ/K/e1jo6WfwpoI4eNEkcWsA/rJMMF6XGLD6YhHnZZdlugqsbSK8j4GiBBTfgj6yCeCMEfLe2QP15w==",
"optional": true
},
"@vladfrangu/async_event_emitter": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz",
@@ -723,6 +1004,25 @@
"streamsearch": "^1.1.0"
}
},
"decancer": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/decancer/-/decancer-1.6.5.tgz",
"integrity": "sha512-7p9ShXWXwKwTIwa5VoFtvUpIWMI4MEgCYLJqOwczBDyEHR65GhTxW/l0V/fazxV3w9KvlmoHI0HtTTI3nSNy1A==",
"requires": {
"@vierofernando/decancer-android-arm-eabi": "1.6.5",
"@vierofernando/decancer-android-arm64": "1.6.5",
"@vierofernando/decancer-darwin-arm64": "1.6.5",
"@vierofernando/decancer-darwin-x64": "1.6.5",
"@vierofernando/decancer-linux-arm-gnueabihf": "1.6.5",
"@vierofernando/decancer-linux-arm64-gnu": "1.6.5",
"@vierofernando/decancer-linux-arm64-musl": "1.6.5",
"@vierofernando/decancer-linux-x64-gnu": "1.6.5",
"@vierofernando/decancer-linux-x64-musl": "1.6.5",
"@vierofernando/decancer-win32-arm64-msvc": "1.6.5",
"@vierofernando/decancer-win32-ia32-msvc": "1.6.5",
"@vierofernando/decancer-win32-x64-msvc": "1.6.5"
}
},
"discord-api-types": {
"version": "0.37.43",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.43.tgz",
@@ -796,13 +1096,13 @@
"optional": true
},
"mongodb": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.7.0.tgz",
"integrity": "sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw==",
"version": "5.8.1",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.8.1.tgz",
"integrity": "sha512-wKyh4kZvm6NrCPH8AxyzXm3JBoEf4Xulo0aUWh3hCgwgYJxyQ1KLST86ZZaSWdj6/kxYUA3+YZuyADCE61CMSg==",
"requires": {
"@mongodb-js/saslprep": "^1.1.0",
"bson": "^5.4.0",
"mongodb-connection-string-url": "^2.6.0",
"saslprep": "^1.0.3",
"socks": "^2.7.1"
}
},
@@ -853,15 +1153,6 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",

View File

@@ -9,6 +9,7 @@
"license": "GPL-3.0-or-later",
"dependencies": {
"@revanced-helper/helper-client": "file:../../../packages/client",
"decancer": "^1.6.5",
"discord.js": "^14.11.0",
"mongodb": "^5.7.0",
"parse-duration": "^1.1.0"

View File

@@ -0,0 +1,17 @@
import decancer from 'decancer';
export default async function cureUsername(member) {
let toCure = member.user.username;
if (member.nickname) toCure = member.nickname;
if (!/^[\x20-\x7D]+$/.test(toCure)) {
// Cure username/nickname if there's non-ascii characters.
let curedName = decancer(toCure).toString();
// If the output is empty, rename them to "ReVanced member".
if (/^\s*$/.test(curedName)) curedName = 'ReVanced member';
member.setNickname(curedName);
}
}