Updated notes site as well as added latest patchnotes

This commit is contained in:
Toastie 2024-08-12 00:03:07 +12:00
parent f297e3519c
commit 5e54f66a34
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4
11 changed files with 1248 additions and 1498 deletions

5
.astro/settings.json Normal file
View file

@ -0,0 +1,5 @@
{
"_variables": {
"lastUpdateCheck": 1723377321662
}
}

94
.astro/types.d.ts vendored
View file

@ -9,8 +9,6 @@ declare module 'astro:content' {
} }
declare module 'astro:content' { declare module 'astro:content' {
export { z } from 'astro/zod';
type Flatten<T> = T extends { [K: string]: infer U } ? U : never; type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
export type CollectionKey = keyof AnyEntryMap; export type CollectionKey = keyof AnyEntryMap;
@ -19,81 +17,36 @@ declare module 'astro:content' {
export type ContentCollectionKey = keyof ContentEntryMap; export type ContentCollectionKey = keyof ContentEntryMap;
export type DataCollectionKey = keyof DataEntryMap; export type DataCollectionKey = keyof DataEntryMap;
// This needs to be in sync with ImageMetadata
export type ImageFunction = () => import('astro/zod').ZodObject<{
src: import('astro/zod').ZodString;
width: import('astro/zod').ZodNumber;
height: import('astro/zod').ZodNumber;
format: import('astro/zod').ZodUnion<
[
import('astro/zod').ZodLiteral<'png'>,
import('astro/zod').ZodLiteral<'jpg'>,
import('astro/zod').ZodLiteral<'jpeg'>,
import('astro/zod').ZodLiteral<'tiff'>,
import('astro/zod').ZodLiteral<'webp'>,
import('astro/zod').ZodLiteral<'gif'>,
import('astro/zod').ZodLiteral<'svg'>,
import('astro/zod').ZodLiteral<'avif'>,
]
>;
}>;
type BaseSchemaWithoutEffects =
| import('astro/zod').AnyZodObject
| import('astro/zod').ZodUnion<[BaseSchemaWithoutEffects, ...BaseSchemaWithoutEffects[]]>
| import('astro/zod').ZodDiscriminatedUnion<string, import('astro/zod').AnyZodObject[]>
| import('astro/zod').ZodIntersection<BaseSchemaWithoutEffects, BaseSchemaWithoutEffects>;
type BaseSchema =
| BaseSchemaWithoutEffects
| import('astro/zod').ZodEffects<BaseSchemaWithoutEffects>;
export type SchemaContext = { image: ImageFunction };
type DataCollectionConfig<S extends BaseSchema> = {
type: 'data';
schema?: S | ((context: SchemaContext) => S);
};
type ContentCollectionConfig<S extends BaseSchema> = {
type?: 'content';
schema?: S | ((context: SchemaContext) => S);
};
type CollectionConfig<S> = ContentCollectionConfig<S> | DataCollectionConfig<S>;
export function defineCollection<S extends BaseSchema>(
input: CollectionConfig<S>
): CollectionConfig<S>;
type AllValuesOf<T> = T extends any ? T[keyof T] : never; type AllValuesOf<T> = T extends any ? T[keyof T] : never;
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf< type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
ContentEntryMap[C] ContentEntryMap[C]
>['slug']; >['slug'];
/** @deprecated Use `getEntry` instead. */
export function getEntryBySlug< export function getEntryBySlug<
C extends keyof ContentEntryMap, C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}), E extends ValidContentEntrySlug<C> | (string & {}),
>( >(
collection: C, collection: C,
// Note that this has to accept a regular string too, for SSR // Note that this has to accept a regular string too, for SSR
entrySlug: E entrySlug: E,
): E extends ValidContentEntrySlug<C> ): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>> ? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>; : Promise<CollectionEntry<C> | undefined>;
/** @deprecated Use `getEntry` instead. */
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>( export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
collection: C, collection: C,
entryId: E entryId: E,
): Promise<CollectionEntry<C>>; ): Promise<CollectionEntry<C>>;
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>( export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
collection: C, collection: C,
filter?: (entry: CollectionEntry<C>) => entry is E filter?: (entry: CollectionEntry<C>) => entry is E,
): Promise<E[]>; ): Promise<E[]>;
export function getCollection<C extends keyof AnyEntryMap>( export function getCollection<C extends keyof AnyEntryMap>(
collection: C, collection: C,
filter?: (entry: CollectionEntry<C>) => unknown filter?: (entry: CollectionEntry<C>) => unknown,
): Promise<CollectionEntry<C>[]>; ): Promise<CollectionEntry<C>[]>;
export function getEntry< export function getEntry<
@ -119,7 +72,7 @@ declare module 'astro:content' {
E extends ValidContentEntrySlug<C> | (string & {}), E extends ValidContentEntrySlug<C> | (string & {}),
>( >(
collection: C, collection: C,
slug: E slug: E,
): E extends ValidContentEntrySlug<C> ): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>> ? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>; : Promise<CollectionEntry<C> | undefined>;
@ -128,7 +81,7 @@ declare module 'astro:content' {
E extends keyof DataEntryMap[C] | (string & {}), E extends keyof DataEntryMap[C] | (string & {}),
>( >(
collection: C, collection: C,
id: E id: E,
): E extends keyof DataEntryMap[C] ): E extends keyof DataEntryMap[C]
? Promise<DataEntryMap[C][E]> ? Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>; : Promise<CollectionEntry<C> | undefined>;
@ -138,17 +91,17 @@ declare module 'astro:content' {
entries: { entries: {
collection: C; collection: C;
slug: ValidContentEntrySlug<C>; slug: ValidContentEntrySlug<C>;
}[] }[],
): Promise<CollectionEntry<C>[]>; ): Promise<CollectionEntry<C>[]>;
export function getEntries<C extends keyof DataEntryMap>( export function getEntries<C extends keyof DataEntryMap>(
entries: { entries: {
collection: C; collection: C;
id: keyof DataEntryMap[C]; id: keyof DataEntryMap[C];
}[] }[],
): Promise<CollectionEntry<C>[]>; ): Promise<CollectionEntry<C>[]>;
export function reference<C extends keyof AnyEntryMap>( export function reference<C extends keyof AnyEntryMap>(
collection: C collection: C,
): import('astro/zod').ZodEffects< ): import('astro/zod').ZodEffects<
import('astro/zod').ZodString, import('astro/zod').ZodString,
C extends keyof ContentEntryMap C extends keyof ContentEntryMap
@ -165,7 +118,7 @@ declare module 'astro:content' {
// if `dev` is not running to update as you edit. // if `dev` is not running to update as you edit.
// Invalid collection names will be caught at build time. // Invalid collection names will be caught at build time.
export function reference<C extends string>( export function reference<C extends string>(
collection: C collection: C,
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>; ): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T; type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
@ -231,6 +184,27 @@ declare module 'astro:content' {
collection: "releases"; collection: "releases";
data: InferEntrySchema<"releases"> data: InferEntrySchema<"releases">
} & { render(): Render[".md"] }; } & { render(): Render[".md"] };
"5_1_5.md": {
id: "5_1_5.md";
slug: "5_1_5";
body: string;
collection: "releases";
data: InferEntrySchema<"releases">
} & { render(): Render[".md"] };
"5_1_6.md": {
id: "5_1_6.md";
slug: "5_1_6";
body: string;
collection: "releases";
data: InferEntrySchema<"releases">
} & { render(): Render[".md"] };
"5_1_7.md": {
id: "5_1_7.md";
slug: "5_1_7";
body: string;
collection: "releases";
data: InferEntrySchema<"releases">
} & { render(): Render[".md"] };
}; };
}; };
@ -241,5 +215,5 @@ declare module 'astro:content' {
type AnyEntryMap = ContentEntryMap & DataEntryMap; type AnyEntryMap = ContentEntryMap & DataEntryMap;
type ContentConfig = typeof import("../src/content/config"); export type ContentConfig = typeof import("./../src/content/config.js");
} }

View file

@ -10,11 +10,11 @@
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@astrojs/check": "^0.4.0", "@astrojs/check": "0.9.2",
"astro": "^4.1.1", "astro": "^4.13.3",
"sass": "^1.69.5", "sass": "^1.77.8",
"sharp": "^0.32.5", "sharp": "^0.33.3",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72" "packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72"
} }

View file

@ -0,0 +1,30 @@
---
title: 'Ellie Bot 5.1.5.'
date: '2024-08-01'
versionNumber: '5.1.5'
description: 'Ellie Bot version 5.1.5 release notes.'
---
### Added
- Added: Added a `'afk <msg>?` command which sets an afk message which will trigger whenever someone pings you
- Message will when you type a message in any channel that the bot sees, or after 8 hours, whichever comes first
- The specified message will be prefixed with "The user is afk: "
- The afk message will disappear 30 seconds after being triggered
### Changed
- Bot now shows a message when 'prune fails due to already running error
- Updated some bet descriptions to include 'all' 'half' usage instructions
- Updated some command strings
- dev: Vastly simplified marmalade creation using dotnet templates, docs updated
- Slight refactor of 'wiki, 'time, 'catfact, 'wikia, 'define, 'bible and 'quran commands, no significant change in functionality
### Fixed
- 'coins will no longer show double minus sign for negative changes
- You can once again disable cleverbot responses using fake 'cleverbot:response' module name in permission commands
### Removed
- Removed 'rip command

View file

@ -0,0 +1,31 @@
---
title: 'Ellie Bot 5.1.6.'
date: '2024-08-08'
versionNumber: '5.1.6'
description: 'Ellie Bot version 5.1.6 release notes.'
---
### Added
- `'serverlist` is now paginated
### Changed
- `'listservers` renamed to `'serverlist`
### Fixed
- `'afk` messages can no longer ping, and the response is moved to DMs to avoid abuse
- Possible fix for `'remind` timestamp
### Removed
- Removed old bloat / semi broken / dumb commands
- `'memelist` / `'memegen` (too inconvenient to use)
- `'activity` (useless owner-only command)
- `'rafflecur` (Just use raffle and then award manually instead)
- `'rollduel` (we had this command?)
- You can no longer bet on `'connect4`
- `'economy` Removed.
- Was buggy and didn't really show the real state of the economy.
- It might come back improved in the future
- `'mal` Removed. Useless information / semi broken

View file

@ -0,0 +1,10 @@
---
title: 'Ellie Bot 5.1.7.'
date: '2024-08-09'
versionNumber: '5.1.7'
description: 'Ellie Bot version 5.1.7 release notes.'
---
### Fixed
- Fixed some command groups incorrectly showing up as modules

View file

@ -58,4 +58,4 @@ $palette: (
900: #181b26, 900: #181b26,
950: #0e1016, 950: #0e1016,
), ),
); );

View file

@ -1,3 +1,3 @@
@import 'colors.scss'; @import 'colors.scss';
@import 'type.scss'; @import 'type.scss';
@import 'layout.scss'; @import 'layout.scss';

View file

@ -12,9 +12,11 @@ body {
width: 1040px; width: 1040px;
max-width: 100%; max-width: 100%;
background-color: $white; background-color: $white;
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
background-color: color(purple, 950); background-color: color(gray, 950);
} }
@media (max-width: $tablet) { @media (max-width: $tablet) {
font-size: 16px; font-size: 16px;
} }
@ -37,23 +39,21 @@ body {
left: calc(50% - 360px); left: calc(50% - 360px);
width: 720px; width: 720px;
height: 240px; height: 240px;
background: radial-gradient( background: radial-gradient(50% 50% at 50% 50%,
50% 50% at 50% 50%, rgba(color(orange, 500), 0.2) 0%,
rgba(color(orange, 500), 0.2) 0%, rgba(color(orange, 500), 0) 100%);
rgba(color(orange, 500), 0) 100%
);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
background: radial-gradient( background: radial-gradient(50% 50% at 50% 50%,
50% 50% at 50% 50%, rgba(255, 255, 255, 0.06) 0%,
rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 100%);
rgba(255, 255, 255, 0) 100%
);
} }
} }
} }
::selection { ::selection {
background: color(orange, 200); background: color(orange, 200);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
background: color(orange, 600); background: color(orange, 600);
} }
@ -62,9 +62,11 @@ body {
a, a,
a:visited { a:visited {
color: color(orange, 600); color: color(orange, 600);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: color(orange, 300); color: color(orange, 300);
} }
transition: 0.1s ease; transition: 0.1s ease;
&:hover { &:hover {
@ -76,6 +78,7 @@ hr {
margin: 1em 0; margin: 1em 0;
border: 0; border: 0;
border-bottom: 1px solid color(gray, 100); border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
border-color: color(gray, 900); border-color: color(gray, 900);
} }
@ -90,6 +93,7 @@ nav {
a { a {
transition: 0.1s ease; transition: 0.1s ease;
&:hover { &:hover {
opacity: 0.6; opacity: 0.6;
} }
@ -98,14 +102,17 @@ nav {
#site_title { #site_title {
margin: 0; margin: 0;
} }
#site_title a { #site_title a {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 10px; gap: 10px;
color: color(gray, 950); color: color(gray, 950);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: $white; color: $white;
} }
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
letter-spacing: 2px; letter-spacing: 2px;
@ -113,9 +120,11 @@ nav {
text-decoration: none; text-decoration: none;
text-transform: uppercase; text-transform: uppercase;
} }
.links a { .links a {
margin-left: 1em; margin-left: 1em;
color: color(gray, 800); color: color(gray, 800);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: color(gray, 200); color: color(gray, 200);
} }
@ -123,6 +132,7 @@ nav {
} }
.content { .content {
ol, ol,
ul { ul {
padding-left: 2em; padding-left: 2em;
@ -153,6 +163,7 @@ nav {
.page_title { .page_title {
margin: 1.5em 0; margin: 1.5em 0;
@media (max-width: $tablet) { @media (max-width: $tablet) {
margin: 0.5em 0; margin: 0.5em 0;
} }
@ -166,6 +177,7 @@ nav {
.post { .post {
display: flex; display: flex;
width: 100%; width: 100%;
@media (max-width: $tablet) { @media (max-width: $tablet) {
flex-flow: column; flex-flow: column;
} }
@ -178,12 +190,15 @@ nav {
.version_wrapper { .version_wrapper {
flex-basis: 260px; flex-basis: 260px;
@media (max-width: $container) { @media (max-width: $container) {
flex-basis: 140px; flex-basis: 140px;
} }
flex-grow: 0; flex-grow: 0;
flex-shrink: 0; flex-shrink: 0;
margin: 4.5em 0 0 0; margin: 4.5em 0 0 0;
@media (max-width: $tablet) { @media (max-width: $tablet) {
flex-basis: 0; flex-basis: 0;
margin-top: 2em; margin-top: 2em;
@ -192,6 +207,7 @@ nav {
.version_info { .version_info {
position: sticky; position: sticky;
top: 1em; top: 1em;
@media (max-width: $tablet) { @media (max-width: $tablet) {
position: relative; position: relative;
top: 0; top: 0;
@ -217,26 +233,28 @@ nav {
margin-bottom: 8px; margin-bottom: 8px;
padding: 4px 12px; padding: 4px 12px;
color: $white; color: $white;
background: linear-gradient( background: linear-gradient(25deg,
25deg, color(purple, 800),
color(purple, 800), color(purple, 700),
color(purple, 700), mix(color(purple, 500), color(orange, 500)),
mix(color(purple, 500), color(orange, 500)), color(orange, 500));
color(orange, 500)
);
border-radius: 8px; border-radius: 8px;
} }
.date { .date {
clear: both; clear: both;
@media (max-width: $tablet) { @media (max-width: $tablet) {
display: inline; display: inline;
margin-left: 1em; margin-left: 1em;
} }
color: color(gray, 800); color: color(gray, 800);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: color(gray, 200); color: color(gray, 200);
} }
font-family: $codeFont; font-family: $codeFont;
font-size: $fontSizeSmall; font-size: $fontSizeSmall;
} }
@ -244,22 +262,28 @@ nav {
.content { .content {
margin: 0; margin: 0;
padding: 4em 0; padding: 4em 0;
@media (max-width: $tablet) { @media (max-width: $tablet) {
margin: 1em 0; margin: 1em 0;
padding: 0 0 2em 0; padding: 0 0 2em 0;
} }
border-bottom: 1px solid color(gray, 100); border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
border-color: color(gray, 900); border-color: color(gray, 900);
} }
*:first-child { *:first-child {
margin-top: 0; margin-top: 0;
} }
img { img {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
border-radius: 12px; border-radius: 12px;
border: 1px solid color(gray, 200); border: 1px solid color(gray, 200);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
border-color: color(gray, 800); border-color: color(gray, 800);
} }
@ -269,12 +293,15 @@ nav {
footer { footer {
display: flex; display: flex;
padding: 2em 0; padding: 2em 0;
@media (max-width: $tablet) { @media (max-width: $tablet) {
padding: 1em 0; padding: 1em 0;
} }
color: color(gray, 500); color: color(gray, 500);
justify-content: space-between; justify-content: space-between;
border-top: 1px solid color(gray, 100); border-top: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
border-color: color(gray, 900); border-color: color(gray, 900);
} }
@ -283,9 +310,10 @@ footer {
margin-left: 1em; margin-left: 1em;
color: color(gray, 500); color: color(gray, 500);
text-decoration: none; text-decoration: none;
&:hover { &:hover {
color: color(gray, 500); color: color(gray, 500);
opacity: 0.6; opacity: 0.6;
} }
} }
} }

View file

@ -7,9 +7,11 @@ body {
font-size: 18px; font-size: 18px;
line-height: 1.65; line-height: 1.65;
font-weight: 400; font-weight: 400;
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: color(gray, 200); color: color(gray, 200);
} }
color: color(gray, 800); color: color(gray, 800);
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
@ -23,9 +25,11 @@ h4,
h5 { h5 {
line-height: 1.2; line-height: 1.2;
margin: 1em 0 0.5em 0; margin: 1em 0 0.5em 0;
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: $white; color: $white;
} }
color: color(gray, 950); color: color(gray, 950);
font-weight: 700; font-weight: 700;
} }
@ -33,15 +37,19 @@ h5 {
h1 { h1 {
font-size: 3.052em; font-size: 3.052em;
} }
h2 { h2 {
font-size: 2.441em; font-size: 2.441em;
} }
h3 { h3 {
font-size: 1.953em; font-size: 1.953em;
} }
h4 { h4 {
font-size: 1.563em; font-size: 1.563em;
} }
h5 { h5 {
font-size: 1.25em; font-size: 1.25em;
} }
@ -58,8 +66,10 @@ b,
strong { strong {
font-weight: 700; font-weight: 700;
color: #fff; color: #fff;
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
color: $white; color: $white;
} }
color: color(gray, 950); color: color(gray, 950);
} }

2484
yarn.lock

File diff suppressed because it is too large Load diff