summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/config/Config.ts4
-rw-r--r--src/util/config/types/ApiConfiguration.ts2
-rw-r--r--src/util/config/types/CdnConfiguration.ts2
-rw-r--r--src/util/config/types/ClientConfiguration.ts6
-rw-r--r--src/util/config/types/DefaultsConfiguration.ts6
-rw-r--r--src/util/config/types/EndpointConfiguration.ts2
-rw-r--r--src/util/config/types/ExternalTokensConfiguration.ts2
-rw-r--r--src/util/config/types/GeneralConfiguration.ts5
-rw-r--r--src/util/config/types/GifConfiguration.ts8
-rw-r--r--src/util/config/types/GuildConfiguration.ts4
-rw-r--r--src/util/config/types/KafkaConfiguration.ts4
-rw-r--r--src/util/config/types/LimitConfigurations.ts9
-rw-r--r--src/util/config/types/LoginConfiguration.ts4
-rw-r--r--src/util/config/types/MetricsConfiguration.ts4
-rw-r--r--src/util/config/types/RabbitMQConfiguration.ts4
-rw-r--r--src/util/config/types/RegionConfiguration.ts26
-rw-r--r--src/util/config/types/RegisterConfiguration.ts30
-rw-r--r--src/util/config/types/SecurityConfiguration.ts3
-rw-r--r--src/util/config/types/SentryConfiguration.ts11
-rw-r--r--src/util/config/types/TemplateConfiguration.ts10
-rw-r--r--src/util/config/types/index.ts2
-rw-r--r--src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts6
-rw-r--r--src/util/config/types/subconfigurations/defaults/GuildDefaults.ts12
-rw-r--r--src/util/config/types/subconfigurations/defaults/UserDefaults.ts8
-rw-r--r--src/util/config/types/subconfigurations/guild/AutoJoin.ts8
-rw-r--r--src/util/config/types/subconfigurations/guild/Discovery.ts10
-rw-r--r--src/util/config/types/subconfigurations/kafka/KafkaBroker.ts2
-rw-r--r--src/util/config/types/subconfigurations/limits/ChannelLimits.ts8
-rw-r--r--src/util/config/types/subconfigurations/limits/GlobalRateLimits.ts12
-rw-r--r--src/util/config/types/subconfigurations/limits/GuildLimits.ts12
-rw-r--r--src/util/config/types/subconfigurations/limits/MessageLimits.ts14
-rw-r--r--src/util/config/types/subconfigurations/limits/RateLimits.ts6
-rw-r--r--src/util/config/types/subconfigurations/limits/UserLimits.ts8
-rw-r--r--src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts18
-rw-r--r--src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts2
-rw-r--r--src/util/config/types/subconfigurations/limits/ratelimits/Route.ts6
-rw-r--r--src/util/config/types/subconfigurations/region/Region.ts2
-rw-r--r--src/util/config/types/subconfigurations/register/DateOfBirth.ts6
-rw-r--r--src/util/config/types/subconfigurations/register/Email.ts12
-rw-r--r--src/util/config/types/subconfigurations/register/Password.ts12
-rw-r--r--src/util/config/types/subconfigurations/security/Captcha.ts10
-rw-r--r--src/util/config/types/subconfigurations/security/TwoFactor.ts4
-rw-r--r--src/util/entities/Application.ts64
-rw-r--r--src/util/entities/Channel.ts13
-rw-r--r--src/util/entities/EmbedCache.ts2
-rw-r--r--src/util/entities/Guild.ts9
-rw-r--r--src/util/entities/Invite.ts10
-rw-r--r--src/util/entities/Member.ts12
-rw-r--r--src/util/entities/User.ts31
-rw-r--r--src/util/entities/UserSettings.ts206
-rw-r--r--src/util/entities/ValidRegistrationTokens.ts4
-rw-r--r--src/util/entities/index.ts2
-rw-r--r--src/util/index.ts2
-rw-r--r--src/util/interfaces/Event.ts10
-rw-r--r--src/util/schemas/ApplicationAuthorizeSchema.ts4
-rw-r--r--src/util/schemas/ApplicationCreateSchema.ts2
-rw-r--r--src/util/schemas/ApplicationModifySchema.ts2
-rw-r--r--src/util/schemas/BotModifySchema.ts2
-rw-r--r--src/util/schemas/ChannelPermissionOverwriteSchema.ts2
-rw-r--r--src/util/schemas/ChannelReorderSchema.ts2
-rw-r--r--src/util/schemas/GatewayPayloadSchema.ts2
-rw-r--r--src/util/schemas/GuildUpdateSchema.ts3
-rw-r--r--src/util/schemas/MemberChangeProfileSchema.ts4
-rw-r--r--src/util/schemas/RolePositionUpdateSchema.ts2
-rw-r--r--src/util/schemas/UserGuildSettingsSchema.ts2
-rw-r--r--src/util/schemas/UserProfileModifySchema.ts6
-rw-r--r--src/util/schemas/UserSettingsSchema.ts2
-rw-r--r--src/util/schemas/index.ts2
-rw-r--r--src/util/util/BitField.ts6
-rw-r--r--src/util/util/Config.ts11
-rw-r--r--src/util/util/Constants.ts2
-rw-r--r--src/util/util/Database.ts28
-rw-r--r--src/util/util/InvisibleCharacters.ts2
-rw-r--r--src/util/util/Rights.ts4
-rw-r--r--src/util/util/index.ts2
75 files changed, 409 insertions, 374 deletions
diff --git a/src/util/config/Config.ts b/src/util/config/Config.ts
index b6c725f5..8a057a44 100644
--- a/src/util/config/Config.ts
+++ b/src/util/config/Config.ts
@@ -17,7 +17,7 @@ import {
 	RegisterConfiguration,
 	SecurityConfiguration,
 	SentryConfiguration,
-	TemplateConfiguration
+	TemplateConfiguration,
 } from "../config";
 
 export class ConfigValue {
@@ -40,4 +40,4 @@ export class ConfigValue {
 	sentry: SentryConfiguration = new SentryConfiguration();
 	defaults: DefaultsConfiguration = new DefaultsConfiguration();
 	external: ExternalTokensConfiguration = new ExternalTokensConfiguration();
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/ApiConfiguration.ts b/src/util/config/types/ApiConfiguration.ts
index 16b1efba..442a5986 100644
--- a/src/util/config/types/ApiConfiguration.ts
+++ b/src/util/config/types/ApiConfiguration.ts
@@ -2,4 +2,4 @@ export class ApiConfiguration {
 	defaultVersion: string = "9";
 	activeVersions: string[] = ["6", "7", "8", "9"];
 	useFosscordEnhancements: boolean = true;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/CdnConfiguration.ts b/src/util/config/types/CdnConfiguration.ts
index 3c4dd163..ef8a003b 100644
--- a/src/util/config/types/CdnConfiguration.ts
+++ b/src/util/config/types/CdnConfiguration.ts
@@ -7,4 +7,4 @@ export class CdnConfiguration extends EndpointConfiguration {
 
 	endpointPublic: string | null = "http://localhost:3001";
 	endpointPrivate: string | null = "http://localhost:3001";
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/ClientConfiguration.ts b/src/util/config/types/ClientConfiguration.ts
index 0d3c8490..c2d4172c 100644
--- a/src/util/config/types/ClientConfiguration.ts
+++ b/src/util/config/types/ClientConfiguration.ts
@@ -1,6 +1,6 @@
 import { ClientReleaseConfiguration } from ".";
 
 export class ClientConfiguration {
-    releases: ClientReleaseConfiguration = new ClientReleaseConfiguration();
-    useTestClient: boolean = false;
-}
\ No newline at end of file
+	releases: ClientReleaseConfiguration = new ClientReleaseConfiguration();
+	useTestClient: boolean = false;
+}
diff --git a/src/util/config/types/DefaultsConfiguration.ts b/src/util/config/types/DefaultsConfiguration.ts
index 9b02a590..d5ee39e7 100644
--- a/src/util/config/types/DefaultsConfiguration.ts
+++ b/src/util/config/types/DefaultsConfiguration.ts
@@ -1,6 +1,6 @@
 import { GuildDefaults, UserDefaults } from ".";
 
 export class DefaultsConfiguration {
-    guild: GuildDefaults = new GuildDefaults();
-    user: UserDefaults = new UserDefaults();
-}
\ No newline at end of file
+	guild: GuildDefaults = new GuildDefaults();
+	user: UserDefaults = new UserDefaults();
+}
diff --git a/src/util/config/types/EndpointConfiguration.ts b/src/util/config/types/EndpointConfiguration.ts
index 87baea31..5e5e8ca9 100644
--- a/src/util/config/types/EndpointConfiguration.ts
+++ b/src/util/config/types/EndpointConfiguration.ts
@@ -2,4 +2,4 @@ export class EndpointConfiguration {
 	endpointClient: string | null = null;
 	endpointPrivate: string | null = null;
 	endpointPublic: string | null = null;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/ExternalTokensConfiguration.ts b/src/util/config/types/ExternalTokensConfiguration.ts
index 5c020745..22c8b862 100644
--- a/src/util/config/types/ExternalTokensConfiguration.ts
+++ b/src/util/config/types/ExternalTokensConfiguration.ts
@@ -1,3 +1,3 @@
 export class ExternalTokensConfiguration {
 	twitter: string | null = null;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts
index 7c0ffa66..462f93e2 100644
--- a/src/util/config/types/GeneralConfiguration.ts
+++ b/src/util/config/types/GeneralConfiguration.ts
@@ -2,11 +2,12 @@ import { Snowflake } from "@fosscord/util";
 
 export class GeneralConfiguration {
 	instanceName: string = "Fosscord Instance";
-	instanceDescription: string | null = "This is a Fosscord instance made in the pre-release days";
+	instanceDescription: string | null =
+		"This is a Fosscord instance made in the pre-release days";
 	frontPage: string | null = null;
 	tosPage: string | null = null;
 	correspondenceEmail: string | null = null;
 	correspondenceUserID: string | null = null;
 	image: string | null = null;
 	instanceId: string = Snowflake.generate();
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/GifConfiguration.ts b/src/util/config/types/GifConfiguration.ts
index 6a2d520d..565c2ac0 100644
--- a/src/util/config/types/GifConfiguration.ts
+++ b/src/util/config/types/GifConfiguration.ts
@@ -1,5 +1,5 @@
 export class GifConfiguration {
-    enabled: boolean = true;
-    provider: "tenor" = "tenor"; // more coming soon
-    apiKey?: string = "LIVDSRZULELA";
-}
\ No newline at end of file
+	enabled: boolean = true;
+	provider: "tenor" = "tenor"; // more coming soon
+	apiKey?: string = "LIVDSRZULELA";
+}
diff --git a/src/util/config/types/GuildConfiguration.ts b/src/util/config/types/GuildConfiguration.ts
index e77d3fce..42ce2044 100644
--- a/src/util/config/types/GuildConfiguration.ts
+++ b/src/util/config/types/GuildConfiguration.ts
@@ -1,7 +1,7 @@
 import { DiscoveryConfiguration, AutoJoinConfiguration } from ".";
 
 export class GuildConfiguration {
-    discovery: DiscoveryConfiguration = new DiscoveryConfiguration();
-    autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration();
+	discovery: DiscoveryConfiguration = new DiscoveryConfiguration();
+	autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration();
 	defaultFeatures: string[] = [];
 }
diff --git a/src/util/config/types/KafkaConfiguration.ts b/src/util/config/types/KafkaConfiguration.ts
index 7932f49e..a3aa8058 100644
--- a/src/util/config/types/KafkaConfiguration.ts
+++ b/src/util/config/types/KafkaConfiguration.ts
@@ -1,5 +1,5 @@
 import { KafkaBroker } from ".";
 
 export class KafkaConfiguration {
-    brokers: KafkaBroker[] | null = null;
-}
\ No newline at end of file
+	brokers: KafkaBroker[] | null = null;
+}
diff --git a/src/util/config/types/LimitConfigurations.ts b/src/util/config/types/LimitConfigurations.ts
index 105fd1d6..912d6a4b 100644
--- a/src/util/config/types/LimitConfigurations.ts
+++ b/src/util/config/types/LimitConfigurations.ts
@@ -1,4 +1,11 @@
-import { ChannelLimits, GlobalRateLimits, GuildLimits, MessageLimits, RateLimits, UserLimits } from ".";
+import {
+	ChannelLimits,
+	GlobalRateLimits,
+	GuildLimits,
+	MessageLimits,
+	RateLimits,
+	UserLimits,
+} from ".";
 
 export class LimitsConfiguration {
 	user: UserLimits = new UserLimits();
diff --git a/src/util/config/types/LoginConfiguration.ts b/src/util/config/types/LoginConfiguration.ts
index 255c9451..d8b737b9 100644
--- a/src/util/config/types/LoginConfiguration.ts
+++ b/src/util/config/types/LoginConfiguration.ts
@@ -1,3 +1,3 @@
 export class LoginConfiguration {
-    requireCaptcha: boolean = false;
-}
\ No newline at end of file
+	requireCaptcha: boolean = false;
+}
diff --git a/src/util/config/types/MetricsConfiguration.ts b/src/util/config/types/MetricsConfiguration.ts
index d7cd4937..f6b1d8e6 100644
--- a/src/util/config/types/MetricsConfiguration.ts
+++ b/src/util/config/types/MetricsConfiguration.ts
@@ -1,3 +1,3 @@
 export class MetricsConfiguration {
-    timeout: number = 30000;
-}
\ No newline at end of file
+	timeout: number = 30000;
+}
diff --git a/src/util/config/types/RabbitMQConfiguration.ts b/src/util/config/types/RabbitMQConfiguration.ts
index ce4a9123..bd4b6ca3 100644
--- a/src/util/config/types/RabbitMQConfiguration.ts
+++ b/src/util/config/types/RabbitMQConfiguration.ts
@@ -1,3 +1,3 @@
 export class RabbitMQConfiguration {
-    host: string | null = null;
-}
\ No newline at end of file
+	host: string | null = null;
+}
diff --git a/src/util/config/types/RegionConfiguration.ts b/src/util/config/types/RegionConfiguration.ts
index 09d9271c..ce4bf242 100644
--- a/src/util/config/types/RegionConfiguration.ts
+++ b/src/util/config/types/RegionConfiguration.ts
@@ -1,16 +1,16 @@
 import { Region } from ".";
 
 export class RegionConfiguration {
-    default: string = "fosscord";
-    useDefaultAsOptimal: boolean = true;
-    available: Region[] = [
-        {
-            id: "fosscord",
-            name: "Fosscord",
-            endpoint: "127.0.0.1:3004",
-            vip: false,
-            custom: false,
-            deprecated: false,
-        },
-    ];
-}
\ No newline at end of file
+	default: string = "fosscord";
+	useDefaultAsOptimal: boolean = true;
+	available: Region[] = [
+		{
+			id: "fosscord",
+			name: "Fosscord",
+			endpoint: "127.0.0.1:3004",
+			vip: false,
+			custom: false,
+			deprecated: false,
+		},
+	];
+}
diff --git a/src/util/config/types/RegisterConfiguration.ts b/src/util/config/types/RegisterConfiguration.ts
index 75b40417..b9096e66 100644
--- a/src/util/config/types/RegisterConfiguration.ts
+++ b/src/util/config/types/RegisterConfiguration.ts
@@ -1,16 +1,20 @@
-import { DateOfBirthConfiguration, EmailConfiguration, PasswordConfiguration } from ".";
+import {
+	DateOfBirthConfiguration,
+	EmailConfiguration,
+	PasswordConfiguration,
+} from ".";
 
 export class RegisterConfiguration {
-    email: EmailConfiguration = new EmailConfiguration();
-    dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration();
-    password: PasswordConfiguration = new PasswordConfiguration();
-    disabled: boolean = false;
-    requireCaptcha: boolean = true;
-    requireInvite: boolean = false;
-    guestsRequireInvite: boolean = true;
-    allowNewRegistration: boolean = true;
-    allowMultipleAccounts: boolean = true;
-    blockProxies: boolean = true;
-    incrementingDiscriminators: boolean = false; // random otherwise
-    defaultRights: string = "30644591655940";	// See `npm run generate:rights`
+	email: EmailConfiguration = new EmailConfiguration();
+	dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration();
+	password: PasswordConfiguration = new PasswordConfiguration();
+	disabled: boolean = false;
+	requireCaptcha: boolean = true;
+	requireInvite: boolean = false;
+	guestsRequireInvite: boolean = true;
+	allowNewRegistration: boolean = true;
+	allowMultipleAccounts: boolean = true;
+	blockProxies: boolean = true;
+	incrementingDiscriminators: boolean = false; // random otherwise
+	defaultRights: string = "30644591655940"; // See `npm run generate:rights`
 }
diff --git a/src/util/config/types/SecurityConfiguration.ts b/src/util/config/types/SecurityConfiguration.ts
index 0fa396c9..6d505140 100644
--- a/src/util/config/types/SecurityConfiguration.ts
+++ b/src/util/config/types/SecurityConfiguration.ts
@@ -11,7 +11,8 @@ export class SecurityConfiguration {
 	// X-Forwarded-For for nginx/reverse proxies
 	// CF-Connecting-IP for cloudflare
 	forwadedFor: string | null = null;
-	ipdataApiKey: string | null = "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9";
+	ipdataApiKey: string | null =
+		"eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9";
 	mfaBackupCodeCount: number = 10;
 	statsWorldReadable: boolean = true;
 	defaultRegistrationTokenExpiration: number = 1000 * 60 * 60 * 24 * 7; //1 week
diff --git a/src/util/config/types/SentryConfiguration.ts b/src/util/config/types/SentryConfiguration.ts
index 836094a1..57f548cd 100644
--- a/src/util/config/types/SentryConfiguration.ts
+++ b/src/util/config/types/SentryConfiguration.ts
@@ -1,8 +1,9 @@
 import { hostname } from "os";
 
 export class SentryConfiguration {
-    enabled: boolean = false;
-    endpoint: string = "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6";
-    traceSampleRate: number = 1.0;
-    environment: string = hostname();
-}
\ No newline at end of file
+	enabled: boolean = false;
+	endpoint: string =
+		"https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6";
+	traceSampleRate: number = 1.0;
+	environment: string = hostname();
+}
diff --git a/src/util/config/types/TemplateConfiguration.ts b/src/util/config/types/TemplateConfiguration.ts
index 4a9aa8f2..aade2934 100644
--- a/src/util/config/types/TemplateConfiguration.ts
+++ b/src/util/config/types/TemplateConfiguration.ts
@@ -1,6 +1,6 @@
 export class TemplateConfiguration {
-    enabled: boolean = true;
-    allowTemplateCreation: boolean = true;
-    allowDiscordTemplates: boolean = true;
-    allowRaws: boolean = true;
-}
\ No newline at end of file
+	enabled: boolean = true;
+	allowTemplateCreation: boolean = true;
+	allowDiscordTemplates: boolean = true;
+	allowRaws: boolean = true;
+}
diff --git a/src/util/config/types/index.ts b/src/util/config/types/index.ts
index f20fe121..d7251d97 100644
--- a/src/util/config/types/index.ts
+++ b/src/util/config/types/index.ts
@@ -17,4 +17,4 @@ export * from "./RegisterConfiguration";
 export * from "./SecurityConfiguration";
 export * from "./SentryConfiguration";
 export * from "./TemplateConfiguration";
-export * from "./subconfigurations";
\ No newline at end of file
+export * from "./subconfigurations";
diff --git a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
index 54e7f365..b082b711 100644
--- a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
+++ b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
@@ -1,4 +1,4 @@
 export class ClientReleaseConfiguration {
-    useLocalRelease: boolean = true; //TODO
-    upstreamVersion: string = "0.0.264";
-}
\ No newline at end of file
+	useLocalRelease: boolean = true; //TODO
+	upstreamVersion: string = "0.0.264";
+}
diff --git a/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts
index 27e8eae7..576cc3bc 100644
--- a/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts
+++ b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts
@@ -1,7 +1,7 @@
 export class GuildDefaults {
-    maxPresences: number = 250000;
-    maxVideoChannelUsers: number = 200;
-    afkTimeout: number = 300;
-    defaultMessageNotifications: number = 1;
-    explicitContentFilter: number = 0;
-}
\ No newline at end of file
+	maxPresences: number = 250000;
+	maxVideoChannelUsers: number = 200;
+	afkTimeout: number = 300;
+	defaultMessageNotifications: number = 1;
+	explicitContentFilter: number = 0;
+}
diff --git a/src/util/config/types/subconfigurations/defaults/UserDefaults.ts b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts
index f20a14b6..2c2f0043 100644
--- a/src/util/config/types/subconfigurations/defaults/UserDefaults.ts
+++ b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts
@@ -1,5 +1,5 @@
 export class UserDefaults {
-    premium: boolean = true;
-    premiumType: number = 2;
-    verified: boolean = true;
-}
\ No newline at end of file
+	premium: boolean = true;
+	premiumType: number = 2;
+	verified: boolean = true;
+}
diff --git a/src/util/config/types/subconfigurations/guild/AutoJoin.ts b/src/util/config/types/subconfigurations/guild/AutoJoin.ts
index 47dfe5ec..4d7af352 100644
--- a/src/util/config/types/subconfigurations/guild/AutoJoin.ts
+++ b/src/util/config/types/subconfigurations/guild/AutoJoin.ts
@@ -1,5 +1,5 @@
 export class AutoJoinConfiguration {
-    enabled: boolean = true;
-    guilds: string[] = [];
-    canLeave: boolean = true;
-}
\ No newline at end of file
+	enabled: boolean = true;
+	guilds: string[] = [];
+	canLeave: boolean = true;
+}
diff --git a/src/util/config/types/subconfigurations/guild/Discovery.ts b/src/util/config/types/subconfigurations/guild/Discovery.ts
index 59d8a8ae..a7cb81db 100644
--- a/src/util/config/types/subconfigurations/guild/Discovery.ts
+++ b/src/util/config/types/subconfigurations/guild/Discovery.ts
@@ -1,6 +1,6 @@
 export class DiscoveryConfiguration {
-    showAllGuilds: boolean = false;
-    useRecommendation: boolean = false; // TODO: Recommendation, privacy concern?
-    offset: number = 0;
-    limit: number = 24;
-}
\ No newline at end of file
+	showAllGuilds: boolean = false;
+	useRecommendation: boolean = false; // TODO: Recommendation, privacy concern?
+	offset: number = 0;
+	limit: number = 24;
+}
diff --git a/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts
index 4f9a5e51..f7dc1cf7 100644
--- a/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts
+++ b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts
@@ -1,4 +1,4 @@
 export interface KafkaBroker {
 	ip: string;
 	port: number;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/subconfigurations/limits/ChannelLimits.ts b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts
index 2f8f9485..76eeeb41 100644
--- a/src/util/config/types/subconfigurations/limits/ChannelLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts
@@ -1,5 +1,5 @@
 export class ChannelLimits {
-    maxPins: number = 500;
-    maxTopic: number = 1024;
-    maxWebhooks: number = 100;
-}
\ No newline at end of file
+	maxPins: number = 500;
+	maxTopic: number = 1024;
+	maxWebhooks: number = 100;
+}
diff --git a/src/util/config/types/subconfigurations/limits/GlobalRateLimits.ts b/src/util/config/types/subconfigurations/limits/GlobalRateLimits.ts
index 4029abbe..d7c8a846 100644
--- a/src/util/config/types/subconfigurations/limits/GlobalRateLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/GlobalRateLimits.ts
@@ -1,6 +1,14 @@
 export class GlobalRateLimits {
-	register: GlobalRateLimit = { limit: 25, window: 60 * 60 * 1000, enabled: true };
-	sendMessage: GlobalRateLimit = { limit: 200, window: 60 * 1000, enabled: true };
+	register: GlobalRateLimit = {
+		limit: 25,
+		window: 60 * 60 * 1000,
+		enabled: true,
+	};
+	sendMessage: GlobalRateLimit = {
+		limit: 200,
+		window: 60 * 1000,
+		enabled: true,
+	};
 }
 
 export class GlobalRateLimit {
diff --git a/src/util/config/types/subconfigurations/limits/GuildLimits.ts b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
index c5bc7884..ecd49f1e 100644
--- a/src/util/config/types/subconfigurations/limits/GuildLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
@@ -1,7 +1,7 @@
 export class GuildLimits {
-    maxRoles: number = 1000;
-    maxEmojis: number = 2000;
-    maxMembers: number = 25000000;
-    maxChannels: number = 65535;
-    maxChannelsInCategory: number = 65535;
-}
\ No newline at end of file
+	maxRoles: number = 1000;
+	maxEmojis: number = 2000;
+	maxMembers: number = 25000000;
+	maxChannels: number = 65535;
+	maxChannelsInCategory: number = 65535;
+}
diff --git a/src/util/config/types/subconfigurations/limits/MessageLimits.ts b/src/util/config/types/subconfigurations/limits/MessageLimits.ts
index 51576b90..684a5057 100644
--- a/src/util/config/types/subconfigurations/limits/MessageLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/MessageLimits.ts
@@ -1,8 +1,8 @@
 export class MessageLimits {
-    maxCharacters: number = 1048576;
-    maxTTSCharacters: number = 160;
-    maxReactions: number = 2048;
-    maxAttachmentSize: number = 1024 * 1024 * 1024;
-    maxBulkDelete: number = 1000;
-    maxEmbedDownloadSize: number = 1024 * 1024 * 5;
-}
\ No newline at end of file
+	maxCharacters: number = 1048576;
+	maxTTSCharacters: number = 160;
+	maxReactions: number = 2048;
+	maxAttachmentSize: number = 1024 * 1024 * 1024;
+	maxBulkDelete: number = 1000;
+	maxEmbedDownloadSize: number = 1024 * 1024 * 5;
+}
diff --git a/src/util/config/types/subconfigurations/limits/RateLimits.ts b/src/util/config/types/subconfigurations/limits/RateLimits.ts
index 3e05a18b..dfce9341 100644
--- a/src/util/config/types/subconfigurations/limits/RateLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/RateLimits.ts
@@ -4,15 +4,15 @@ export class RateLimits {
 	enabled: boolean = false;
 	ip: Omit<RateLimitOptions, "bot_count"> = {
 		count: 500,
-		window: 5
+		window: 5,
 	};
 	global: RateLimitOptions = {
 		count: 250,
-		window: 5
+		window: 5,
 	};
 	error: RateLimitOptions = {
 		count: 10,
-		window: 5
+		window: 5,
 	};
 	routes: RouteRateLimit = new RouteRateLimit();
 }
diff --git a/src/util/config/types/subconfigurations/limits/UserLimits.ts b/src/util/config/types/subconfigurations/limits/UserLimits.ts
index 0d10e0b3..b8bdcb2d 100644
--- a/src/util/config/types/subconfigurations/limits/UserLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/UserLimits.ts
@@ -1,5 +1,5 @@
 export class UserLimits {
-    maxGuilds: number = 1048576;
-    maxUsername: number = 127;
-    maxFriends: number = 5000;
-}
\ No newline at end of file
+	maxGuilds: number = 1048576;
+	maxUsername: number = 127;
+	maxFriends: number = 5000;
+}
diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts
index df171044..bd45c349 100644
--- a/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts
@@ -1,12 +1,12 @@
 import { RateLimitOptions } from "./RateLimitOptions";
 
 export class AuthRateLimit {
-    login: RateLimitOptions = {
-        count: 5,
-        window: 60
-    };
-    register: RateLimitOptions = {
-        count: 2,
-        window: 60 * 60 * 12
-    };
-}
\ No newline at end of file
+	login: RateLimitOptions = {
+		count: 5,
+		window: 60,
+	};
+	register: RateLimitOptions = {
+		count: 2,
+		window: 60 * 60 * 12,
+	};
+}
diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
index 7089e28e..829813fb 100644
--- a/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
@@ -3,4 +3,4 @@ export interface RateLimitOptions {
 	count: number;
 	window: number;
 	onyIp?: boolean;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts
index 5d73c2cf..5235334a 100644
--- a/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts
@@ -4,15 +4,15 @@ import { RateLimitOptions } from "./RateLimitOptions";
 export class RouteRateLimit {
 	guild: RateLimitOptions = {
 		count: 5,
-		window: 5
+		window: 5,
 	};
 	webhook: RateLimitOptions = {
 		count: 10,
-		window: 5
+		window: 5,
 	};
 	channel: RateLimitOptions = {
 		count: 10,
-		window: 5
+		window: 5,
 	};
 	auth: AuthRateLimit = new AuthRateLimit();
 	// TODO: rate limit configuration for all routes
diff --git a/src/util/config/types/subconfigurations/region/Region.ts b/src/util/config/types/subconfigurations/region/Region.ts
index a8717e1f..c1bcfd01 100644
--- a/src/util/config/types/subconfigurations/region/Region.ts
+++ b/src/util/config/types/subconfigurations/region/Region.ts
@@ -9,4 +9,4 @@ export interface Region {
 	vip: boolean;
 	custom: boolean;
 	deprecated: boolean;
-}
\ No newline at end of file
+}
diff --git a/src/util/config/types/subconfigurations/register/DateOfBirth.ts b/src/util/config/types/subconfigurations/register/DateOfBirth.ts
index 5a3c4e9d..4831a4b7 100644
--- a/src/util/config/types/subconfigurations/register/DateOfBirth.ts
+++ b/src/util/config/types/subconfigurations/register/DateOfBirth.ts
@@ -1,4 +1,4 @@
 export class DateOfBirthConfiguration {
-    required: boolean = true;
-    minimum: number = 13; // in years
-}
\ No newline at end of file
+	required: boolean = true;
+	minimum: number = 13; // in years
+}
diff --git a/src/util/config/types/subconfigurations/register/Email.ts b/src/util/config/types/subconfigurations/register/Email.ts
index 115d49e0..7f54faa7 100644
--- a/src/util/config/types/subconfigurations/register/Email.ts
+++ b/src/util/config/types/subconfigurations/register/Email.ts
@@ -1,7 +1,7 @@
 export class EmailConfiguration {
-    required: boolean = false;
-    allowlist: boolean = false;
-    blocklist: boolean = true;
-    domains: string[] = [];// TODO: efficiently save domain blocklist in database
-    // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"),
-}
\ No newline at end of file
+	required: boolean = false;
+	allowlist: boolean = false;
+	blocklist: boolean = true;
+	domains: string[] = []; // TODO: efficiently save domain blocklist in database
+	// domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"),
+}
diff --git a/src/util/config/types/subconfigurations/register/Password.ts b/src/util/config/types/subconfigurations/register/Password.ts
index 977473ac..383bdcfa 100644
--- a/src/util/config/types/subconfigurations/register/Password.ts
+++ b/src/util/config/types/subconfigurations/register/Password.ts
@@ -1,7 +1,7 @@
 export class PasswordConfiguration {
-    required: boolean = false;
-    minLength: number = 8;
-    minNumbers: number = 2;
-    minUpperCase: number =2;
-    minSymbols: number = 0;
-}
\ No newline at end of file
+	required: boolean = false;
+	minLength: number = 8;
+	minNumbers: number = 2;
+	minUpperCase: number = 2;
+	minSymbols: number = 0;
+}
diff --git a/src/util/config/types/subconfigurations/security/Captcha.ts b/src/util/config/types/subconfigurations/security/Captcha.ts
index ad6aa762..21c4ef44 100644
--- a/src/util/config/types/subconfigurations/security/Captcha.ts
+++ b/src/util/config/types/subconfigurations/security/Captcha.ts
@@ -1,6 +1,6 @@
 export class CaptchaConfiguration {
-    enabled: boolean = false;
-    service: "recaptcha" | "hcaptcha" | null = null; // TODO: hcaptcha, custom
-    sitekey: string | null = null;
-    secret: string | null = null;
-}
\ No newline at end of file
+	enabled: boolean = false;
+	service: "recaptcha" | "hcaptcha" | null = null; // TODO: hcaptcha, custom
+	sitekey: string | null = null;
+	secret: string | null = null;
+}
diff --git a/src/util/config/types/subconfigurations/security/TwoFactor.ts b/src/util/config/types/subconfigurations/security/TwoFactor.ts
index 33a47385..20d2f9ab 100644
--- a/src/util/config/types/subconfigurations/security/TwoFactor.ts
+++ b/src/util/config/types/subconfigurations/security/TwoFactor.ts
@@ -1,3 +1,3 @@
 export class TwoFactorConfiguration {
-    generateBackupCodes: boolean = true;
-}
\ No newline at end of file
+	generateBackupCodes: boolean = true;
+}
diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts
index 67475bdd..e37f5ee5 100644
--- a/src/util/entities/Application.ts
+++ b/src/util/entities/Application.ts
@@ -1,4 +1,11 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm";
+import {
+	Column,
+	Entity,
+	JoinColumn,
+	ManyToOne,
+	OneToOne,
+	RelationId,
+} from "typeorm";
 import { BaseClass } from "./BaseClass";
 import { Guild } from "./Guild";
 import { Team } from "./Team";
@@ -8,78 +15,78 @@ import { User } from "./User";
 export class Application extends BaseClass {
 	@Column()
 	name: string;
-	
+
 	@Column({ nullable: true })
 	icon?: string;
-	
+
 	@Column({ nullable: true })
 	description: string;
-	
+
 	@Column({ nullable: true })
 	summary: string = "";
-	
+
 	@Column({ type: "simple-json", nullable: true })
 	type?: any;
-	
+
 	@Column()
 	hook: boolean = true;
-	
+
 	@Column()
 	bot_public?: boolean = true;
-	
+
 	@Column()
 	bot_require_code_grant?: boolean = false;
-	
+
 	@Column()
 	verify_key: string;
-	
+
 	@JoinColumn({ name: "owner_id" })
 	@ManyToOne(() => User)
 	owner: User;
-	
+
 	// TODO: enum this? https://discord.com/developers/docs/resources/application#application-object-application-flags
 	@Column()
 	flags: number = 0;
-	
+
 	@Column({ type: "simple-array", nullable: true })
 	redirect_uris: string[] = [];
-	
+
 	@Column({ nullable: true })
 	rpc_application_state: number = 0;
-	
+
 	@Column({ nullable: true })
 	store_application_state: number = 1;
-	
+
 	@Column({ nullable: true })
 	verification_state: number = 1;
-	
+
 	@Column({ nullable: true })
 	interactions_endpoint_url?: string;
-	
+
 	@Column({ nullable: true })
 	integration_public: boolean = true;
-	
+
 	@Column({ nullable: true })
 	integration_require_code_grant: boolean = false;
-	
+
 	@Column({ nullable: true })
 	discoverability_state: number = 1;
-	
+
 	@Column({ nullable: true })
 	discovery_eligibility_flags: number = 2240;
-	
+
 	@JoinColumn({ name: "bot_user_id" })
 	@OneToOne(() => User)
 	bot?: User;
-	
+
 	@Column({ type: "simple-array", nullable: true })
 	tags?: string[];
-	
+
 	@Column({ nullable: true })
 	cover_image?: string; // the application's default rich presence invite cover image hash
-	
+
 	@Column({ type: "simple-json", nullable: true })
-	install_params?: {scopes: string[], permissions: string};
+	install_params?: { scopes: string[]; permissions: string };
 
 	@Column({ nullable: true })
 	terms_of_service_url?: string;
@@ -91,7 +98,7 @@ export class Application extends BaseClass {
 
 	//@Column({ type: "simple-array", nullable: true })
 	//rpc_origins?: string[];
-	
+
 	//@JoinColumn({ name: "guild_id" })
 	//@ManyToOne(() => Guild)
 	//guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked
@@ -105,11 +112,10 @@ export class Application extends BaseClass {
 	@JoinColumn({ name: "team_id" })
 	@ManyToOne(() => Team, {
 		onDelete: "CASCADE",
-		nullable: true
+		nullable: true,
 	})
 	team?: Team;
-
-  }
+}
 
 export interface ApplicationCommand {
 	id: string;
diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts
index e9e631f1..aaddc001 100644
--- a/src/util/entities/Channel.ts
+++ b/src/util/entities/Channel.ts
@@ -209,7 +209,10 @@ export class Channel extends BaseClass {
 						);
 
 				// Categories skip these checks on discord.com
-				if (channel.type !== ChannelType.GUILD_CATEGORY || guild.features.includes("IRC_LIKE_CATEGORY_NAMES")) {
+				if (
+					channel.type !== ChannelType.GUILD_CATEGORY ||
+					guild.features.includes("IRC_LIKE_CATEGORY_NAMES")
+				) {
 					if (channel.name.includes(" "))
 						throw new HTTPError(
 							"Channel name cannot include invalid characters",
@@ -286,10 +289,10 @@ export class Channel extends BaseClass {
 			Channel.create(channel).save(),
 			!opts?.skipEventEmit
 				? emitEvent({
-					event: "CHANNEL_CREATE",
-					data: channel,
-					guild_id: channel.guild_id,
-				} as ChannelCreateEvent)
+						event: "CHANNEL_CREATE",
+						data: channel,
+						guild_id: channel.guild_id,
+				  } as ChannelCreateEvent)
 				: Promise.resolve(),
 		]);
 
diff --git a/src/util/entities/EmbedCache.ts b/src/util/entities/EmbedCache.ts
index 14881ccf..e182b8c2 100644
--- a/src/util/entities/EmbedCache.ts
+++ b/src/util/entities/EmbedCache.ts
@@ -9,4 +9,4 @@ export class EmbedCache extends BaseClass {
 
 	@Column({ type: "simple-json" })
 	embed: Embed;
-}
\ No newline at end of file
+}
diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts
index c86a5787..7f3536fa 100644
--- a/src/util/entities/Guild.ts
+++ b/src/util/entities/Guild.ts
@@ -79,7 +79,8 @@ export class Guild extends BaseClass {
 	banner?: string;
 
 	@Column({ nullable: true })
-	default_message_notifications?: number = Config.get().defaults.guild.defaultMessageNotifications;
+	default_message_notifications?: number =
+		Config.get().defaults.guild.defaultMessageNotifications;
 
 	@Column({ nullable: true })
 	description?: string;
@@ -88,7 +89,8 @@ export class Guild extends BaseClass {
 	discovery_splash?: string;
 
 	@Column({ nullable: true })
-	explicit_content_filter?: number = Config.get().defaults.guild.explicitContentFilter;
+	explicit_content_filter?: number =
+		Config.get().defaults.guild.explicitContentFilter;
 
 	@Column({ type: "simple-array" })
 	features: string[] = Config.get().guild.defaultFeatures || []; //TODO use enum
@@ -110,7 +112,8 @@ export class Guild extends BaseClass {
 	max_presences?: number = Config.get().defaults.guild.maxPresences;
 
 	@Column({ nullable: true })
-	max_video_channel_users?: number = Config.get().defaults.guild.maxVideoChannelUsers;
+	max_video_channel_users?: number =
+		Config.get().defaults.guild.maxVideoChannelUsers;
 
 	@Column({ nullable: true })
 	member_count?: number;
diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts
index 8f5619fc..4b71ed02 100644
--- a/src/util/entities/Invite.ts
+++ b/src/util/entities/Invite.ts
@@ -1,10 +1,4 @@
-import {
-	Column,
-	Entity,
-	JoinColumn,
-	ManyToOne,
-	RelationId,
-} from "typeorm";
+import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
 import { Member } from "./Member";
 import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass";
 import { Channel } from "./Channel";
@@ -62,7 +56,7 @@ export class Invite extends BaseClassWithoutId {
 
 	@JoinColumn({ name: "inviter_id" })
 	@ManyToOne(() => User, {
-		onDelete: "CASCADE"
+		onDelete: "CASCADE",
 	})
 	inviter: User;
 
diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts
index eeae181e..f8a91f85 100644
--- a/src/util/entities/Member.ts
+++ b/src/util/entities/Member.ts
@@ -125,9 +125,9 @@ export class Member extends BaseClassWithoutId {
 
 	@Column()
 	bio: string;
-	
+
 	@Column({ nullable: true, type: "simple-array" })
-	theme_colors?: number[];	// TODO: Separate `User` and `UserProfile` models
+	theme_colors?: number[]; // TODO: Separate `User` and `UserProfile` models
 
 	@Column({ nullable: true })
 	pronouns?: string;
@@ -309,9 +309,9 @@ export class Member extends BaseClassWithoutId {
 				guild_id,
 				user: {
 					sessions: {
-						status: Not("invisible" as "invisible")	// lol typescript?
-					}
-				}
+						status: Not("invisible" as "invisible"), // lol typescript?
+					},
+				},
 			},
 			take: 10,
 		});
@@ -380,7 +380,7 @@ export class Member extends BaseClassWithoutId {
 					stage_instances: [],
 					threads: [],
 					embedded_activities: [],
-					voice_states: guild.voice_states
+					voice_states: guild.voice_states,
 				},
 				user_id,
 			} as GuildCreateEvent),
diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts
index e039eb17..34b7ea0e 100644
--- a/src/util/entities/User.ts
+++ b/src/util/entities/User.ts
@@ -15,13 +15,7 @@ import { ConnectedAccount } from "./ConnectedAccount";
 import { Member } from "./Member";
 import { UserSettings } from "./UserSettings";
 import { Session } from "./Session";
-import {
-	Config,
-	FieldErrors,
-	Snowflake,
-	trimSpecial,
-	adjustEmail,
-} from "..";
+import { Config, FieldErrors, Snowflake, trimSpecial, adjustEmail } from "..";
 
 export enum PublicUserEnum {
 	username,
@@ -68,7 +62,7 @@ export const PrivateUserProjection = [
 // Private user data that should never get sent to the client
 export type PublicUser = Pick<User, PublicUserKeys>;
 
-export interface UserPublic extends Pick<User, PublicUserKeys> { }
+export interface UserPublic extends Pick<User, PublicUserKeys> {}
 
 export interface UserPrivate extends Pick<User, PrivateUserKeys> {
 	locale: string;
@@ -92,7 +86,7 @@ export class User extends BaseClass {
 	banner?: string; // hash of the user banner
 
 	@Column({ nullable: true, type: "simple-array" })
-	theme_colors?: number[];	// TODO: Separate `User` and `UserProfile` models
+	theme_colors?: number[]; // TODO: Separate `User` and `UserProfile` models
 
 	@Column({ nullable: true })
 	pronouns?: string;
@@ -140,7 +134,7 @@ export class User extends BaseClass {
 	premium_since: Date = new Date(); // premium date
 
 	@Column({ select: false })
-	verified: boolean = true;	// email is verified
+	verified: boolean = true; // email is verified
 
 	@Column()
 	disabled: boolean = false; // if the account is disabled
@@ -203,7 +197,7 @@ export class User extends BaseClass {
 	@OneToOne(() => UserSettings, {
 		cascade: true,
 		orphanedRowAction: "delete",
-		eager: false
+		eager: false,
 	})
 	@JoinColumn()
 	settings: UserSettings;
@@ -270,7 +264,9 @@ export class User extends BaseClass {
 		});
 	}
 
-	public static async generateDiscriminator(username: string): Promise<string | undefined> {
+	public static async generateDiscriminator(
+		username: string,
+	): Promise<string | undefined> {
 		if (Config.get().register.incrementingDiscriminators) {
 			// discriminator will be incrementally generated
 
@@ -322,7 +318,7 @@ export class User extends BaseClass {
 		password?: string;
 		email?: string;
 		date_of_birth?: Date; // "2000-04-03"
-		id?: string,
+		id?: string;
 		req?: any;
 	}) {
 		// trim special uf8 control characters -> Backspace, Newline, ...
@@ -347,7 +343,7 @@ export class User extends BaseClass {
 
 		const settings = UserSettings.create({
 			locale: language,
-		})
+		});
 
 		const user = User.create({
 			username: username,
@@ -367,15 +363,12 @@ export class User extends BaseClass {
 		});
 
 		user.validate();
-		await Promise.all([
-			user.save(),
-			settings.save(),
-		])
+		await Promise.all([user.save(), settings.save()]);
 
 		setImmediate(async () => {
 			if (Config.get().guild.autoJoin.enabled) {
 				for (const guild of Config.get().guild.autoJoin.guilds || []) {
-					await Member.addToGuild(user.id, guild).catch((e) => { });
+					await Member.addToGuild(user.id, guild).catch((e) => {});
 				}
 			}
 		});
diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts
index b1a1fe68..995bb262 100644
--- a/src/util/entities/UserSettings.ts
+++ b/src/util/entities/UserSettings.ts
@@ -3,117 +3,117 @@ import { BaseClassWithoutId } from "./BaseClass";
 
 @Entity("user_settings")
 export class UserSettings extends BaseClassWithoutId {
-    @PrimaryGeneratedColumn()
+	@PrimaryGeneratedColumn()
 	index: string;
 
 	@Column({ nullable: true })
-    afk_timeout: number = 3600;
-
-	@Column({ nullable: true })
-    allow_accessibility_detection: boolean = true;
-	
-    @Column({ nullable: true })
-    animate_emoji: boolean = true;
-	
-    @Column({ nullable: true })
-    animate_stickers: number = 0;
-	
-    @Column({ nullable: true })
-    contact_sync_enabled: boolean = false;
-	
-    @Column({ nullable: true })
-    convert_emoticons: boolean = false;
-	
-    @Column({ nullable: true, type: "simple-json" })
-    custom_status: CustomStatus | null = null;
-	
-    @Column({ nullable: true })
-    default_guilds_restricted: boolean = false;
-	
-    @Column({ nullable: true })
-    detect_platform_accounts: boolean = false;
-	
-    @Column({ nullable: true })
-    developer_mode: boolean = true;
-	
-    @Column({ nullable: true })
-    disable_games_tab: boolean = true;
-	
-    @Column({ nullable: true })
-    enable_tts_command: boolean = false;
-	
-    @Column({ nullable: true })
-    explicit_content_filter: number = 0;
-	
-    @Column({ nullable: true, type: "simple-json" })
-    friend_source_flags: FriendSourceFlags = { all: true };
-	
-    @Column({ nullable: true })
-    gateway_connected: boolean = false;
-	
-    @Column({ nullable: true })
-    gif_auto_play: boolean = false;
-	
-    @Column({ nullable: true, type: "simple-json" })
-    guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder"
-	
-    @Column({ nullable: true, type: "simple-json" })
-    guild_positions: string[] = []; // guild ids ordered by position
-	
-    @Column({ nullable: true })
-    inline_attachment_media: boolean = true;
-	
-    @Column({ nullable: true })
-    inline_embed_media: boolean = true;
-	
-    @Column({ nullable: true })
-    locale: string = "en-US"; // en_US
-	
-    @Column({ nullable: true })
-    message_display_compact: boolean = false;
-	
-    @Column({ nullable: true })
-    native_phone_integration_enabled: boolean = true;
-	
-    @Column({ nullable: true })
-    render_embeds: boolean = true;
-	
-    @Column({ nullable: true })
-    render_reactions: boolean = true;
-	
-    @Column({ nullable: true, type: "simple-json" })
-    restricted_guilds: string[] = [];
-	
-    @Column({ nullable: true })
-    show_current_game: boolean = true;
-	
-    @Column({ nullable: true })
-    status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online";
-	
-    @Column({ nullable: true })
-    stream_notifications_enabled: boolean = false;
-	
-    @Column({ nullable: true })
-    theme: "dark" | "light" = "dark"; // dark
-	
-    @Column({ nullable: true })
-    timezone_offset: number = 0; // e.g -60
+	afk_timeout: number = 3600;
+
+	@Column({ nullable: true })
+	allow_accessibility_detection: boolean = true;
+
+	@Column({ nullable: true })
+	animate_emoji: boolean = true;
+
+	@Column({ nullable: true })
+	animate_stickers: number = 0;
+
+	@Column({ nullable: true })
+	contact_sync_enabled: boolean = false;
+
+	@Column({ nullable: true })
+	convert_emoticons: boolean = false;
+
+	@Column({ nullable: true, type: "simple-json" })
+	custom_status: CustomStatus | null = null;
+
+	@Column({ nullable: true })
+	default_guilds_restricted: boolean = false;
+
+	@Column({ nullable: true })
+	detect_platform_accounts: boolean = false;
+
+	@Column({ nullable: true })
+	developer_mode: boolean = true;
+
+	@Column({ nullable: true })
+	disable_games_tab: boolean = true;
+
+	@Column({ nullable: true })
+	enable_tts_command: boolean = false;
+
+	@Column({ nullable: true })
+	explicit_content_filter: number = 0;
+
+	@Column({ nullable: true, type: "simple-json" })
+	friend_source_flags: FriendSourceFlags = { all: true };
+
+	@Column({ nullable: true })
+	gateway_connected: boolean = false;
+
+	@Column({ nullable: true })
+	gif_auto_play: boolean = false;
+
+	@Column({ nullable: true, type: "simple-json" })
+	guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder"
+
+	@Column({ nullable: true, type: "simple-json" })
+	guild_positions: string[] = []; // guild ids ordered by position
+
+	@Column({ nullable: true })
+	inline_attachment_media: boolean = true;
+
+	@Column({ nullable: true })
+	inline_embed_media: boolean = true;
+
+	@Column({ nullable: true })
+	locale: string = "en-US"; // en_US
+
+	@Column({ nullable: true })
+	message_display_compact: boolean = false;
+
+	@Column({ nullable: true })
+	native_phone_integration_enabled: boolean = true;
+
+	@Column({ nullable: true })
+	render_embeds: boolean = true;
+
+	@Column({ nullable: true })
+	render_reactions: boolean = true;
+
+	@Column({ nullable: true, type: "simple-json" })
+	restricted_guilds: string[] = [];
+
+	@Column({ nullable: true })
+	show_current_game: boolean = true;
+
+	@Column({ nullable: true })
+	status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online";
+
+	@Column({ nullable: true })
+	stream_notifications_enabled: boolean = false;
+
+	@Column({ nullable: true })
+	theme: "dark" | "light" = "dark"; // dark
+
+	@Column({ nullable: true })
+	timezone_offset: number = 0; // e.g -60
 }
 
 interface CustomStatus {
-    emoji_id?: string;
-    emoji_name?: string;
-    expires_at?: number;
-    text?: string;
+	emoji_id?: string;
+	emoji_name?: string;
+	expires_at?: number;
+	text?: string;
 }
 
 interface GuildFolder {
-    color: number;
-    guild_ids: string[];
-    id: number;
-    name: string;
+	color: number;
+	guild_ids: string[];
+	id: number;
+	name: string;
 }
 
-interface FriendSourceFlags { 
-    all: boolean
-}
\ No newline at end of file
+interface FriendSourceFlags {
+	all: boolean;
+}
diff --git a/src/util/entities/ValidRegistrationTokens.ts b/src/util/entities/ValidRegistrationTokens.ts
index 00839324..7db66c1d 100644
--- a/src/util/entities/ValidRegistrationTokens.ts
+++ b/src/util/entities/ValidRegistrationTokens.ts
@@ -4,10 +4,10 @@ import { BaseEntity, Column, Entity, PrimaryColumn } from "typeorm";
 export class ValidRegistrationToken extends BaseEntity {
 	@PrimaryColumn()
 	token: string;
-	
+
 	@Column()
 	created_at: Date = new Date();
 
 	@Column()
 	expires_at: Date;
-}
\ No newline at end of file
+}
diff --git a/src/util/entities/index.ts b/src/util/entities/index.ts
index dc509250..3e64965c 100644
--- a/src/util/entities/index.ts
+++ b/src/util/entities/index.ts
@@ -33,4 +33,4 @@ export * from "./User";
 export * from "./UserSettings";
 export * from "./ValidRegistrationTokens";
 export * from "./VoiceState";
-export * from "./Webhook";
\ No newline at end of file
+export * from "./Webhook";
diff --git a/src/util/index.ts b/src/util/index.ts
index 7b4dc936..957fb393 100644
--- a/src/util/index.ts
+++ b/src/util/index.ts
@@ -6,4 +6,4 @@ export * from "./entities/index";
 export * from "./dtos/index";
 export * from "./schemas";
 export * from "./imports";
-export * from "./config"
\ No newline at end of file
+export * from "./config";
diff --git a/src/util/interfaces/Event.ts b/src/util/interfaces/Event.ts
index f5bccb2f..b772c3e4 100644
--- a/src/util/interfaces/Event.ts
+++ b/src/util/interfaces/Event.ts
@@ -81,9 +81,9 @@ export interface ReadyEventData {
 		number,
 		null,
 		number,
-		[[number, { e: number; s: number; }[]]],
+		[[number, { e: number; s: number }[]]],
 		[number, [[number, [number, number]]]],
-		{ b: number; k: bigint[]; }[],
+		{ b: number; k: bigint[] }[],
 	][];
 	guild_join_requests?: any[]; // ? what is this? this is new
 	shard?: [number, number];
@@ -481,7 +481,7 @@ export interface SessionsReplace extends Event {
 export interface GuildMemberListUpdate extends Event {
 	event: "GUILD_MEMBER_LIST_UPDATE";
 	data: {
-		groups: { id: string; count: number; }[];
+		groups: { id: string; count: number }[];
 		guild_id: string;
 		id: string;
 		member_count: number;
@@ -489,8 +489,8 @@ export interface GuildMemberListUpdate extends Event {
 		ops: {
 			index: number;
 			item: {
-				member?: PublicMember & { presence: Presence; };
-				group?: { id: string; count: number; }[];
+				member?: PublicMember & { presence: Presence };
+				group?: { id: string; count: number }[];
 			};
 		}[];
 	};
diff --git a/src/util/schemas/ApplicationAuthorizeSchema.ts b/src/util/schemas/ApplicationAuthorizeSchema.ts
index 1a0aae0f..add26c74 100644
--- a/src/util/schemas/ApplicationAuthorizeSchema.ts
+++ b/src/util/schemas/ApplicationAuthorizeSchema.ts
@@ -3,5 +3,5 @@ export interface ApplicationAuthorizeSchema {
 	guild_id: string;
 	permissions: string;
 	captcha_key?: string;
-	code?: string;	// 2fa code
-}
\ No newline at end of file
+	code?: string; // 2fa code
+}
diff --git a/src/util/schemas/ApplicationCreateSchema.ts b/src/util/schemas/ApplicationCreateSchema.ts
index 6a021b46..0801a6c5 100644
--- a/src/util/schemas/ApplicationCreateSchema.ts
+++ b/src/util/schemas/ApplicationCreateSchema.ts
@@ -1,4 +1,4 @@
 export interface ApplicationCreateSchema {
 	name: string;
 	team_id?: string | number;
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/ApplicationModifySchema.ts b/src/util/schemas/ApplicationModifySchema.ts
index ab23d57e..5f5bbe1d 100644
--- a/src/util/schemas/ApplicationModifySchema.ts
+++ b/src/util/schemas/ApplicationModifySchema.ts
@@ -11,4 +11,4 @@ export interface ApplicationModifySchema {
 	bot_public?: boolean;
 	bot_require_code_grant?: boolean;
 	flags?: number;
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/BotModifySchema.ts b/src/util/schemas/BotModifySchema.ts
index b801ab27..19a5c54e 100644
--- a/src/util/schemas/BotModifySchema.ts
+++ b/src/util/schemas/BotModifySchema.ts
@@ -1,4 +1,4 @@
 export interface BotModifySchema {
 	avatar?: string;
 	username?: string;
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/ChannelPermissionOverwriteSchema.ts b/src/util/schemas/ChannelPermissionOverwriteSchema.ts
index 6d6d6c34..4f5c9712 100644
--- a/src/util/schemas/ChannelPermissionOverwriteSchema.ts
+++ b/src/util/schemas/ChannelPermissionOverwriteSchema.ts
@@ -1,4 +1,4 @@
 import { ChannelPermissionOverwrite } from "@fosscord/util";
 
 export interface ChannelPermissionOverwriteSchema
-	extends ChannelPermissionOverwrite {}
\ No newline at end of file
+	extends ChannelPermissionOverwrite {}
diff --git a/src/util/schemas/ChannelReorderSchema.ts b/src/util/schemas/ChannelReorderSchema.ts
index 6eb4cdd5..c6e59ebd 100644
--- a/src/util/schemas/ChannelReorderSchema.ts
+++ b/src/util/schemas/ChannelReorderSchema.ts
@@ -3,4 +3,4 @@ export type ChannelReorderSchema = {
 	position?: number;
 	lock_permissions?: boolean;
 	parent_id?: string;
-}[];
\ No newline at end of file
+}[];
diff --git a/src/util/schemas/GatewayPayloadSchema.ts b/src/util/schemas/GatewayPayloadSchema.ts
index 324ad1eb..ce27f0dc 100644
--- a/src/util/schemas/GatewayPayloadSchema.ts
+++ b/src/util/schemas/GatewayPayloadSchema.ts
@@ -5,4 +5,4 @@ export const PayloadSchema = {
 	$d: new Tuple(Object, Number), // or number for heartbeat sequence
 	$s: Number,
 	$t: String,
-};
\ No newline at end of file
+};
diff --git a/src/util/schemas/GuildUpdateSchema.ts b/src/util/schemas/GuildUpdateSchema.ts
index e858a7a2..4e8daacf 100644
--- a/src/util/schemas/GuildUpdateSchema.ts
+++ b/src/util/schemas/GuildUpdateSchema.ts
@@ -1,6 +1,7 @@
 import { GuildCreateSchema } from "@fosscord/util";
 
-export interface GuildUpdateSchema extends Omit<GuildCreateSchema, "channels" | "name"> {
+export interface GuildUpdateSchema
+	extends Omit<GuildCreateSchema, "channels" | "name"> {
 	name?: string;
 	banner?: string | null;
 	splash?: string | null;
diff --git a/src/util/schemas/MemberChangeProfileSchema.ts b/src/util/schemas/MemberChangeProfileSchema.ts
index 73c852f3..3c16c359 100644
--- a/src/util/schemas/MemberChangeProfileSchema.ts
+++ b/src/util/schemas/MemberChangeProfileSchema.ts
@@ -5,7 +5,7 @@ export interface MemberChangeProfileSchema {
 	pronouns?: string;
 
 	/*
-	* @items.type integer
-	*/
+	 * @items.type integer
+	 */
 	theme_colors?: [number, number];
 }
diff --git a/src/util/schemas/RolePositionUpdateSchema.ts b/src/util/schemas/RolePositionUpdateSchema.ts
index 1019d504..993d1ae0 100644
--- a/src/util/schemas/RolePositionUpdateSchema.ts
+++ b/src/util/schemas/RolePositionUpdateSchema.ts
@@ -1,4 +1,4 @@
 export type RolePositionUpdateSchema = {
 	id: string;
 	position: number;
-}[];
\ No newline at end of file
+}[];
diff --git a/src/util/schemas/UserGuildSettingsSchema.ts b/src/util/schemas/UserGuildSettingsSchema.ts
index e78bbf7c..b9efdbfa 100644
--- a/src/util/schemas/UserGuildSettingsSchema.ts
+++ b/src/util/schemas/UserGuildSettingsSchema.ts
@@ -6,4 +6,4 @@ export interface UserGuildSettingsSchema
 	channel_overrides?: {
 		[channel_id: string]: Partial<ChannelOverride>;
 	};
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/UserProfileModifySchema.ts b/src/util/schemas/UserProfileModifySchema.ts
index 1e53d9e4..840e9c3e 100644
--- a/src/util/schemas/UserProfileModifySchema.ts
+++ b/src/util/schemas/UserProfileModifySchema.ts
@@ -5,7 +5,7 @@ export interface UserProfileModifySchema {
 	pronouns?: string;
 
 	/*
-	* @items.type integer
-	*/
-	theme_colors?: [number, number]
+	 * @items.type integer
+	 */
+	theme_colors?: [number, number];
 }
diff --git a/src/util/schemas/UserSettingsSchema.ts b/src/util/schemas/UserSettingsSchema.ts
index db015457..eb9b316d 100644
--- a/src/util/schemas/UserSettingsSchema.ts
+++ b/src/util/schemas/UserSettingsSchema.ts
@@ -1,3 +1,3 @@
 import { UserSettings } from "@fosscord/util";
 
-export interface UserSettingsSchema extends Partial<UserSettings> {}
\ No newline at end of file
+export interface UserSettingsSchema extends Partial<UserSettings> {}
diff --git a/src/util/schemas/index.ts b/src/util/schemas/index.ts
index be4be0c7..e4f565c9 100644
--- a/src/util/schemas/index.ts
+++ b/src/util/schemas/index.ts
@@ -59,4 +59,4 @@ export * from "./UserSettingsSchema";
 export * from "./BotModifySchema";
 export * from "./ApplicationModifySchema";
 export * from "./ApplicationCreateSchema";
-export * from "./ApplicationAuthorizeSchema";
\ No newline at end of file
+export * from "./ApplicationAuthorizeSchema";
diff --git a/src/util/util/BitField.ts b/src/util/util/BitField.ts
index e2f4e2a5..413112ca 100644
--- a/src/util/util/BitField.ts
+++ b/src/util/util/BitField.ts
@@ -138,10 +138,8 @@ export class BitField {
 		const FLAGS = this.FLAGS || this.constructor?.FLAGS;
 
 		if (typeof bit === "string") {
-			if (typeof FLAGS[bit] !== "undefined")
-				return FLAGS[bit];
-			else
-				bit = BigInt(bit);
+			if (typeof FLAGS[bit] !== "undefined") return FLAGS[bit];
+			else bit = BigInt(bit);
 		}
 
 		if (
diff --git a/src/util/util/Config.ts b/src/util/util/Config.ts
index e3ac4177..5d98f5bc 100644
--- a/src/util/util/Config.ts
+++ b/src/util/util/Config.ts
@@ -14,7 +14,7 @@ var pairs: ConfigEntity[];
 export const Config = {
 	init: async function init() {
 		if (config) return config;
-		console.log('[Config] Loading configuration...');
+		console.log("[Config] Loading configuration...");
 		pairs = await ConfigEntity.find();
 		config = pairsToConfig(pairs);
 		// TODO: this overwrites existing config values with defaults.
@@ -26,16 +26,19 @@ export const Config = {
 		if (Object.keys(config).length == 0) config = new ConfigValue();
 
 		if (process.env.CONFIG_PATH) {
-			console.log(`[Config] Using config path from environment rather than database.`);
+			console.log(
+				`[Config] Using config path from environment rather than database.`,
+			);
 			try {
-				const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" }));
+				const overrideConfig = JSON.parse(
+					fs.readFileSync(overridePath, { encoding: "utf8" }),
+				);
 				config = overrideConfig.merge(config);
 			} catch (error) {
 				fs.writeFileSync(overridePath, JSON.stringify(config, null, 4));
 			}
 		}
 
-
 		return this.set(config);
 	},
 	get: function get() {
diff --git a/src/util/util/Constants.ts b/src/util/util/Constants.ts
index b84a8178..d4431209 100644
--- a/src/util/util/Constants.ts
+++ b/src/util/util/Constants.ts
@@ -1043,7 +1043,7 @@ export const FosscordApiErrors = {
 		45006,
 		501,
 	),
-	FEATURE_IS_IMMUTABLE : new ApiError(
+	FEATURE_IS_IMMUTABLE: new ApiError(
 		"The feature ({}) cannot be edited.",
 		45007,
 		403,
diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts
index da0909ab..2089d453 100644
--- a/src/util/util/Database.ts
+++ b/src/util/util/Database.ts
@@ -37,7 +37,6 @@ const DataSourceOptions = new DataSource({
 	migrations: [path.join(__dirname, "..", "migration", DatabaseType, "*.js")],
 });
 
-
 // Gets the existing database connection
 export function getDatabase(): DataSource | null {
 	// if (!dbConnection) throw new Error("Tried to get database before it was initialised");
@@ -60,8 +59,13 @@ export async function initDatabase(): Promise<DataSource> {
 	if (!process.env.DB_SYNC) {
 		const supported = ["mysql", "mariadb", "postgres", "sqlite"];
 		if (!supported.includes(DatabaseType)) {
-			console.log("[Database]" + red(` We don't have migrations for DB type '${DatabaseType}'` +
-				` To ignore, set DB_SYNC=true in your env. https://docs.fosscord.com/setup/server/configuration/env/`));
+			console.log(
+				"[Database]" +
+					red(
+						` We don't have migrations for DB type '${DatabaseType}'` +
+							` To ignore, set DB_SYNC=true in your env. https://docs.fosscord.com/setup/server/configuration/env/`,
+					),
+			);
 			process.exit();
 		}
 	}
@@ -71,12 +75,20 @@ export async function initDatabase(): Promise<DataSource> {
 	dbConnection = await DataSourceOptions.initialize();
 
 	// Crude way of detecting if the migrations table exists.
-	const dbExists = async () => { try { await ConfigEntity.count(); return true; } catch (e) { return false; } };
-	if (!await dbExists()) {
-		console.log("[Database] This appears to be a fresh database. Synchronising.");
+	const dbExists = async () => {
+		try {
+			await ConfigEntity.count();
+			return true;
+		} catch (e) {
+			return false;
+		}
+	};
+	if (!(await dbExists())) {
+		console.log(
+			"[Database] This appears to be a fresh database. Synchronising.",
+		);
 		await dbConnection.synchronize();
-	}
-	else {
+	} else {
 		await dbConnection.runMigrations();
 	}
 
diff --git a/src/util/util/InvisibleCharacters.ts b/src/util/util/InvisibleCharacters.ts
index 82031f53..c45915f4 100644
--- a/src/util/util/InvisibleCharacters.ts
+++ b/src/util/util/InvisibleCharacters.ts
@@ -1,7 +1,7 @@
 // List from https://invisible-characters.com/
 export const InvisibleCharacters = [
 	"\u{9}", //Tab
-	'\u{c}',			//Form feed
+	"\u{c}", //Form feed
 	//'\u{20}',			//Space	//categories can have spaces in them
 	"\u{ad}", //Soft hyphen
 	//"\u{34f}", //Combining grapheme joiner
diff --git a/src/util/util/Rights.ts b/src/util/util/Rights.ts
index 8e54a04f..68a7c840 100644
--- a/src/util/util/Rights.ts
+++ b/src/util/util/Rights.ts
@@ -32,7 +32,7 @@ export class Rights extends BitField {
 	static FLAGS = {
 		OPERATOR: BitFlag(0), // has all rights
 		MANAGE_APPLICATIONS: BitFlag(1),
-		MANAGE_GUILDS: BitFlag(2),	 // Manage all guilds instance-wide
+		MANAGE_GUILDS: BitFlag(2), // Manage all guilds instance-wide
 		MANAGE_MESSAGES: BitFlag(3), // Can't see other messages but delete/edit them in channels that they can see
 		MANAGE_RATE_LIMITS: BitFlag(4),
 		MANAGE_ROUTING: BitFlag(5), // can create custom message routes to any channel/guild
@@ -81,7 +81,7 @@ export class Rights extends BitField {
 		SELF_EDIT_FLAGS: BitFlag(45), // can modify own flags
 		EDIT_FLAGS: BitFlag(46), // can set others' flags
 		MANAGE_GROUPS: BitFlag(47), // can manage others' groups
-		VIEW_SERVER_STATS: BitFlag(48) // added per @chrischrome's request — can view server stats)
+		VIEW_SERVER_STATS: BitFlag(48), // added per @chrischrome's request — can view server stats)
 	};
 
 	any(permission: RightResolvable, checkOperator = true) {
diff --git a/src/util/util/index.ts b/src/util/util/index.ts
index f7a273cb..01ef4eae 100644
--- a/src/util/util/index.ts
+++ b/src/util/util/index.ts
@@ -19,4 +19,4 @@ export * from "./Snowflake";
 export * from "./String";
 export * from "./Array";
 export * from "./TraverseDirectory";
-export * from "./InvisibleCharacters";
\ No newline at end of file
+export * from "./InvisibleCharacters";