Dashboard

This commit is contained in:
qt-coder 2021-06-20 19:39:00 +08:00
parent 2dfd16ebe6
commit 49b377db71
23 changed files with 3693 additions and 1145 deletions

3
.eslintrc Normal file
View file

@ -0,0 +1,3 @@
{
"extends": ["next", "next/core-web-vitals"]
}

34
.gitignore vendored Normal file
View file

@ -0,0 +1,34 @@
# 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
.env.development.local
.env.test.local
.env.production.local
# vercel
.vercel

3
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
}

View file

@ -1,2 +1,34 @@
# cath.gq 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).
Website for cath.exe
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
## 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

@ -1,713 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content="cath.exe" />
<meta property="og:type" content="website" />
<meta property="og:description" content="cath.exe commands" />
<meta
property="og:image"
content="https://images-ext-2.discordapp.net/external/8SFc8ll22wV2_ZEd8roXwRLN3SDbaeDFuYLzEPaZWsQ/%3Fsize%3D1024/https/cdn.discordapp.com/avatars/800966959268364288/e03d6149de8b410db26a6ed0b7c0b491.webp"
/>
<meta property="og:url" content="https://cath.gq/" />
<title>cath.exe commands</title>
<link
rel="icon"
href="https://cdn.discordapp.com/emojis/813410806724558909.png"
type="image/x-icon"
/>
<link rel="stylesheet" href="style.css" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-wEmeIV1mKuiNpC+IOBjI7aAzPcEZeedi5yW5f2yOq55WWLwNGmvvx4Um1vskeMj0"
crossorigin="anonymous"
/>
<script
src="https://kit.fontawesome.com/f1bbab48b6.js"
crossorigin="anonymous"
></script>
</head>
<body>
<div class="container-fluid">
<div class="row flex-nowrap">
<div class="col-2 col-sm-4 col-md-3 col-xl-2 px-sm-2 px-0 bg-dark">
<div
class="
d-flex
flex-column
position-fixed
h-100
align-items-center align-items-sm-start
px-3
pt-2
text-white
min-vh-100
"
>
<a
href="index.html"
class="
d-flex
align-items-center
pb-3
mb-md-0
me-md-auto
mt-2
text-white text-decoration-none
"
>
<span class="fs-6 d-none d-sm-inline"
><i class="fas fa-arrow-circle-left"></i> Back</span
>
</a>
<ul
id="sidebar"
class="
nav nav-pills
flex-column
mb-sm-auto mb-0
align-items-center align-items-sm-start
"
>
<li class="nav-item">
<a href="#codm" class="nav-link align-middle">
<i class="fas fa-gamepad"></i>
<span class="ms-1 d-none d-sm-inline">CODM</span>
</a>
</li>
<li class="nav-item">
<a href="#config" class="nav-link align-middle">
<i class="fas fa-cog"></i>
<span class="ms-1 d-none d-sm-inline">Config</span>
</a>
</li>
<li class="nav-item">
<a href="#economy" class="nav-link align-middle">
<i class="far fa-money-bill-alt"></i>
<span class="ms-1 d-none d-sm-inline">Economy</span>
</a>
</li>
<li class="nav-item">
<a href="#fun" class="nav-link align-middle">
<i class="fas fa-grin-tears"></i>
<span class="ms-1 d-none d-sm-inline">Fun</span>
</a>
</li>
<li class="nav-item">
<a href="#giveaway" class="nav-link align-middle">
<i class="fas fa-gift"></i>
<span class="ms-1 d-none d-sm-inline">Giveaway</span>
</a>
</li>
<li class="nav-item">
<a href="#moderation" class="nav-link align-middle">
<i class="fas fa-users-cog"></i>
<span class="ms-1 d-none d-sm-inline">Moderation</span>
</a>
</li>
<li class="nav-item">
<a href="#music" class="nav-link align-middle">
<i class="fas fa-music"></i>
<span class="ms-1 d-none d-sm-inline">Music</span>
</a>
</li>
<li class="nav-item">
<a href="#utilities" class="nav-link align-middle">
<i class="fas fa-tools"></i>
<span class="ms-1 d-none d-sm-inline">Utilites</span>
</a>
</li>
</ul>
</div>
</div>
<div class="col py-3">
<section id="codm">
<h2 class="text-center">CoDM Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>(Gun Name)</td>
<td>None</td>
<td>C.(Gun Name) {stats/stats2/stats3}</td>
<td>See recommended gun builds and see statistic of it</td>
</tr>
<tr>
<td>perk</td>
<td>None</td>
<td>C.perk</td>
<td>See information of a perk</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="config">
<h2 class="text-center">Config Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>prefix-reset</td>
<td>pr</td>
<td>C.prefix-reset</td>
<td>
Reset the prefix to <span class="code">C.</span> at the
server
</td>
</tr>
<tr>
<td>prefix</td>
<td>None</td>
<td>C.prefix {prefix}</td>
<td>Set the prefix at the server</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="economy">
<h2 class="text-center">Economy Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>balance</td>
<td>bal</td>
<td>C.bal {@User/User ID}</td>
<td>Check the balance of an user</td>
</tr>
<tr>
<td>gamble</td>
<td>bet</td>
<td>C.bet {Coin(number)}</td>
<td>Win double amount of coins or lose all coins</td>
</tr>
<tr>
<td>purchase</td>
<td>buy</td>
<td>C.buy {Item Name}</td>
<td>Buy something from the shop</td>
</tr>
<tr>
<td>drop</td>
<td>None</td>
<td>C.drop {Channel} {Coin(number)}</td>
<td>Drop money to a channel</td>
</tr>
<tr>
<td>inventory</td>
<td>inv</td>
<td>C.inv</td>
<td>Check the inventory of an user</td>
</tr>
<tr>
<td>shop</td>
<td>None</td>
<td>C.shop</td>
<td>Check the items from the shop</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="fun">
<h2 class="text-center">Fun Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>coinflip</td>
<td>None</td>
<td>C.coinflip</td>
<td>Flip a coin</td>
</tr>
<tr>
<td>connect4</td>
<td>c4</td>
<td>C.connect4 {@User}</td>
<td>Play a connect 4 game with a user</td>
</tr>
<tr>
<td>hangman</td>
<td>none</td>
<td>C.hangman</td>
<td>Play a hangman game</td>
</tr>
<tr>
<td>hug</td>
<td>None</td>
<td>C.hug {@User}</td>
<td>Hug someone</td>
</tr>
<tr>
<td>kiss</td>
<td>none</td>
<td>C.kiss {@User}</td>
<td>Kiss someone</td>
</tr>
<tr>
<td>pp</td>
<td>None</td>
<td>C.pp {?@User}</td>
<td>Check how long is the user</td>
</tr>
<tr>
<td>say</td>
<td>None</td>
<td>C.say {Words}</td>
<td>Pretend a bot to say</td>
</tr>
<tr>
<td>simprate</td>
<td>simp</td>
<td>C.simprate {?@User}</td>
<td>Check how simp is the user</td>
</tr>
<tr>
<td>trigger</td>
<td>triggered</td>
<td>C.trigger {?@User/User ID}</td>
<td>Have a trigger effect on user's avatar</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="giveaway">
<h2 class="text-center">Giveaway Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>giveaway</td>
<td>gstart</td>
<td>C.giveaway {Channel} {Time(s/m/h/d)} {Winner(Number)}</td>
<td>Start a giveaway</td>
</tr>
<tr>
<td>gend</td>
<td>None</td>
<td>C.gend {Message ID}</td>
<td>End a giveaway</td>
</tr>
<tr>
<td>reroll</td>
<td>greroll</td>
<td>C.reroll {Message ID}</td>
<td>Reroll a giveaway</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="moderation">
<h2 class="text-center">Moderation Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th class="align-middle">Name</th>
<th class="align-middle">Aliases</th>
<th class="align-middle">Usage</th>
<th class="w-25 align-middle">Description</th>
<th class="align-middle">Required Permission (User)</th>
<th class="align-middle">Required Permission (Bot)</th>
</tr>
</thead>
<tbody>
<tr>
<td>announce</td>
<td>None</td>
<td>C.announce {#Channel} (Message)</td>
<td>Announce a message to a channel</td>
<td>Manage Messages</td>
<td>Manage Messages</td>
</tr>
<tr>
<td>ban</td>
<td>None</td>
<td>C.ban (@User/User ID) {Reason}</td>
<td>Ban an user</td>
<td>Ban Members</td>
<td>Ban Members</td>
</tr>
<tr>
<td>purge</td>
<td>clear, c</td>
<td>C.purge (1-100)</td>
<td>
Clear/Purge 1-100 messages in the channelClear/Purge 1-100
messages in the channel
</td>
<td>Manage Messages</td>
<td>Manage Messages</td>
</tr>
<tr>
<td>clear-warns</td>
<td>cw</td>
<td>C.clear-warns (@User/User ID)</td>
<td>Clear an user's warns</td>
<td>Manage Messages</td>
<td>None</td>
</tr>
<tr>
<td>hackban</td>
<td>None</td>
<td>C.hackban (User ID) {Reason}</td>
<td>Hack-ban an user</td>
<td>Ban Members</td>
<td>Ban Members</td>
</tr>
<tr>
<td>kick</td>
<td>None</td>
<td>C.kick (@User/User ID) {Reason}</td>
<td>Kick an user</td>
<td>Kick Members</td>
<td>Kick Members</td>
</tr>
<tr>
<td>mute</td>
<td>None</td>
<td>C.mute (@User/User ID) {Time{s/m/h/d/w/y}} {Reason}</td>
<td>Mute an user</td>
<td>Manage Messages</td>
<td>Manage Roles</td>
</tr>
<tr>
<td>nuke</td>
<td>None</td>
<td>C.nuke {#Channel}</td>
<td>Destroy a channel and create a new one</td>
<td>Manage Channels</td>
<td>Manage Channels</td>
</tr>
<tr>
<td>remove-warn</td>
<td>rw</td>
<td>C.remove-warn (@User/User ID)</td>
<td>Remove a latest warn for an user</td>
<td>Manage Messages</td>
<td>None</td>
</tr>
<tr>
<td>role</td>
<td>None</td>
<td>C.role (@Role/Role ID/Role Name) (@User/User ID)</td>
<td>Add/Remove a role for an user</td>
<td>Manage Roles</td>
<td>Manage Roles</td>
</tr>
<tr>
<td>slowmode</td>
<td>None</td>
<td>C.slowmode (Time(s/m/h))</td>
<td>Set slow mode at a specific channel</td>
<td>Manage Channels</td>
<td>Manage Channels</td>
</tr>
<tr>
<td>unban</td>
<td>None</td>
<td>C.unban (@User/User ID)</td>
<td>Unban an user</td>
<td>Ban Members</td>
<td>Ban Members</td>
</tr>
<tr>
<td>unmute</td>
<td>None</td>
<td>C.unmute (@User/User ID)</td>
<td>Unmute an user</td>
<td>Manage Roles</td>
<td>Manage Messages</td>
</tr>
<tr>
<td>warn</td>
<td>None</td>
<td>C.warn (@User/User ID) {Reason}</td>
<td>Warn a user</td>
<td>Manage Messages</td>
<td>None</td>
</tr>
<tr>
<td>warns</td>
<td>None</td>
<td>C.warns (@User/User ID)</td>
<td>Check the warns of an user</td>
<td>Manage Messages</td>
<td>None</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="music">
<h2 class="text-center">Music Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Descrption</th>
</tr>
</thead>
<tbody>
<tr>
<td>disconnect</td>
<td>dc</td>
<td>C.disconnect</td>
<td>Leave The Voice Channel</td>
</tr>
<tr>
<td>loop</td>
<td>None</td>
<td>C.loop</td>
<td>Music loop</td>
</tr>
<tr>
<td>lyrics</td>
<td>None</td>
<td>C.lyrics</td>
<td>Get lyrics for the currently playing song</td>
</tr>
<tr>
<td>nowplaying</td>
<td>None</td>
<td>C.nowplaying</td>
<td>
To show the music which is currently playing in this server
</td>
</tr>
<tr>
<td>pause</td>
<td>None</td>
<td>C.pause</td>
<td>To pause the current music in the server</td>
</tr>
<tr>
<td>play</td>
<td>p</td>
<td>C.play (Youtube URL)/(Song Name)</td>
<td>Play songs</td>
</tr>
<tr>
<td>playlist</td>
<td>None</td>
<td>C.playlist (YouTube Playlist URL)/(Playlist Name)</td>
<td>Play songs</td>
</tr>
<tr>
<td>queue</td>
<td>None</td>
<td>C.queue</td>
<td>To show the songs queue</td>
</tr>
<tr>
<td>remove</td>
<td>rm</td>
<td>C.remove (Number)</td>
<td>Remove song from the queue</td>
</tr>
<tr>
<td>resume</td>
<td>continue</td>
<td>C.resume</td>
<td>To resume the paused music</td>
</tr>
<tr>
<td>shuffle</td>
<td>None</td>
<td>C.shuffle</td>
<td>Shuffle queue</td>
</tr>
<tr>
<td>skip</td>
<td>None</td>
<td>C.skip</td>
<td>To skip the current music</td>
</tr>
<tr>
<td>skipto</td>
<td>None</td>
<td>C.skipto (Number)</td>
<td>Skip to the selected queue number</td>
</tr>
<tr>
<td>stop</td>
<td>None</td>
<td>C.stop</td>
<td>To stop the music and clear the queue</td>
</tr>
<tr>
<td>volume</td>
<td>vol</td>
<td>C.volume (Number)</td>
<td>To change the server song queue volume</td>
</tr>
</tbody>
</table>
</section>
<br class="my-5" />
<section id="utilities">
<h2 class="text-center">Utilities Commands</h2>
<hr />
<table class="table table-dark table-striped">
<thead>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Descrption</th>
</tr>
</thead>
<tbody>
<tr>
<th>Name</th>
<th>Aliases</th>
<th>Usage</th>
<th>Descrption</th>
</tr>
<tr>
<td>afk</td>
<td>None</td>
<td>C.afk {Status}/td></td>
<td>Tell someone you are AFK</td>
</tr>
<tr>
<td>avatar</td>
<td>av</td>
<td>C.avatar {@User/ User ID/ Username}</td>
<td>Show user's avatar in different formats</td>
</tr>
<tr>
<td>binary</td>
<td>None</td>
<td>C.binary encode/decode (Word)</td>
<td>Encode/Decode a word/code</td>
</tr>
<tr>
<td>emoji</td>
<td>None</td>
<td>C.emoji (Emoji) {-add}</td>
<td>Show an emoji URL or add the emoji to the server</td>
</tr>
<tr>
<td>help</td>
<td>h</td>
<td>C.help {Command/Category}</td>
<td>Shows all available bot commands</td>
</tr>
<tr>
<td>modmail</td>
<td>None</td>
<td>C.modmail</td>
<td>Create a modmail thread with moderators in a server</td>
</tr>
<tr>
<td>permission</td>
<td>perms/permsfor</td>
<td>C.permission {@User}</td>
<td>Show user's permission in server/channel</td>
</tr>
<tr>
<td>poll</td>
<td>None</td>
<td>C.poll</td>
<td>Join a poll for develop of this bot</td>
</tr>
<tr>
<td>report</td>
<td>None</td>
<td>C.report</td>
<td>Report a bug of the bot</td>
</tr>
<tr>
<td>servericon</td>
<td>None</td>
<td>C.servericon</td>
<td>View the icon of the server</td>
</tr>
<tr>
<td>serverinfo</td>
<td>None</td>
<td>C.serverinfo</td>
<td>Check the info of the server</td>
</tr>
<tr>
<td>snipe</td>
<td>None</td>
<td>C.snipe {#Channel}</td>
<td>Snipe a deleted message</td>
</tr>
<tr>
<td>timer</td>
<td>None</td>
<td>C.timer (Time(s/m/h/d))</td>
<td>Set a timer for yorself</td>
</tr>
<tr>
<td>userinfo</td>
<td>whois</td>
<td>C.userinfo {@User/ User ID/ Username}</td>
<td>Check the info of a user</td>
</tr>
</tbody>
</table>
</section>
</div>
</div>
</div>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js"
integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8"
crossorigin="anonymous"
></script>
</body>
</html>

View file

@ -0,0 +1,44 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Card from '@material-ui/core/Card';
import CardActions from '@material-ui/core/CardActions';
import CardContent from '@material-ui/core/CardContent';
import Button from '@material-ui/core/Button';
import Typography from '@material-ui/core/Typography';
const useStyles = makeStyles({
root: {
minWidth: 275,
},
bullet: {
display: 'inline-block',
margin: '0 2px',
transform: 'scale(0.8)',
},
title: {
fontSize: 14,
},
pos: {
marginBottom: 12,
},
});
export default function CardContainer(props) {
const classes = useStyles();
return (
<Card className={classes.root} style={{ background: '#1F1B24' }}>
<CardContent>
<Typography variant="h5" component="h2">
{props.title}
</Typography>
<Typography variant="body2" component="p">
{props.children}
</Typography>
</CardContent>
<CardActions>
<Button size="small">Learn More</Button>
</CardActions>
</Card>
);
}

43
components/Navbar.js Normal file
View file

@ -0,0 +1,43 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';
const useStyles = makeStyles((theme) => ({
root: {
flexGrow: 1,
},
menuButton: {
marginRight: theme.spacing(2),
},
title: {
flexGrow: 1,
},
}));
export default function ButtonAppBar() {
const classes = useStyles();
return (
<div className={classes.root}>
<AppBar position="static" color='primary' style={{
background: '#1F1B24'
}}>
<Toolbar>
<IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu">
<MenuIcon />
</IconButton>
<Typography variant="h6" className={classes.title}>
Cath.exe
</Typography>
<Button color="inherit">Stats</Button>
<Button color="inherit">Control Panel</Button>
</Toolbar>
</AppBar>
</div>
);
}

View file

@ -0,0 +1,27 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
const useStyles = makeStyles((theme) => ({
root: {
display: 'flex',
flexWrap: 'wrap',
'& > *': {
margin: theme.spacing(1),
width: theme.spacing(16),
height: theme.spacing(16),
},
},
}));
export default function PaperContainer({children}) {
const classes = useStyles();
return (
<div className={classes.root}>
<Paper height='15vh'>
{children}
</Paper>
</div>
);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 KiB

View file

@ -1,237 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta property="og:title" content="cath.exe" />
<meta property="og:type" content="website" />
<meta property="og:description" content="cath.exe Official Website" />
<meta
property="og:image"
content="https://cdn.discordapp.com/avatars/800966959268364288/36d6967911a31a638d65d1da472d2e14.png?size=1024"
/>
<meta property="og:url" content="https://cath.gq/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="manifest" href="manifest.webmanifest" />
<title>cath.exe</title>
<link
rel="icon"
href="https://cdn.discordapp.com/avatars/800966959268364288/36d6967911a31a638d65d1da472d2e14.png?size=1024"
type="image/x-icon"
/>
<link rel="stylesheet" href="./style.css" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-wEmeIV1mKuiNpC+IOBjI7aAzPcEZeedi5yW5f2yOq55WWLwNGmvvx4Um1vskeMj0"
crossorigin="anonymous"
/>
<script
src="https://kit.fontawesome.com/f1bbab48b6.js"
crossorigin="anonymous"
></script>
</head>
<body>
<div id="overlay">
<div class="loader"></div>
</div>
<div class="bg-landscape">
<div
class="
bg-glassthing
position-relative
top-50
start-50
translate-middle
w-75
"
>
<h1 class="text-center mb-3">Welcome to cath.exe official website!</h1>
<div class="container">
<p class="text-center mb-4">
This bot can be fully customized for your server, with changeable
prefix, unlimited custom commands to be created. Also, this bot has
combined with simple giveaway system, so that you can simply connect
it with other economy bots to work on. With the moderation system,
control the server becomes more easy. With disable and enable
system, you can also prevent spamming with bot commands at your main
chat or other channels!
</p>
<center>
<div class="d-flex flex-wrap d-sm-block">
<a
class="btn-invite mb-2 mb-lg-0 mx-sm-0 mx-auto"
target="_blank"
href="https://discord.com/api/oauth2/authorize?client_id=800966959268364288&permissions=4231314550&scope=bot"
><i class="fab fa-discord me-1"></i> Add to Server</a
>
<a class="btn-invite mx-sm-0 mx-auto" href="#usage">Learn More</a>
</div>
</center>
<br />
</div>
</div>
</div>
<span id="usage"></span>
<div class="command-menu">
<div class="container mt-4">
<h2 class="text-center my-4 mb-4">The usage of cath.exe</h2>
<div
class="
d-flex
justify-content-center
flex-wrap
mt-3
custom-card-container
"
>
<div class="custom-card">
<a class="card-link" href="commands.html#codm">
<i class="fas fa-gamepad fa-5x"></i>
<div class="card-body">
<h3>CODM</h3>
<p>Commands about CODM items</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#config">
<i class="fas fa-cog fa-5x"></i>
<div class="card-body">
<h3>Config</h3>
<p>Commands about Bot Configuration</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#economy">
<i class="far fa-money-bill-alt fa-5x"></i>
<div class="card-body">
<h3>Economy</h3>
<p>Commands about Economy feature</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#fun">
<i class="fas fa-grin-tears fa-5x"></i>
<div class="card-body">
<h3>Fun</h3>
<p>Commands about Fun things</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#giveaway">
<i class="fas fa-gift fa-5x"></i>
<div class="card-body">
<h3>Giveaway</h3>
<p>Commands about making Giveaway</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#moderation">
<i class="fas fa-users-cog fa-5x"></i>
<div class="card-body">
<h3>Moderation</h3>
<p>Commands about Server Moderation</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#music">
<i class="fas fa-music fa-5x"></i>
<div class="card-body">
<h3>Music</h3>
<p>Commands about Music</p>
</div>
</a>
</div>
<div class="custom-card">
<a class="card-link" href="commands.html#utilities">
<i class="fas fa-tools fa-5x"></i>
<div class="card-body">
<h3>Utilities</h3>
<p>Extra Commands you may need later</p>
</div>
</a>
</div>
</div>
</div>
</div>
<br />
<div class="semi-footer overflow-hidden py-3">
<div class="row">
<div class="col-lg-5 d-flex">
<img
class="img img-responsive m-auto server-icon"
src="https://cdn.discordapp.com/icons/718762019586572341/c35c387563c7527f056276f2a16f526b.webp?size=2048"
/>
</div>
<div class="col-lg d-flex">
<div
class="
my-auto
mx-auto mx-lg-0
w-75
px-2 px-lg-0
text-center text-lg-start
"
>
<h2>Need technical support?</h2>
<p>
Join Ń1ght and Cath Nation Discord Server to get some help
straight from cath.exe developer and have some programming related
chit-chat with other programmers from around the world. Invitation
link right below.
</p>
<br />
<center>
<a
class="btn-invite"
target="_blank"
href="https://discord.gg/SbQHChmGcp"
>Ń1ght and Cath Nation</a
>
</center>
</div>
</div>
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-lg text-center text-md-start">
<small>Cath.exe&copy;2021</small>
</div>
<div class="col-lg text-center text-md-end">
<small>Made by Ń1ght#0001</small>
</div>
</div>
</div>
</footer>
<script>
var overlay = document.getElementById("overlay");
window.addEventListener("load", function () {
setTimeout(() => {
overlay.style.opacity = "0";
setTimeout(() => {
overlay.style.display = "none";
}, 1000);
}, 1000);
});
</script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js"
integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8"
crossorigin="anonymous"
></script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

View file

@ -1,16 +0,0 @@
{
"name": "cath.exe",
"short_name": "cath.exe",
"start_url": ".",
"display": "standalone",
"background_color": "#02023a",
"theme_color": "#02023a",
"description": "Website for cath.exe",
"icons": [
{
"src": "https://media.discordapp.net/attachments/842014909264953354/853888850551767071/image0.jpg?width=563&height=563",
"sizes": "48x48",
"type": "image/png"
}
]
}

3
next.config.js Normal file
View file

@ -0,0 +1,3 @@
module.exports = {
reactStrictMode: true,
}

22
package.json Normal file
View file

@ -0,0 +1,22 @@
{
"name": "cath-dashboard",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@material-ui/core": "^4.11.4",
"@material-ui/icons": "^4.11.2",
"next": "11.0.0",
"react": "17.0.2",
"react-dom": "17.0.2"
},
"devDependencies": {
"eslint": "7.29.0",
"eslint-config-next": "11.0.0"
}
}

15
pages/_app.js Normal file
View file

@ -0,0 +1,15 @@
import '../styles/globals.css'
import Navbar from '../components/Navbar'
function MyApp({ Component, pageProps }) {
return (
<>
<Navbar/>
<div className='page-container'>
<Component {...pageProps} />
</div>
</>
)
}
export default MyApp

5
pages/api/hello.js Normal file
View file

@ -0,0 +1,5 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default function handler(req, res) {
res.status(200).json({ name: 'John Doe' })
}

18
pages/index.js Normal file
View file

@ -0,0 +1,18 @@
import { Typography } from '@material-ui/core'
import CardContainer from '../components/CardContainer'
export default function Home() {
return (
<>
<h1>Welcome User!</h1>
<div className='grid'>
<CardContainer>aaaaaaaa</CardContainer>
<CardContainer>aaaaaaaa</CardContainer>
<CardContainer>aaaaaaaa</CardContainer>
<CardContainer>aaaaaaaa</CardContainer>
<CardContainer>aaaaaaaa</CardContainer>
<CardContainer>aaaaaaaa</CardContainer>
</div>
</>
)
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

4
public/vercel.svg Normal file
View file

@ -0,0 +1,4 @@
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

177
style.css
View file

@ -1,177 +0,0 @@
html {
scroll-behavior: smooth;
}
.bg-landscape {
background: url("./landscape.jpg");
background-position: center;
background-size: cover;
height: 100vh;
color: white;
}
.semi-footer {
background: url("./footer.jpg");
background-position: top;
background-size: cover;
color: white;
}
.semi-footer .server-icon {
border-radius: 50%;
}
.bg-glassthing {
padding: 0.5em;
border-radius: 15px;
background: rgba(0, 0, 0, 0.165);
box-shadow: inset 2px 2px 3px black, 2px 2px 3px rgba(0, 0, 0, 0.57);
}
.btn-invite {
background: transparent;
border: solid 1px white;
border-radius: 15px;
padding: 10px 24px;
color: white;
text-decoration: none;
transition: 0.4s;
}
.btn-invite:hover {
border: solid 1px transparent;
background: white;
transition: 0.4s;
color: black;
}
.btn-invite:active {
transition: 0.4s;
box-shadow: inset 2px 2px 3px rgba(0, 0, 0, 0.65);
border: solid 0.5px transparent;
}
#overlay {
position: fixed;
width: 100%;
height: 100%;
background: linear-gradient(
35deg,
rgb(0, 0, 0),
rgb(7, 18, 70),
rgb(103, 94, 129)
);
z-index: 999;
transition: 0.5s;
}
.loader {
width: 80px;
height: 80px;
border: 2px solid transparent;
border-top: 3px solid rgb(103, 94, 129);
border-radius: 100%;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
animation: spin 1s infinite linear;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.command-menu {
text-decoration: none;
}
.card-link {
text-decoration: none;
color: white;
}
.card-link:hover {
color: white;
}
.custom-card-container .custom-card {
padding: 12px;
text-align: center;
height: 275px;
width: 250px;
background: #01000c;
transition: 0.65s;
text-decoration: none;
color: white;
}
.custom-card-container .custom-card i {
position: relative;
top: 50%;
transform: translateY(-50%);
transition: 0.4s;
}
.custom-card-container .custom-card .card-body {
position: relative;
top: 15%;
opacity: 0;
transition: 0.3s;
}
.custom-card-container .custom-card:hover {
background: #1b1650;
box-shadow: inset -4px -4px 5px rgba(0, 0, 0, 0.65),
inset 6px 6px 5px rgba(22, 11, 150, 0.7);
transition: 0.4s;
}
.custom-card-container .custom-card:hover .card-body {
opacity: 1;
top: 20%;
transition: 0.45s;
}
.custom-card-container .custom-card:hover i {
top: 15%;
transform: none;
transition: 0.3s;
text-shadow: 4px 4px 6px rgb(0, 0, 0);
}
footer {
background: black;
color: white;
padding: 1vh;
}
#sidebar .nav-link {
color: #949494;
transition: 0.45s;
}
#sidebar .nav-link:hover,
#sidebar .active {
color: #ffffff;
transition: 0.3s;
}
.code {
font-size: 12px;
font-family: "Courier New", Courier, monospace;
padding: 4px 8px;
border-radius: 4px;
color: black;
background: rgba(255, 255, 255, 0.65);
}

0
styles/Home.module.css Normal file
View file

44
styles/globals.css Normal file
View file

@ -0,0 +1,44 @@
* {
color: #fff;
}
html,
body {
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
background: #121212;
}
.page-container {
padding: 2vw;
margin: 2vw;
}
@media screen and (max-width: 600px) {
.page-container {
padding: 2px;
margin: 2px;
}
}
a {
color: inherit;
text-decoration: none;
}
* {
box-sizing: border-box;
}
.flex {
display: flex;
justify-content: space-between;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 300px);
grid-gap: 10px;
}

3394
yarn.lock Normal file

File diff suppressed because it is too large Load diff