diff --git a/src/plugins/Timezones/Utils.ts b/src/plugins/Timezones/Utils.ts index d0b7cbba9..7e93893e0 100644 --- a/src/plugins/Timezones/Utils.ts +++ b/src/plugins/Timezones/Utils.ts @@ -23,33 +23,30 @@ const API_URL = "https://timezonedb.catvibers.me/"; const Cache = new Map(); export const moment: typeof import("moment") = findByPropsLazy("parseTwoDigitYear"); -export interface Timezone { - userID: string, - timezoneId: string, - timezone: string; - error: string; -} const getSettings = () => Vencord.Settings.plugins.Timezones; -export async function getUserTimezone(discordID: string): Promise { +export async function getUserTimezone(discordID: string): Promise { if (getSettings()[`timezones.${discordID}`]) - return { - timezone: getSettings()[`timezones.${discordID}`], - } as Timezone; + return Number(getSettings()[`timezones.${discordID}`]); if (Cache.has(discordID)) { - return Cache.get(discordID).timezone; + return Cache.get(discordID); } const timezone = await fetch(API_URL + "api/user/" + discordID).then( r => r.json() ); - Cache.set(discordID, timezone); + + if (timezone.error) { + Cache.set(discordID, null); + return null; + } + Cache.set(discordID, timezone.timezone); return timezone.timezone; } -export function getTimeString(timezone: Timezone, timestamp = moment()): string { +export function getTimeString(timezone: Number, timestamp = moment()): string { const time = timestamp.utcOffset(Number(timezone)); diff --git a/src/plugins/Timezones/index.tsx b/src/plugins/Timezones/index.tsx index b567feb2b..f5cf5ca1a 100644 --- a/src/plugins/Timezones/index.tsx +++ b/src/plugins/Timezones/index.tsx @@ -25,7 +25,7 @@ import { findByPropsLazy } from "@webpack"; import { React } from "@webpack/common"; import { Message, User } from "discord-types/general"; -import { getTimeString, getUserTimezone, Timezone } from "./Utils"; +import { getTimeString, getUserTimezone } from "./Utils"; const styles = findByPropsLazy("timestampInline"); export default definePlugin({ @@ -74,7 +74,7 @@ export default definePlugin({ const user = findOption(args, "user"); const timezone = findOption(args, "timezone"); Vencord.Settings.plugins.Timezones[`timezones.${user}`] = timezone; - sendBotMessage(ctx.channel.id, {content: "Timezone set"}); + sendBotMessage(ctx.channel.id, { content: "Timezone set" }); }, }, { @@ -91,11 +91,11 @@ export default definePlugin({ execute(args, ctx) { const user = findOption(args, "user"); if (!Vencord.Settings.plugins.Timezones[`timezones.${user}`]) { - sendBotMessage(ctx.channel.id, {content: "No timezone"}); + sendBotMessage(ctx.channel.id, { content: "No timezone" }); return; } delete Vencord.Settings.plugins.Timezones[`timezones.${user}`]; - sendBotMessage(ctx.channel.id, {content: "Timezone deleted"}); + sendBotMessage(ctx.channel.id, { content: "Timezone deleted" }); } }, { @@ -109,7 +109,7 @@ export default definePlugin({ if (str.length === 0) { str = "No timezones set"; } - sendBotMessage(ctx.channel.id, {content:str}); + sendBotMessage(ctx.channel.id, { content: str }); } } ], @@ -141,7 +141,7 @@ export default definePlugin({ const user = e.user as User; - const [timezone, setTimezone] = React.useState(null); + const [timezone, setTimezone] = React.useState(null); React.useEffect(() => { getUserTimezone(user.id).then(timezone => setTimezone(timezone)); @@ -171,7 +171,7 @@ export default definePlugin({ const message = e.message as Message; - const [timezone, setTimezone] = React.useState(null); + const [timezone, setTimezone] = React.useState(null); React.useEffect(() => { getUserTimezone(e.message.author.id).then(timezone => setTimezone(timezone));