From 2f21bff1a2b40597f391e095645346915a342829 Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 4 Sep 2022 18:22:24 +0200 Subject: [PATCH 1/4] fixed corrected everything bonus being applied too often --- backend/src/api/controllers/result.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/controllers/result.ts b/backend/src/api/controllers/result.ts index f0b446cbb..859914993 100644 --- a/backend/src/api/controllers/result.ts +++ b/backend/src/api/controllers/result.ts @@ -452,7 +452,7 @@ async function calculateXp( let modifier = 1; const correctedEverything = charStats - .slice(2) + .slice(1) .every((charStat: number) => charStat === 0); if (acc === 100) { From 002d007f1f3fd7bb1d6acff11e7929b9409df1c3 Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 4 Sep 2022 20:03:09 +0200 Subject: [PATCH 2/4] returning if user got banned --- backend/src/dal/user.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/src/dal/user.ts b/backend/src/dal/user.ts index 837034322..9fdb57fe8 100644 --- a/backend/src/dal/user.ts +++ b/backend/src/dal/user.ts @@ -681,10 +681,12 @@ export async function recordAutoBanEvent( uid: string, maxCount: number, maxHours: number -): Promise { +): Promise { const user = await getUser(uid, "record auto ban event"); - if (user.banned) return; + let ret = false; + + if (user.banned) return ret; const autoBanTimestamps = user.autoBanTimestamps ?? []; @@ -704,10 +706,12 @@ export async function recordAutoBanEvent( }; if (recentAutoBanTimestamps.length > maxCount) { updateObj.banned = true; + ret = true; } await getUsersCollection().updateOne({ uid }, { $set: updateObj }); Logger.logToDb("user_auto_banned", { autoBanTimestamps }, uid); + return ret; } export async function updateProfile( From 18f9785e044c6bb2087e364af0775642e0959767 Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 4 Sep 2022 20:03:27 +0200 Subject: [PATCH 3/4] sending to inbox if user got banned --- backend/src/api/controllers/result.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/backend/src/api/controllers/result.ts b/backend/src/api/controllers/result.ts index 859914993..d4b39d5b3 100644 --- a/backend/src/api/controllers/result.ts +++ b/backend/src/api/controllers/result.ts @@ -34,6 +34,7 @@ import * as George from "../../tasks/george"; import { getDailyLeaderboard } from "../../utils/daily-leaderboards"; import AutoRoleList from "../../constants/auto-roles"; import * as UserDAL from "../../dal/user"; +import { buildMonkeyMail } from "../../utils/monkey-mail"; try { if (anticheatImplemented() === false) throw new Error("undefined"); @@ -248,11 +249,24 @@ export async function addResult( //autoban const autoBanConfig = req.ctx.configuration.users.autoBan; if (autoBanConfig.enabled) { - await recordAutoBanEvent( + const didUserGetBanned = await recordAutoBanEvent( uid, autoBanConfig.maxCount, autoBanConfig.maxHours ); + if (didUserGetBanned) { + const mail = buildMonkeyMail({ + getTemplate: () => ({ + subject: "Banned", + body: "Your account has been automatically banned for triggering the anticheat system. If you believe this is a mistake, please contact support.", + }), + }); + UserDAL.addToInbox( + uid, + [mail], + req.ctx.configuration.users.inbox.maxMail + ); + } } const status = MonkeyStatusCodes.BOT_DETECTED; throw new MonkeyError(status.code, "Possible bot detected"); From d63232680f35871c803f08c05c7ed5799267a77c Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 4 Sep 2022 20:03:53 +0200 Subject: [PATCH 4/4] Revert "clearing webpack console output on rebuild" this causes backend build errors to be cleared --- frontend/package-lock.json | 17 ----------------- frontend/package.json | 1 - frontend/webpack/config.base.js | 2 -- 3 files changed, 20 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7dcaa22a9..8616541c3 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -39,7 +39,6 @@ "@types/tinycolor2": "1.4.3", "buffer": "6.0.3", "circular-dependency-plugin": "5.2.2", - "clean-terminal-webpack-plugin": "3.0.0", "copy-webpack-plugin": "10.2.4", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "3.4.1", @@ -2769,15 +2768,6 @@ "node": ">=6" } }, - "node_modules/clean-terminal-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clean-terminal-webpack-plugin/-/clean-terminal-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-wcgkQZmwEWYYjHblXc0+UGFDtx37S+1qgUQl4EOhhinzSHbZpixWBiasQ91RoCMf5lAm67j1XOt9z+HN+sWkWA==", - "dev": true, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -16635,13 +16625,6 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "clean-terminal-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clean-terminal-webpack-plugin/-/clean-terminal-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-wcgkQZmwEWYYjHblXc0+UGFDtx37S+1qgUQl4EOhhinzSHbZpixWBiasQ91RoCMf5lAm67j1XOt9z+HN+sWkWA==", - "dev": true, - "requires": {} - }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index e5d534d4b..c583ed86f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,7 +27,6 @@ "@types/tinycolor2": "1.4.3", "buffer": "6.0.3", "circular-dependency-plugin": "5.2.2", - "clean-terminal-webpack-plugin": "3.0.0", "copy-webpack-plugin": "10.2.4", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "3.4.1", diff --git a/frontend/webpack/config.base.js b/frontend/webpack/config.base.js index d172fbbd7..50500c46d 100644 --- a/frontend/webpack/config.base.js +++ b/frontend/webpack/config.base.js @@ -3,7 +3,6 @@ const CopyPlugin = require("copy-webpack-plugin"); const CircularDependencyPlugin = require("circular-dependency-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const HtmlWebpackPlugin = require("html-webpack-plugin"); -const CleanTerminalPlugin = require("clean-terminal-webpack-plugin"); let circularImports = 0; @@ -73,7 +72,6 @@ const BASE_CONFIG = { }, }, plugins: [ - new CleanTerminalPlugin(), new CircularDependencyPlugin({ exclude: /node_modules/, include: /./,