big bang v2?

This commit is contained in:
moonleay 2023-10-18 17:58:15 +02:00
commit 212d3a25a5
78 changed files with 2299 additions and 0 deletions

43
.gitignore vendored Normal file
View file

@ -0,0 +1,43 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# local env files
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
/.idea/inspectionProfiles/Project_Default.xml
/.idea/.gitignore
/.idea/discord.xml
/.idea/GitlabLint.xml
/.idea/intellij-javadocs-4.0.1.xml
/.idea/misc.xml
/.idea/modules.xml
/.idea/vcs.xml

34
README.md Normal file
View file

@ -0,0 +1,34 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

View file

33
app/about/page.tsx Normal file
View file

@ -0,0 +1,33 @@
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function About() {
return (
<>
<section>
<h1>Why does this bot exist?</h1>
<p>We had a person in our team, who sent <a href={"https://static.moonleay.net/img/lilJuddWeb/about/oldplanningmsg.png"}>these planning messages</a> and I thought that this should be automated. Some time later the first version of li'l Judd was born.</p>
</section>
<section>
<h1>What now?</h1>
<p>Today the bot has more features and keeps getting more of them! It is designed to actually improve the Splatoon experience and not be the 10000th moderation and general utility bot with the same features as all bots.</p>
</section>
<section>
<h1>Who is behind this?</h1>
<p>The bot is currently being developed by <a href={"https://discord.com/users/372703841151614976"} target={"_blank"}>moonleay</a> (hey thats me!) with the occasional oneliner from his friends!</p>
</section>
<section>
<h1>Where is my data stored?</h1>
<p>Your data is stored in my basement on my server in Germany. And this will stay that way until I move.</p>
</section>
<section>
<h1>So whats in the future?</h1>
<p>I plan on adding features, which are aimed to improve your and your teams competitive experience! I probably should set up a todo list in the future, but for now you can see my ideas <a href={"https://git.moonleay.net/DiscordBots/lilJudd#maybe-upcoming-features"} target={"_blank"}>in the README of the git project</a>.</p>
</section>
<section>
<h1>Hey, there is this realy cool idea I have! Can you add it?</h1>
<p>Just message me! I can't promise anything, but I am always open to new ideas and improvements! You can find ways to contact me <a href={"/contact"} target={"_blank"}>here</a>.</p>
</section>
</>
)
}

View file

View file

@ -0,0 +1,117 @@
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function About() {
return (
<>
<h1>Acknowledgements</h1>
<section>
<table>
<thead>
<tr>
<th>
<p>tool</p>
</th>
<th>
<p>license</p>
</th>
<th>
<p>page</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Kotlin</p>
</td>
<td>
<a href={"https://kotlinlang.org/docs/faq.html#is-kotlin-free"} target={"_blank"}>Apache license 2.0</a>
</td>
<td>
<a href={"https://kotlinlang.org/"} target={"_blank"}>website</a>
</td>
</tr>
<tr>
<td>
<p>Kord</p>
</td>
<td>
<a href={"https://github.com/kordlib/kord/blob/main/LICENSE"} target={"_blank"}>MIT license</a>
</td>
<td>
<a href={"https://kord.dev/"} target={"_blank"}>website</a>
</td>
</tr>
<tr>
<td>
<p>Kord Extensions</p>
</td>
<td>
<a href={"https://github.com/Kord-Extensions/kord-extensions/blob/root/LICENSE"} target={"_blank"}>Mozilla Public License 2.0</a>
</td>
<td>
<a href={"https://kordex.kotlindiscord.com/"} target={"_blank"}>website</a>
</td>
</tr>
<tr>
<td>
<p>PostgreSQL</p>
</td>
<td>
<a href={"https://www.postgresql.org/about/licence/"} target={"_blank"}>PostgreSQL license</a>
</td>
<td>
<a href={"https://www.postgresql.org/"} target={"_blank"}>website</a>
</td>
</tr>
<tr>
<td>
<p>kotlinx-coroutines-core</p>
</td>
<td>
<a href={"https://github.com/Kotlin/kotlinx.coroutines/blob/master/LICENSE.txt"} target={"_blank"}>Apache license 2.0</a>
</td>
<td>
<a href={"https://github.com/Kotlin/kotlinx.coroutines"} target={"_blank"}>repo</a>
</td>
</tr>
<tr>
<td>
<p>slf4j</p>
</td>
<td>
<a href={"https://github.com/qos-ch/slf4j/blob/master/LICENSE.txt"} target={"_blank"}>MIT license</a>
</td>
<td>
<a href={"https://www.slf4j.org/"} target={"_blank"}>website</a>
</td>
</tr>
<tr>
<td>
<p>Exposed</p>
</td>
<td>
<a href={"https://github.com/JetBrains/Exposed/blob/main/LICENSE.txt"}>Apache license 2.0</a>
</td>
<td>
<a href={"https://github.com/JetBrains/Exposed"} target={"_blank"}>repo</a>
</td>
</tr>
<tr>
<td>
<p>Krontab</p>
</td>
<td>
<a href={"https://github.com/InsanusMokrassar/krontab/blob/master/LICENSE"} target={"_blank"}>Apache license 2.0</a>
</td>
<td>
<a href={"https://github.com/InsanusMokrassar/krontab"} target={"_blank"}>repo</a>
</td>
</tr>
</tbody>
</table>
</section>
</>
)
}

BIN
app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

63
app/features/page.tsx Normal file
View file

@ -0,0 +1,63 @@
//"use client"
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
import React from 'react';
interface SectionProps {
imgUrl: string;
imgAlt: string;
title: string;
description: string;
note: string;
}
export default function Features() {
return (
<>
<p>Features</p>
<ImageSection imgUrl={"https://static.moonleay.net/img/lilJuddWeb/features/timeplanner.png"}
imgAlt={"Screenshot of the time planning feature of li'l Judd"}
title={"Time Planning and Management"}
description={"Helps you to see on which days your fellow team members are available."}
note={"The bot can send these planning messages every monday at 3AM. Members can click the buttons on each message to communicate, if they have time on that day."}
/>
<ImageSection imgUrl={"https://static.moonleay.net/img/lilJuddWeb/features/notifs.png"}
imgAlt={"Screenshot of the notification feature of li'l Judd"}
title={"Notifications"}
description={"Make sure that you and your team members remember to vote in the Time Planner."}
note={"The bot can add roles. The first one gets pinged, when the time planner sends the messages, the other one gets assigned to the available members of the day, so that it is possible to ping all available people."}
/>
<ImageSection imgUrl={"https://static.moonleay.net/img/lilJuddWeb/features/matchplanner.png"}
imgAlt={"Screenshot of the match planning feature of li'l Judd"}
title={"Match Planner"}
description={"Make sure that you know when your next match is and who will participate."}
note={"The bot can send these planning messages, when the command /match is used. Members can click the buttons on each message to communicate, if they will participate in the match. Participating members will get a role until the match has started."}
/>
<ImageSection imgUrl={"https://static.moonleay.net/img/lilJuddWeb/features/rotationstatus.png"}
imgAlt={"Screenshot of the current x map rotation in li'l Judd's status"}
title={"Rotation Status"}
description={"Li'l Judd can show you the current map rotation in his status."}
note={"The bot cycles through the current map and mode rotation. It updates every few seconds."}
/>
<ImageSection
imgUrl={"https://static.moonleay.net/img/lilJuddWeb/features/unknown.png"}
imgAlt={"A Question Mark"}
title={"More to come.."}
description={"The bot is still in development. More features will be added."}
note={"If you have a specific feature request, you can contact me on Discord: @moonleay or email: contact at moonleay dot net"}
/>
</>
)
}
export function ImageSection(props: SectionProps) {
const { imgUrl, imgAlt, title, description , note} = props;
return(
<section>
<h1>{title}</h1>
<img src={imgUrl} alt={imgAlt}/>
<p>{description}</p>
<p>{note}</p>
</section>
)
}

33
app/globals.css Normal file
View file

@ -0,0 +1,33 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@font-face {
font-family: 'Splatoon';
font-style: normal;
font-weight: 400;
src: url('/assets/fonts/Splatoon2-common.woff2') format('woff2'),
url('/assets/fonts/Splatoon2-common.woff') format('woff');
}
:root {
--foreground-rgb: 255, 255, 255;
--background-start-rgb: 0, 0, 0;
--background-end-rgb: 0, 0, 0;
font-family: "Splatoon", sans-serif;
}
body {
color: rgb(var(--foreground-rgb));
background: linear-gradient(
to bottom,
transparent,
rgb(var(--background-end-rgb))
)
rgb(var(--background-start-rgb));
}
body a,p,h1,h2,h3,h4,h5,h6,span,li,ul {
font-family: "Splatoon", sans-serif;
}

View file

26
app/how-do-i/page.tsx Normal file
View file

@ -0,0 +1,26 @@
import styles from "./page.module.css";
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function Stack() {
return (
<>
<h1>How do I...?</h1>
<section>
<h2>.. enable / disable certain features?</h2>
<p>Features can be enabled and disables using the <code>/feature</code> command.<br/>Example:</p>
<p>"<code>/feature feature:Time Planning Feature set:Enable channel:#ich-kann-heute</code>"<br/>will enable the Time Planning Feature in the "ich-kann-heute" channel.</p>
<img src={"https://static.moonleay.net/img/lilJuddWeb/howdoi/featureexample.png"} alt={"A screenshot of the example in Discord."}/>
</section>
<section>
<h2>.. create a match?</h2>
<p>You can create a match time using the <code>/match</code> command.<br/>Example:</p>
<p>"<code>/match match:Ladder Match timestamp:24.12.2069 04:20 opponent:Forbidden</code>"<br/>will create a match on the 24th of December 2069 at 4am in the morning.<br/>Keep in mind that it is important to use the right time format. (<code>dd.MM.yyyy HH:mm</code>)</p>
<img src={"https://static.moonleay.net/img/lilJuddWeb/howdoi/matchexample.png"} alt={"A screenshot of the example in Discord."}/>
</section>
<section>
<p>Is something missing here? Please contact me!</p>
</section>
</>
)
}

View file

22
app/imprint/page.tsx Normal file
View file

@ -0,0 +1,22 @@
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function Imprint() {
return (
<>
<section>
<h1>Imprint</h1>
<p>In accordance with the applicable legal regulations, we would like to point out that this website is not subject to the imprint obligation. This notice is for clarification and transparent information for our visitors.
<br/>
<br/>
According to § 5 TMG (Telemedia Act), certain providers of telemedia in Germany are obliged to provide an imprint with certain information. This obligation applies in particular to commercial websites or those that are used for business purposes.
<br/>
<br/>
However, since this website has no business or commercial character and only provides non-commercial, informative or private content, it is not subject to the imprint obligation according to § 5 TMG.
<br/>
<br/>
Nevertheless, we strive to keep all information on this website correct and up-to-date to the best of our knowledge and belief. However, if you have any questions or concerns, please feel free to contact us using the contact options provided.</p>
</section>
</>
)
}

28
app/layout.tsx Normal file
View file

@ -0,0 +1,28 @@
import './globals.css'
import type { Metadata } from 'next'
import { Inter } from 'next/font/google'
import React from "react";
import {Footer, NavBar} from "@/app/util/wrapping_objects";
const inter = Inter({ subsets: ['latin'] })
export const metadata: Metadata = {
title: 'Lil Judd',
description: 'The Discord bot with unique features.',
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body className={inter.className}>
<NavBar/>
{children}
<Footer/>
</body>
</html>
)
}

16
app/page.tsx Normal file
View file

@ -0,0 +1,16 @@
import {Footer, NavBar, Notice} from "@/app/util/wrapping_objects";
//import Image from "@/app/test/page";
export default function Home() {
return (
<>
<section>
<h1>li'l Judd</h1>
<h5>The competetive Splatoon Bot</h5>
<p>Improve your competitive Splatoon experience!</p>
<p>See what li'l Judd can help you with: <a href={"/features"}>here</a><br/>Invite the bot <a href={"https://discord.com/api/oauth2/authorize?client_id=1024410658973941862&permissions=8&scope=bot"} target={"_blank"}>here</a></p>
</section>
</>
)
}

View file

View file

@ -0,0 +1,86 @@
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function About() {
return (
<>
<section>
<h1>Privacy Policy</h1>
<br/>
<br/>
<h2>Introduction</h2>
This Privacy Policy outlines how the li'l Judd Discord bot ("the bot") collects, uses, and protects user data. The bot is committed to complying with the General Data Protection Regulation (GDPR) and ensuring the privacy and security of user information.
<br/>
<br/>
<h2>1. Information Collection</h2>
<h3>1.1. Data Collection</h3>
The bot does not collect or store any personal information from users.
<br/>
<br/>
<h3>1.2. Server Data</h3>
The bot may collect and store server-related data necessary for its functionality, but this data is not associated with individual users and is used solely for operational purposes.
<br/>
<br/>
<h2>2. Data Storage and Security</h2>
<h3>2.1. Data Storage Location</h3>
All data collected by the bot is stored within servers located in Germany.
<br/>
<br/>
<h3>2.2. Security Measures</h3>
We employ industry-standard security measures to ensure the safety and confidentiality of the data stored within our systems.
<br/>
<br/>
<h2>3. Data Sharing</h2>
The bot does not share any user or server data with third parties.
<br/>
<br/>
<h2>4. Rights of Users</h2>
<h3>4.1. Access, Rectification, and Deletion</h3>
Users have the right to access, rectify, or delete any personal data held by the bot. For such requests, please contact the bot's developer at contact at moonleay dot net.
<br/>
<br/>
<h3>4.2. Data Retention</h3>
As the bot does not collect personal data, data retention is not applicable.
<br/>
<br/>
<h2>5. Compliance with GDPR</h2>
The bot is designed to comply with the GDPR and respects the rights of individuals regarding their personal data.
<br/>
<br/>
<h2>6. Changes to the Privacy Policy</h2>
We reserve the right to update or modify this Privacy Policy at any time. Changes will be effective immediately upon posting. Continued use of the bot after any modifications indicates acceptance of the updated Privacy Policy.
<br/>
<br/>
<h2>7. Contact</h2>
For any inquiries or concerns regarding this Privacy Policy, please contact us at contact at moonleay dot net.
By using the li'l Judd Discord bot, you acknowledge that you have read, understood, and agree to this Privacy Policy.
</section>
</>
)
}

View file

33
app/stack/page.tsx Normal file
View file

@ -0,0 +1,33 @@
import styles from "./page.module.css";
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function Stack() {
return (
<>
<section>
<img src={"https://static.moonleay.net/img/lilJuddWeb/logos/kotlin.svg"} alt={"Kotlin 'K' logo"}/>
<h1>The Kotlin programming language</h1>
<p>I chose this programming language because it is my main one. There is nothing more to that.</p>
</section>
<section>
<img src={"https://static.moonleay.net/img/lilJuddWeb/logos/kord.png"} alt={"The Kord logo"}/>
<h1>The Kord library</h1>
<p>A Kotlin library for creating Discord bots. Pretty bare bones.</p>
</section>
<section>
<img src={"https://static.moonleay.net/img/lilJuddWeb/logos/kordextensions.png"} alt={"The Kord-Extensions logo"}/>
<h1>The Kord Extensions library</h1>
<p>A Kotlin library to improve the Kord experience.</p>
</section>
<section>
<img src={"https://static.moonleay.net/img/lilJuddWeb/logos/pgelephant.png"} alt={"The PostgreSQL elephant"}/>
<h1>The PostgreSQL database</h1>
<p>A fast and reliable database. Also something, which I already used beforehand.</p>
</section>
<section>
<p>To see all used libraries and their licenses, check the Acknowledgements.</p>
</section>
</>
)
}

View file

View file

@ -0,0 +1,74 @@
import styles from "./page.module.css"
import {Footer, NavBar} from "@/app/util/wrapping_objects";
export default function About() {
return (
<>
<h1>Terms of Service</h1>
<p>
<h2>Introduction</h2>
Welcome to li'l Judd, an open-source Discord bot licensed under GNU GPL 3.0. This document outlines the terms of service ("Terms") for using the li'l Judd Discord bot ("the Bot") and the services associated with it.
<br/>
By using the Bot, you agree to comply with these Terms, the GNU GPL 3.0 license, and Discord's Terms of Service.
<br/>
<br/>
<h2>1. Acceptance of Terms</h2>
By using the Bot, you agree to be bound by these Terms and the GNU GPL 3.0 license. If you do not agree with any of these terms, you are prohibited from using the Bot.
<br/>
<br/>
<h2>2. License</h2>
The li'l Judd Discord Bot is open-source and licensed under GNU General Public License (GPL) version 3.0. You are free to use, modify, and distribute the Bot in accordance with the terms specified in the GNU GPL 3.0 license.
<br/>
<br/>
<h2>3. Use of the Bot</h2>
<h3>3.1. Compliance with Discord's Terms of Service</h3>
You must abide by Discord's Terms of Service and Community Guidelines while using the Bot. Any violation of Discord's policies may result in termination of access to the Bot.
<br/>
<br/>
<h3>3.2. No Warranty</h3>
The Bot is provided "as is" without any warranty, expressed or implied. The authors and maintainers of the Bot are not responsible for any damages or consequences resulting from the use of the Bot.
<br/>
<br/>
<h3>3.3. User Conduct</h3>
You agree to use the Bot in a manner that is respectful, lawful, and in compliance with all applicable laws and regulations. Any harmful or abusive behavior towards others is strictly prohibited.
<br/>
<br/>
<h3>3.4. Modifications</h3>
You may modify, adapt, or extend the Bot in accordance with the GNU GPL 3.0 license, as long as any derivative work remains open-source and is also licensed under GNU GPL 3.0.
<br/>
<br/>
<h2>4. Limitation of Liability</h2>
The authors and maintainers of the Bot shall not be liable for any direct, indirect, incidental, special, consequential, or exemplary damages arising out of the use or inability to use the Bot.
<br/>
<br/>
<h2>5. Indemnification</h2>
You agree to indemnify and hold harmless the authors and maintainers of the Bot from any claims, damages, losses, or liabilities arising from your use of the Bot or your breach of these Terms.
<br/>
<br/>
<h2>6. Governing Law</h2>
These Terms are governed by and construed in accordance with the laws of Germany. Any disputes arising under or in connection with these Terms shall be subject to the exclusive jurisdiction of the courts in Germany.
<br/>
<br/>
<h2>7. Changes to the Terms</h2>
We reserve the right to update or modify these Terms at any time. Changes will be effective immediately upon posting. Continued use of the Bot after any modifications indicates your acceptance of the updated Terms.
<br/>
<br/>
<h2>Contact</h2>
If you have any questions or concerns regarding these Terms, you may contact us at contact at moonleay dot net.
By using the li'l Judd Discord Bot, you acknowledge that you have read, understood, and agree to these Terms of Service.
</p>
</>
)
}

View file

@ -0,0 +1,25 @@
.navMenu {
display: flex;
flex-direction: column;
position: sticky;
background-color: #5d5d61;
border-radius: 5px;
}
.logo {
width: 32px;
height: 32px;
border-radius: 10%;
max-width: initial;
max-height: initial;
}
.gpl3Logo {
max-width: initial;
max-height: initial;
width: 100px
}
.fong {
font-family: "Splatoon", sans-serif;
}

View file

@ -0,0 +1,128 @@
import styles from "./wrapping_objects.module.css"
export function NavBar(){
return(
<nav className={styles.navMenu}>
<img className={styles.logo} src={"https://static.moonleay.net/img/lilJuddWeb/logos/logox256.png"} alt={"The Bots Logo"}/>
<a href={"/"} target={"_self"}>li'l Judd</a>
<ul>
<li>
<a href={"/"} target={"_self"}>Home</a>
</li>
<li>
<a href={"/features"} target={"_self"}>Features</a>
</li>
<li>
<a href={"/how-do-i"} target={"_self"}>How do I...?</a>
</li>
<li>
<a href={"/stack"} target={"_self"}>The Stack</a>
</li>
<li>
<a href={"/about"} target={"_self"}>About</a>
</li>
</ul>
<a href={"https://discord.com/api/oauth2/authorize?client_id=1024410658973941862&permissions=8&scope=bot"} target={"_blank"}>Invite to your Discord Server</a>
</nav>
)
}
export function Footer() {
return (
<footer>
<img src={"https://static.moonleay.net/img/lilJuddWeb/lilJudd.png"} alt={"A cute Image of lil Judd <3"}/>
<div>
<table>
<thead>
<tr>
<th>
<p className={styles.fong}>Navigation</p>
</th>
<th>
<p>The Software</p>
</th>
<th>
<p>More</p>
</th>
<th>
<p>Legal</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a href={"/"} target={"_self"}>Home</a>
</td>
<td>
<a href={"https://git.moonleay.net/DiscordBots/lilJudd"} target={"_blank"}>The Bot Code</a>
</td>
<td>
<a href={"https://moonleay.net/"} target={"_self"}>My homepage</a>
</td>
<td>
<a href={"/imprint"} target={"_self"}>Imprint</a>
</td>
</tr>
<tr>
<td>
<a href={"/features"} target={"_self"}>Features</a>
</td>
<td>
<a href={"https://git.moonleay.net/Websites/liljudd-website"} target={"_blank"}>The Website Code</a>
</td>
<td>
<a href={"https://moonleay.net/blog/"} target={"_blank"}>My blog</a>
</td>
<td>
<a href={"/privacy-policy"} target={"_self"}>Privacy Policy</a>
</td>
</tr>
<tr>
<td>
<a href={"/how-do-i"} target={"_self"}>How do I...?</a>
</td>
<td>
<a href={"/acknowledgements"} target={"_self"}>Acknowledgements</a>
</td>
<td>
<a href={"/contact"} target={"_self"}>Contact me</a>
</td>
<td>
<a href={"/terms-of-service"} target={"_self"}>Terms of Service</a>
</td>
</tr>
<tr>
<td>
<a href={"/stack"} target={"_self"}>The Stack</a>
</td>
<td>
</td>
<td>
<a href={"https://up.moonleay.net/"} target={"_blank"}>Uptime Status</a>
</td>
<td>
<a href={"https://git.moonleay.net/DiscordBots/lilJudd/src/branch/master/LICENSE"} target={"_blank"}>The license</a>
</td>
</tr>
<tr>
<td>
<a href={"/about"} target={"_self"}>About</a>
</td>
</tr>
</tbody>
</table>
</div>
<Notice/>
</footer>
)
}
export function Notice() {
return (
<div>
<p>This website is NOT affiliated with Nintendo or any other party. All product names, logos, and brands are property of their respective owners.</p>
<p>li'l Judd &copy; 2023 <a href={"https://moonleay.net/"} target={"_blank"}>moonleay</a></p>
</div>
)
}

4
next.config.js Normal file
View file

@ -0,0 +1,4 @@
/** @type {import('next').NextConfig} */
const nextConfig = {}
module.exports = nextConfig

1458
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

23
package.json Normal file
View file

@ -0,0 +1,23 @@
{
"name": "liljudd-website",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@types/node": "20.6.2",
"@types/react": "18.2.21",
"@types/react-dom": "18.2.7",
"autoprefixer": "10.4.15",
"next": "13.4.19",
"postcss": "8.4.29",
"react": "18.2.0",
"react-dom": "18.2.0",
"tailwindcss": "3.3.3",
"typescript": "5.2.2"
}
}

6
postcss.config.js Normal file
View file

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

20
tailwind.config.ts Normal file
View file

@ -0,0 +1,20 @@
import type { Config } from 'tailwindcss'
const config: Config = {
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic':
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
},
},
},
plugins: [],
}
export default config

27
tsconfig.json Normal file
View file

@ -0,0 +1,27 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}