From acddabb7aaca7775435c69d19d705550a1d37626 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Sat, 31 Jan 2026 13:59:49 -0700 Subject: [PATCH] Make everything case sensitive and also add a existing check for splash text thing --- database/berrydashdatabase.sql | 22 +++++------ database/lncvrtgames.sql | 48 ++++++++++++------------ src/routes/berrydash/splash-text/post.ts | 18 +++++++++ 3 files changed, 53 insertions(+), 35 deletions(-) diff --git a/database/berrydashdatabase.sql b/database/berrydashdatabase.sql index f0a265b..bc56215 100644 --- a/database/berrydashdatabase.sql +++ b/database/berrydashdatabase.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: localhost --- Generation Time: Jan 31, 2026 at 04:12 AM +-- Generation Time: Jan 31, 2026 at 08:57 PM -- Server version: 12.1.2-MariaDB -- PHP Version: 8.5.2 @@ -31,7 +31,7 @@ CREATE TABLE `chatroom_reports` ( `id` bigint(20) NOT NULL, `chatId` bigint(20) NOT NULL, `userId` bigint(20) NOT NULL, - `reason` longtext NOT NULL, + `reason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `timestamp` bigint(20) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -44,7 +44,7 @@ CREATE TABLE `chatroom_reports` ( CREATE TABLE `chats` ( `id` bigint(20) NOT NULL, `userId` bigint(20) NOT NULL, - `content` longtext NOT NULL, + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `timestamp` bigint(20) NOT NULL, `deleted_at` bigint(20) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -56,14 +56,14 @@ CREATE TABLE `chats` ( -- CREATE TABLE `marketplaceicons` ( - `id` varchar(36) NOT NULL, + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `userId` bigint(20) NOT NULL, - `data` mediumtext NOT NULL, - `hash` varchar(128) NOT NULL, + `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `hash` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `timestamp` bigint(20) NOT NULL, `state` tinyint(1) NOT NULL DEFAULT 0, `price` bigint(20) NOT NULL DEFAULT 0, - `name` text NOT NULL, + `name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `place` bigint(20) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -76,7 +76,7 @@ CREATE TABLE `marketplaceicons` ( CREATE TABLE `splashtexts` ( `id` bigint(20) NOT NULL, `userId` bigint(20) NOT NULL, - `content` varchar(72) NOT NULL, + `content` varchar(72) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `timestamp` bigint(20) NOT NULL, `state` tinyint(1) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -89,7 +89,7 @@ CREATE TABLE `splashtexts` ( CREATE TABLE `userdata` ( `id` bigint(20) NOT NULL, - `save_data` longtext NOT NULL DEFAULT '{}', + `save_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}', `legacy_high_score` bigint(20) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -102,10 +102,10 @@ CREATE TABLE `userdata` ( CREATE TABLE `userposts` ( `id` bigint(20) NOT NULL, `userId` bigint(20) NOT NULL, - `content` text NOT NULL, + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `timestamp` bigint(20) NOT NULL, `deleted_at` bigint(20) NOT NULL DEFAULT 0, - `votes` text NOT NULL DEFAULT '{}' + `votes` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci; -- diff --git a/database/lncvrtgames.sql b/database/lncvrtgames.sql index db32936..6be8f7c 100644 --- a/database/lncvrtgames.sql +++ b/database/lncvrtgames.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: localhost --- Generation Time: Jan 30, 2026 at 02:19 AM +-- Generation Time: Jan 31, 2026 at 08:57 PM -- Server version: 12.1.2-MariaDB -- PHP Version: 8.5.2 @@ -29,11 +29,11 @@ SET time_zone = "+00:00"; CREATE TABLE `games` ( `id` bigint(20) NOT NULL, - `name` text NOT NULL, + `name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `official` tinyint(1) NOT NULL DEFAULT 0, `verified` tinyint(1) NOT NULL DEFAULT 0, - `developer` varchar(32) DEFAULT NULL, - `categoryNames` text NOT NULL DEFAULT '\'{}\'' + `developer` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `categoryNames` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci; -- -------------------------------------------------------- @@ -43,13 +43,13 @@ CREATE TABLE `games` ( -- CREATE TABLE `launcherupdates` ( - `id` varchar(24) NOT NULL, + `id` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `releaseDate` bigint(20) NOT NULL, - `downloadUrls` text NOT NULL, - `platforms` text NOT NULL, + `downloadUrls` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `platforms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `hidden` tinyint(1) NOT NULL DEFAULT 1, `place` bigint(20) NOT NULL DEFAULT 0, - `sha512sums` text NOT NULL DEFAULT '[]' + `sha512sums` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '[]' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; -- -------------------------------------------------------- @@ -59,18 +59,18 @@ CREATE TABLE `launcherupdates` ( -- CREATE TABLE `launcherversionmanifest` ( - `id` varchar(24) NOT NULL, - `displayName` text NOT NULL, + `id` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `displayName` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `releaseDate` bigint(20) NOT NULL, - `downloadUrls` text NOT NULL, - `platforms` text NOT NULL, - `executables` text NOT NULL, + `downloadUrls` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `platforms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `executables` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `hidden` tinyint(1) NOT NULL DEFAULT 1, `game` bigint(20) NOT NULL DEFAULT 0, `place` bigint(20) NOT NULL DEFAULT 0, - `sha512sums` text NOT NULL DEFAULT '[]', - `sizes` text NOT NULL DEFAULT '\'[]\'', - `changelog` text DEFAULT NULL, + `sha512sums` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '[]', + `sizes` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '[]', + `changelog` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `category` int(11) NOT NULL DEFAULT -1, `lastRevision` bigint(20) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -82,7 +82,7 @@ CREATE TABLE `launcherversionmanifest` ( -- CREATE TABLE `loaderupdates` ( - `id` varchar(24) NOT NULL, + `id` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `releaseDate` bigint(20) NOT NULL, `hidden` tinyint(1) NOT NULL DEFAULT 1, `place` bigint(20) NOT NULL DEFAULT 0 @@ -96,9 +96,9 @@ CREATE TABLE `loaderupdates` ( CREATE TABLE `resetcodes` ( `id` bigint(20) NOT NULL, - `code` varchar(64) DEFAULT NULL, + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `userId` bigint(20) NOT NULL, - `ip` varchar(255) DEFAULT NULL, + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `timestamp` bigint(20) NOT NULL, `usedTimestamp` bigint(20) NOT NULL DEFAULT 0, `type` int(1) NOT NULL @@ -114,9 +114,9 @@ CREATE TABLE `users` ( `id` bigint(20) NOT NULL, `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `password` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, - `token` varchar(512) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, - `latest_ip` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `token` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `latest_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `register_time` bigint(20) NOT NULL, `leaderboards_banned` tinyint(1) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; @@ -129,8 +129,8 @@ CREATE TABLE `users` ( CREATE TABLE `verifycodes` ( `id` bigint(20) NOT NULL, - `code` varchar(16) DEFAULT NULL, - `ip` varchar(255) DEFAULT NULL, + `code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `timestamp` bigint(20) NOT NULL, `usedTimestamp` bigint(20) NOT NULL DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPRESSED; diff --git a/src/routes/berrydash/splash-text/post.ts b/src/routes/berrydash/splash-text/post.ts index a3f040f..8a0340a 100644 --- a/src/routes/berrydash/splash-text/post.ts +++ b/src/routes/berrydash/splash-text/post.ts @@ -7,6 +7,7 @@ import { } from '../../../lib/util' import { checkAuthorization } from '../../../lib/auth' import { berryDashSplashTexts } from '../../../lib/tables' +import { eq } from 'drizzle-orm' type Body = { token: string @@ -89,6 +90,23 @@ export async function handler (context: Context) { ) } + const exists = await db1 + .select() + .from(berryDashSplashTexts) + .where(eq(berryDashSplashTexts.content, btoa(body.content))) + .limit(1) + .execute() + + if (exists[0]) { + return jsonResponse( + { + success: false, + message: 'That splash text already exists, accepted or denied.' + }, + 409 + ) + } + const result = await validateTurnstile(body.token, ip) if (!result.success) { connection0.end()