├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ └── custom.md ├── LICENSE ├── README.md ├── components ├── ErrorPage.jsx └── Static │ ├── Footer.jsx │ └── Header.jsx ├── data └── categories.js ├── next.config.js ├── package-lock.json ├── package.json ├── pages ├── 404.jsx ├── 500.jsx ├── _app.jsx ├── _document.jsx ├── commands.jsx ├── developers.jsx ├── index.jsx ├── invite.jsx ├── maintainance.txt ├── partners.jsx ├── privacy.jsx ├── support.jsx ├── tos.jsx └── vote.jsx ├── postcss.config.js ├── public ├── css │ ├── customColors.css │ ├── global.css │ ├── nprogress.css │ └── tippy.css ├── img │ ├── bck.png │ ├── bck2.png │ ├── bck3.png │ ├── bck4.png │ ├── devansh.jpeg │ ├── logo.jpg │ └── logo2.png ├── js │ └── main.js └── sw.js └── tailwind.config.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | upi : 9648807875@fam 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Devansh Yadav 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Website 2 | ### [treobot.tk](https://treobot.tk) 3 | # License 4 | ## [MIT License](LICENSE) 5 | -------------------------------------------------------------------------------- /components/ErrorPage.jsx: -------------------------------------------------------------------------------- 1 | import Head from "next/head"; 2 | import { useRouter } from "next/router"; 3 | import { useState } from "react"; 4 | 5 | const ErrorPage = ({ code, message }) => { 6 | const [clicked, setClicked] = useState(false); 7 | const router = useRouter(); 8 | 9 | return <> 10 | 11 | {code} | Treo Bot 12 | 13 | 14 |
15 |
16 | 17 |
18 |

{code}

19 |

{message}

20 | 29 |
30 | 31 | } 32 | 33 | export default ErrorPage; 34 | -------------------------------------------------------------------------------- /components/Static/Footer.jsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link"; 2 | import { Menu } from '@headlessui/react'; 3 | import { ChevronDownIcon } from '@heroicons/react/solid'; 4 | 5 | export default function Footer() { 6 | 7 | return ( 8 | <> 9 | 125 | 126 | ); 127 | }; 128 | -------------------------------------------------------------------------------- /components/Static/Header.jsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link"; 2 | import { useEffect, useState, Fragment, useRef } from "react"; 3 | import { useRouter } from "next/router"; 4 | import { Menu, Transition } from '@headlessui/react'; 5 | import { useTheme } from 'next-themes'; 6 | 7 | const MobileNavbar = ({ open, setOpen, NavItems }) => { 8 | const router = useRouter(); 9 | return <> 10 |
setOpen(false)} className={`${open ? '' : 'hidden'} w-full h-full z-50 fixed overflow-none top-0 backdrop-blur-sm lg:hidden`} /> 11 |
12 |
13 | 14 |
15 |
16 | 17 |

Treo

18 |
19 | 20 |
21 | {NavItems.filter(a => a.link).map((item, itemIndex) => ( 22 | 23 |
24 | {item.name} 25 |
26 | 27 | ))} 28 | {NavItems.filter(a => !a.link).map((item, itemIndex) => ( 29 | 30 |
31 | {item.name} 32 |
33 |
34 | ))} 35 |
36 |
37 | 38 | } 39 | const Header = ({ $, NavItems }) => { 40 | const [open, setOpen] = useState(false); 41 | const [colors, setColors] = useState(false); 42 | const [isDiscovered, setIsDiscovered] = useState(false); 43 | const router = useRouter(); 44 | const { theme, setTheme } = useTheme(); 45 | 46 | const colorsThemes = [ 47 | { id: 'violet', color: 'violet', label: 'Violet' }, 48 | { id: 'blue', color: 'blue', label: 'Sky' }, 49 | { id: 'emerald', color: 'emerald', label: 'Emerald' }, 50 | { id: 'rose', color: 'rose', label: 'Rose' }, 51 | { id: 'amber', color: 'amber', label: 'Amber' }, 52 | ]; 53 | 54 | const ChangeColor = id => { 55 | setTheme(id); 56 | setIsDiscovered(true); 57 | } 58 | 59 | const [hue, setHue] = useState(""); 60 | const [banner, setBanner] = useState(false); 61 | useEffect(() => { 62 | if (typeof localStorage == "undefined") return; 63 | const banner = localStorage.getItem("$Award_close_banner"); 64 | if (!banner) setBanner(true); 65 | const theme = localStorage.getItem("theme"); 66 | if (theme === "violet") setHue("hue-rotate-[230deg]"); 67 | if (theme === "blue") setHue("hue-rotate-[180deg]"); 68 | if (theme === "emerald") setHue("hue-rotate-[70deg]"); 69 | if (theme === "rose") setHue("hue-rotate-[330deg]"); 70 | if (theme === "amber") setHue(""); 71 | }, []); 72 | 73 | return ( 74 | <> 75 |
76 |
77 |
78 |
79 | 85 |

86 | TREO 87 |

88 |
89 | 110 |
111 |
112 | 126 | 127 |
128 | 129 |
setColors(!colors)} className="bg-gradient-to-tl from-amber-500 to-amber-700 text-white w-11 h-11 rounded-xl hover:opacity-80 transition-all duration-200 relative"> 130 |
131 | 132 | {!isDiscovered && <> 133 |
134 |
135 | } 136 |
137 |
138 | 139 |
140 | 150 | 151 |
152 | {colorsThemes.map((th, thIdx) => ( 153 | 154 | 163 | 164 | ))} 165 |
166 |
167 |
168 |
169 | 170 | 171 | Invite 172 | 173 | 174 |
175 |
176 |
177 | 178 | setOpen(!open)} /> 179 | 180 | ); 181 | }; 182 | 183 | export default Header; 184 | -------------------------------------------------------------------------------- /data/categories.js: -------------------------------------------------------------------------------- 1 | const categories = [ 2 | { 3 | name: "Economy", 4 | commands: [ 5 | { 6 | name: "Balance", 7 | description: "", 8 | usage: "" 9 | }, 10 | { 11 | name: "Beg", 12 | description: "", 13 | usage: "" 14 | }, 15 | { 16 | name: "Yearly", 17 | description: "", 18 | usage: "" 19 | }, 20 | { 21 | name: "Daily", 22 | description: "", 23 | usage: "" 24 | }, 25 | { 26 | name: "Weekly", 27 | description: "", 28 | usage: "" 29 | }, 30 | { 31 | name: "Dig", 32 | description: "", 33 | usage: "" 34 | }, 35 | { 36 | name: "Deposit", 37 | description: "", 38 | usage: "" 39 | }, 40 | { 41 | name: "Economy Search", 42 | description: "", 43 | usage: "" 44 | }, 45 | { 46 | name: "Withdraw", 47 | description: "", 48 | usage: "" 49 | }, 50 | { 51 | name: "Hunt", 52 | description: "", 53 | usage: "" 54 | }, 55 | { 56 | name: "Fish", 57 | description: "", 58 | usage: "" 59 | }, 60 | { 61 | name: "Balance", 62 | description: "", 63 | usage: "" 64 | }, 65 | { 66 | name: "Chopwood", 67 | description: "", 68 | usage: "" 69 | } 70 | ] 71 | }, 72 | { 73 | name: "Fun", 74 | commands: [ 75 | { 76 | name: "Anime", 77 | description: "", 78 | usage: "" 79 | }, 80 | { 81 | name: "Clever Rate", 82 | description: "", 83 | usage: "" 84 | }, 85 | { 86 | name: "Gif", 87 | description: "", 88 | usage: "" 89 | }, 90 | { 91 | name: "Hack", 92 | description: "", 93 | usage: "" 94 | }, 95 | { 96 | name: "Image", 97 | description: "", 98 | usage: "" 99 | }, 100 | { 101 | name: "Nitro", 102 | description: "", 103 | usage: "" 104 | } 105 | ] 106 | }, 107 | { 108 | name: "Games", 109 | commands: [ 110 | { 111 | name: "Connect4", 112 | description: "", 113 | usage: "" 114 | }, 115 | { 116 | name: "Tic Tac Toe", 117 | description: "", 118 | usage: "" 119 | }, 120 | { 121 | name: "Rock Paper Scissors", 122 | description: "", 123 | usage: "" 124 | } 125 | ] 126 | }, 127 | { 128 | name: "Giveaway", 129 | commands: [ 130 | { 131 | name: "Soon", 132 | description: "", 133 | usage: "" 134 | } 135 | ] 136 | }, 137 | { 138 | name: "Info", 139 | commands: [ 140 | { 141 | name: "help", 142 | description: "Displays a list of all available commands.", 143 | usage: "" 144 | }, 145 | { 146 | name: "serverinfo", 147 | description: "Displays information about the server.", 148 | usage: "" 149 | }, 150 | { 151 | name: "userinfo", 152 | description: "Displays information about a user.", 153 | usage: "" 154 | }, 155 | { 156 | name: "useravatar", 157 | description: "Displays the avatar of a user.", 158 | usage: "" 159 | }, 160 | { 161 | name: "userbanner", 162 | description: "Displays the banner of a user (if they have one).", 163 | usage: "" 164 | }, 165 | { 166 | name: "servericon", 167 | description: "Displays the icon of the server.", 168 | usage: "" 169 | }, 170 | { 171 | name: "serverbanner", 172 | description: "Displays the banner of the server (if it has one).", 173 | usage: "" 174 | }, 175 | { 176 | name: "userroles", 177 | description: "Displays the roles of a user.", 178 | usage: "" 179 | }, 180 | { 181 | name: "serveroldestmember", 182 | description: "Displays the oldest member in the server.", 183 | usage: "" 184 | } 185 | ] 186 | }, 187 | 188 | { 189 | name: "Moderation", 190 | commands: [ 191 | { 192 | name: "Kick", 193 | description: "", 194 | usage: "" 195 | }, 196 | { 197 | name: "Ban", 198 | description: "", 199 | usage: "" 200 | }, 201 | { 202 | name: "Timeout", 203 | description: "", 204 | usage: "" 205 | }, 206 | { 207 | name: "Nuke", 208 | description: "", 209 | usage: "" 210 | }, 211 | { 212 | name: "Slow", 213 | description: "", 214 | usage: "" 215 | }, 216 | { 217 | name: "Unslow", 218 | description: "", 219 | usage: "" 220 | }, 221 | { 222 | name: "Unban", 223 | description: "", 224 | usage: "" 225 | }, 226 | { 227 | name: "Untimeout", 228 | description: "", 229 | usage: "" 230 | }, 231 | { 232 | name: "Unlock", 233 | description: "", 234 | usage: "" 235 | } 236 | ] 237 | }, 238 | { 239 | name: "Ticket", 240 | commands: [ 241 | { 242 | name: "Soon", 243 | description: "", 244 | usage: "Soon" 245 | } 246 | ] 247 | }, 248 | { 249 | name: "Utility", 250 | commands: [ 251 | { 252 | name: "Autorole", 253 | description: "", 254 | usage: "" 255 | }, 256 | { 257 | name: "Calculator", 258 | description: "", 259 | usage: "" 260 | }, 261 | { 262 | name: "Embed", 263 | description: "", 264 | usage: "" 265 | }, 266 | { 267 | name: "Poll", 268 | description: "", 269 | usage: "" 270 | }, 271 | { 272 | name: "Say", 273 | description: "", 274 | usage: "" 275 | }, 276 | { 277 | name: "Screenshot", 278 | description: "", 279 | usage: "" 280 | }, 281 | { 282 | name: "Sort", 283 | description: "", 284 | usage: "" 285 | }, 286 | { 287 | name: "Sticky Embed", 288 | description: "", 289 | usage: "" 290 | }, 291 | { 292 | name: "Sticky Messages", 293 | description: "", 294 | usage: "" 295 | }, 296 | { 297 | name: "Thanks", 298 | description: "", 299 | usage: "" 300 | }, 301 | { 302 | name: "Translate", 303 | description: "", 304 | usage: "" 305 | } 306 | ] 307 | }, 308 | { 309 | name: "Welcome", 310 | commands: [ 311 | { 312 | name: "Soon", 313 | description: "", 314 | usage: "Soon" 315 | } 316 | ] 317 | } 318 | ]; 319 | 320 | export default categories; 321 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | const withPWA = require("next-pwa"); 2 | 3 | module.exports = withPWA({ 4 | images: { 5 | domains: [ "cdn.discordapp.com" ] 6 | }, 7 | pwa: { 8 | dest: "public", 9 | register: true, 10 | skipWaiting: true, 11 | disable: process.env.NODE_ENV == "development" 12 | } 13 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TreoBot", 3 | "version": "5.0.0", 4 | "scripts": { 5 | "dev": "next dev", 6 | "build": "next build", 7 | "start": "next start" 8 | }, 9 | "dependencies": { 10 | "@headlessui/react": "^1.4.2", 11 | "@heroicons/react": "^1.0.5", 12 | "@tailwindcss/line-clamp": "^0.3.1", 13 | "@tippyjs/react": "^4.2.6", 14 | "@windui/snackbar": "^1.2.0", 15 | "@windui/window": "^1.0.0", 16 | "animate.css": "^4.1.1", 17 | "autoprefixer": "^10.2.6", 18 | "axios": "^0.24.0", 19 | "cookie-cutter": "^0.2.0", 20 | "cookies": "^0.8.0", 21 | "js-confetti": "^0.10.2", 22 | "moment": "^2.29.1", 23 | "moment-timezone": "^0.5.34", 24 | "next": "^12.0.7", 25 | "next-pwa": "^5.4.4", 26 | "next-themes": "^0.1.1", 27 | "nprogress": "^0.2.0", 28 | "postcss": "^8.2.13", 29 | "react": "17.0.2", 30 | "react-auth-code-input": "^3.0.0", 31 | "react-countdown": "^2.3.2", 32 | "react-dom": "17.0.2", 33 | "react-icons": "^4.2.1", 34 | "react-moment": "^1.1.1", 35 | "react-modal": "^3.16.1", 36 | "react-snake-game": "^1.0.9", 37 | "snake-game-react": "^1.0.6", 38 | "swr": "^1.1.1", 39 | "tailwindcss": "^3.0.7" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pages/404.jsx: -------------------------------------------------------------------------------- 1 | import ErrorPage from '../components/ErrorPage'; 2 | const UnkownPage = () => { 3 | let messages = [ 4 | 'Have you lost your way, kiddo?', 5 | 'Damn it! This dead-end road.', 6 | 'The Aurors blocked this road, Harry!' 7 | ]; 8 | 9 | return 10 | } 11 | 12 | export default UnkownPage; 13 | 14 | -------------------------------------------------------------------------------- /pages/500.jsx: -------------------------------------------------------------------------------- 1 | import ErrorPage from '../components/ErrorPage'; 2 | const UnkownPage = () => { 3 | return 4 | } 5 | 6 | export default UnkownPage; -------------------------------------------------------------------------------- /pages/_app.jsx: -------------------------------------------------------------------------------- 1 | import "../public/css/global.css"; 2 | import "../public/css/tippy.css"; 3 | import "../public/css/customColors.css"; 4 | import "tailwindcss/tailwind.css"; 5 | import NProgress from "nprogress"; 6 | import Router, { useRouter } from "next/router"; 7 | import Head from "next/head"; 8 | 9 | import Header from "../components/Static/Header.jsx"; 10 | import Footer from "../components/Static/Footer.jsx"; 11 | 12 | Router.onRouteChangeStart = () => NProgress.start(); 13 | Router.onRouteChangeComplete = () => NProgress.done(); 14 | Router.onRouteChangeError = () => NProgress.done(); 15 | 16 | import { ThemeProvider } from 'next-themes' 17 | 18 | export default function AwardApp({ Component, pageProps }) { 19 | 20 | const NavItems = [ 21 | { 22 | link: true, 23 | name: "Home", 24 | icon: "fal fa-home", 25 | activeIcon: "fa fa-home", 26 | href: "/", 27 | }, 28 | { 29 | link: true, 30 | name: "Commands", 31 | icon: "fa fa-list-alt", 32 | activeIcon: "fa fa-list-alt", 33 | href: "/commands", 34 | }, 35 | { 36 | link: true, 37 | name: "Support", 38 | icon: "fab fa-discord", 39 | activeIcon: "fab fa-discord", 40 | href: "/support", 41 | }, 42 | { 43 | link: true, 44 | name: "Add Bot", 45 | icon: "fal fa-robot", 46 | activeIcon: "fab fa-robot", 47 | href: "/invite", 48 | }, 49 | { 50 | link: true, 51 | name: "Vote", 52 | icon: "fa fa-plus", 53 | activeIcon: "fa fa-plus", 54 | href: "/vote", 55 | }, 56 | { 57 | link: true, 58 | name: "Partners", 59 | icon: "fal fa-handshake", 60 | activeIcon: "fa fa-handshake", 61 | href: "/partners", 62 | }, 63 | { 64 | link: true, 65 | name: "Developers", 66 | icon: "fal fa-developers", 67 | activeIcon: "fa fa-developers", 68 | href: "/developers", 69 | } 70 | ] 71 | 72 | return ( 73 | 74 |
75 |
79 | 80 | 81 | Treo 82 | 83 | 84 |
85 |
86 |
87 | 88 |
89 |
90 |
91 |
92 |