mirror of
https://github.com/DeveloLongScript/MHSF.git
synced 2026-05-08 00:44:59 -05:00
feat: added version to changelog
This commit is contained in:
parent
5699da4dc4
commit
7059a47ec0
@ -12,6 +12,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"arguments-parser": "^3.2.1",
|
"arguments-parser": "^3.2.1",
|
||||||
"chalk": "^5.3.0",
|
"chalk": "^5.3.0",
|
||||||
|
"cron": "^3.1.7",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"mongodb": "^6.8.0"
|
"mongodb": "^6.8.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -116,21 +116,12 @@ async function periodicCronJob() {
|
|||||||
date: new Date(),
|
date: new Date(),
|
||||||
});
|
});
|
||||||
|
|
||||||
process.stdout.clearLine(0);
|
console.log(
|
||||||
process.stdout.cursorTo(0);
|
Date.now() + "[CRON] " + INFO + (y + "/" + mh.servers.length),
|
||||||
process.stdout.write(
|
|
||||||
"[CRON] " +
|
|
||||||
INFO +
|
|
||||||
" Remaining servers: " +
|
|
||||||
(y + "/" + mh.servers.length),
|
|
||||||
);
|
);
|
||||||
y++;
|
y++;
|
||||||
if (y == mh.servers.length) {
|
if (y == mh.servers.length) {
|
||||||
process.stdout.clearLine(0);
|
console.log(Date.now() + "[CRON] " + SUCCESS + "Done!");
|
||||||
process.stdout.cursorTo(0);
|
|
||||||
process.stdout.write(
|
|
||||||
"[CRON] " + SUCCESS + " Finished! Closing MongoDB connection.",
|
|
||||||
);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,11 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
sparse-bitfield "^3.0.3"
|
sparse-bitfield "^3.0.3"
|
||||||
|
|
||||||
|
"@types/luxon@~3.4.0":
|
||||||
|
version "3.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.4.2.tgz#e4fc7214a420173cea47739c33cdf10874694db7"
|
||||||
|
integrity sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==
|
||||||
|
|
||||||
"@types/webidl-conversions@*":
|
"@types/webidl-conversions@*":
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859"
|
resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859"
|
||||||
@ -65,6 +70,14 @@ color-name@~1.1.4:
|
|||||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
|
cron@^3.1.7:
|
||||||
|
version "3.1.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/cron/-/cron-3.1.7.tgz#3423d618ba625e78458fff8cb67001672d49ba0d"
|
||||||
|
integrity sha512-tlBg7ARsAMQLzgwqVxy8AZl/qlTc5nibqYwtNGoCrd+cV+ugI+tvZC1oT/8dFH8W455YrywGykx/KMmAqOr7Jw==
|
||||||
|
dependencies:
|
||||||
|
"@types/luxon" "~3.4.0"
|
||||||
|
luxon "~3.4.0"
|
||||||
|
|
||||||
dotenv@^16.4.5:
|
dotenv@^16.4.5:
|
||||||
version "16.4.5"
|
version "16.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
|
||||||
@ -75,6 +88,11 @@ has-flag@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||||
|
|
||||||
|
luxon@~3.4.0:
|
||||||
|
version "3.4.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af"
|
||||||
|
integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==
|
||||||
|
|
||||||
memory-pager@^1.0.2:
|
memory-pager@^1.0.2:
|
||||||
version "1.5.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
|
resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
|
||||||
|
|||||||
10
docs/advanced/achievements.mdx
Normal file
10
docs/advanced/achievements.mdx
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: "Achievement Collection"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Achievements
|
||||||
|
Achievements are a page that every server gets which contains certain requirements which could be embedded in an servers history.
|
||||||
|
|
||||||
|
<Separator/>
|
||||||
|
|
||||||
|
Achievements are *not* collected instantly, and are actually collected every 12 hours. (this is not timezone dependent) There are currently 5 possible achievements to get, ranging from easiest to hardest.
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mh-stats",
|
"name": "mh-stats",
|
||||||
"version": "1.1.0",
|
"version": "1.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "yarn@1.22.22",
|
"packageManager": "yarn@1.22.22",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -31,7 +31,11 @@ export function SLCustomize() {
|
|||||||
setUsePaddingOnSides(
|
setUsePaddingOnSides(
|
||||||
(user?.publicMetadata.srv as boolean | undefined) || false
|
(user?.publicMetadata.srv as boolean | undefined) || false
|
||||||
);
|
);
|
||||||
});
|
}, [
|
||||||
|
user?.publicMetadata.srv,
|
||||||
|
user?.publicMetadata.pad,
|
||||||
|
user?.publicMetadata.ipr,
|
||||||
|
]);
|
||||||
|
|
||||||
const handleSubmit = (e: React.FormEvent) => {
|
const handleSubmit = (e: React.FormEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@ -105,7 +109,20 @@ export function SLCustomize() {
|
|||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-sm text-muted-foreground ml-6">
|
<p className="text-sm text-muted-foreground ml-6">
|
||||||
Better for larger screens.
|
Better for larger screens, can look more stylish.
|
||||||
|
</p>
|
||||||
|
<div className="flex items-center space-x-2 mt-2">
|
||||||
|
<RadioGroupItem value="120" id="padding-comfortable" />
|
||||||
|
<Label htmlFor="padding-comfortable">
|
||||||
|
Very Spacious{" "}
|
||||||
|
{advanced && (
|
||||||
|
<span className="text-muted-foreground">(120px)</span>
|
||||||
|
)}
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
<p className="text-sm text-muted-foreground ml-6">
|
||||||
|
When information needs to be crunched in-between, recommended
|
||||||
|
for larger screens only.
|
||||||
</p>
|
</p>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -853,7 +853,29 @@ export default function ServerList() {
|
|||||||
<MenubarSub>
|
<MenubarSub>
|
||||||
<MenubarSubTrigger>Grid</MenubarSubTrigger>
|
<MenubarSubTrigger>Grid</MenubarSubTrigger>
|
||||||
<MenubarSubContent>
|
<MenubarSubContent>
|
||||||
<MenubarRadioGroup value={ipr} onValueChange={setIPR}>
|
<MenubarRadioGroup
|
||||||
|
value={ipr}
|
||||||
|
onValueChange={(v) => {
|
||||||
|
if (am)
|
||||||
|
toast(
|
||||||
|
<span>
|
||||||
|
These settings will not change over reloads
|
||||||
|
because you have account specific options enabled
|
||||||
|
<Button
|
||||||
|
variant="link"
|
||||||
|
className="p-0 m-0"
|
||||||
|
onClick={() =>
|
||||||
|
router.push("/account/settings/options")
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Change your preferences
|
||||||
|
</Button>
|
||||||
|
</span>,
|
||||||
|
{ icon: "⚠️" }
|
||||||
|
);
|
||||||
|
setIPR(v);
|
||||||
|
}}
|
||||||
|
>
|
||||||
<MenubarRadioItem value="4">
|
<MenubarRadioItem value="4">
|
||||||
4 items per row
|
4 items per row
|
||||||
</MenubarRadioItem>
|
</MenubarRadioItem>
|
||||||
|
|||||||
@ -38,7 +38,7 @@ export default function AchievementList({ server }: { server: string }) {
|
|||||||
<div>
|
<div>
|
||||||
<span>
|
<span>
|
||||||
Achievements are earned automatically when the server is online. See{" "}
|
Achievements are earned automatically when the server is online. See{" "}
|
||||||
<A alt="Achievement collection">Special:Root</A>
|
<A alt="Achievement collection">Docs:Advanced/Achievements</A>
|
||||||
</span>
|
</span>
|
||||||
{achievements
|
{achievements
|
||||||
.filter(
|
.filter(
|
||||||
|
|||||||
@ -10,9 +10,21 @@ export default function A({
|
|||||||
alt: string | ReactNode;
|
alt: string | ReactNode;
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<NextLink href={pageFind(children)}>
|
<NextLink
|
||||||
{children.startsWith("Docs:") && <Book />}
|
href={pageFind(children || "")}
|
||||||
|
className="no-underline transition duration-300 hover:underline "
|
||||||
|
title={children}
|
||||||
|
>
|
||||||
|
{(children || "").startsWith("Docs:") && (
|
||||||
|
<Book size={16} className="mr-[2px] inline-flex" />
|
||||||
|
)}
|
||||||
|
{(children || "").startsWith("Wiki:") && (
|
||||||
|
<NotebookText size={14} className="mr-[2px] mb-[3px] inline-flex" />
|
||||||
|
)}
|
||||||
{alt}
|
{alt}
|
||||||
|
{(children || "").startsWith("https") && (
|
||||||
|
<ExternalLink size={12} className="ml-[2px] mb-[3px] inline-flex" />
|
||||||
|
)}
|
||||||
</NextLink>
|
</NextLink>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -28,6 +40,7 @@ export function ALegacy({
|
|||||||
<NextLink
|
<NextLink
|
||||||
href={pageFind(href || "")}
|
href={pageFind(href || "")}
|
||||||
className="no-underline transition duration-300 hover:underline "
|
className="no-underline transition duration-300 hover:underline "
|
||||||
|
title={href}
|
||||||
>
|
>
|
||||||
{(href || "").startsWith("Docs:") && (
|
{(href || "").startsWith("Docs:") && (
|
||||||
<Book size={16} className="mr-[2px] inline-flex" />
|
<Book size={16} className="mr-[2px] inline-flex" />
|
||||||
@ -45,7 +58,7 @@ export function ALegacy({
|
|||||||
|
|
||||||
export const pageFind = (text: string) => {
|
export const pageFind = (text: string) => {
|
||||||
if (text.startsWith("Docs:")) {
|
if (text.startsWith("Docs:")) {
|
||||||
return "/docs/" + text.substring(5);
|
return "/docs/" + text.substring(5).toLowerCase();
|
||||||
}
|
}
|
||||||
if (text === "Special:Root") return "/";
|
if (text === "Special:Root") return "/";
|
||||||
if (text === "Special:Preferences") return "/account/settings";
|
if (text === "Special:Preferences") return "/account/settings";
|
||||||
|
|||||||
@ -3,6 +3,10 @@ export const allFolders: (DocsFolder | Docs)[] = [
|
|||||||
title: "Getting Started",
|
title: "Getting Started",
|
||||||
url: "/docs/getting-started",
|
url: "/docs/getting-started",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Server List",
|
||||||
|
url: "/",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Reading",
|
title: "Reading",
|
||||||
url: "/docs/reading",
|
url: "/docs/reading",
|
||||||
@ -31,6 +35,7 @@ export const allFolders: (DocsFolder | Docs)[] = [
|
|||||||
{ title: "Tech Stack", url: "/docs/advanced/tech-stack" },
|
{ title: "Tech Stack", url: "/docs/advanced/tech-stack" },
|
||||||
{ title: "Using the Command-bar", url: "/docs/advanced/command-bar" },
|
{ title: "Using the Command-bar", url: "/docs/advanced/command-bar" },
|
||||||
{ title: "Tips with external servers", url: "/docs/advanced/external" },
|
{ title: "Tips with external servers", url: "/docs/advanced/external" },
|
||||||
|
{ title: "Achievements", url: "/docs/advanced/achievements" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { Separator } from "../components/ui/separator";
|
|||||||
import { Button } from "../components/ui/button";
|
import { Button } from "../components/ui/button";
|
||||||
import confetti from "canvas-confetti";
|
import confetti from "canvas-confetti";
|
||||||
|
|
||||||
export const version = "1.2.5";
|
export const version = "1.3";
|
||||||
|
|
||||||
const User = ({ user }: { user: string }) => (
|
const User = ({ user }: { user: string }) => (
|
||||||
<span className="cursor-pointer bg-[rgba(255,165,0,0.25);] rounded p-[2.5px]">
|
<span className="cursor-pointer bg-[rgba(255,165,0,0.25);] rounded p-[2.5px]">
|
||||||
@ -130,16 +130,21 @@ export const Changelog = () => {
|
|||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<strong className="flex items-center">
|
<strong className="flex items-center">
|
||||||
Version 1.2.0 (September 4th 2024)
|
Version 1.3.0 (September 9th 2024)
|
||||||
</strong>
|
</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
• Removed sorting system in-favor of leaderboards coming soon :eyes:
|
• <A alt="New documentation linking">Docs:Reading</A>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
• Achievements are here! See more at{" "}
|
||||||
|
<A alt="here">Docs:Advanced/Achievements</A>
|
||||||
|
</li>
|
||||||
|
<li>• Finally fixed Cron actions for the final time™</li>
|
||||||
|
<li>• Overhauled account preferences</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
|
||||||
<div>
|
<div>
|
||||||
<strong className="flex items-center">
|
<strong className="flex items-center">
|
||||||
Version 1.2.0 (September 3rd 2024)
|
Version 1.2.0 (September 3rd 2024)
|
||||||
@ -365,6 +370,7 @@ import type { SVGProps } from "react";
|
|||||||
import Marquee from "@/components/effects/marquee";
|
import Marquee from "@/components/effects/marquee";
|
||||||
import { useRouter } from "@/lib/useRouter";
|
import { useRouter } from "@/lib/useRouter";
|
||||||
import { BookIcon } from "lucide-react";
|
import { BookIcon } from "lucide-react";
|
||||||
|
import A from "@/components/misc/Link";
|
||||||
const Discord = (props: SVGProps<SVGSVGElement>) => (
|
const Discord = (props: SVGProps<SVGSVGElement>) => (
|
||||||
<svg
|
<svg
|
||||||
viewBox="0 0 256 199"
|
viewBox="0 0 256 199"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user