feat: Add complete EJS documentation layout and sections for Amayo Bot
- Created main index.ejs view with header, footer, and content structure. - Developed layout.ejs for consistent styling across pages. - Implemented partials for various sections including admin, alliances, chests, basic commands, crafting, economy, and more. - Added a table of contents for easy navigation. - Included responsive design elements and animations using Tailwind CSS. - Migrated content to EJS format for dynamic rendering.
This commit is contained in:
89
package-lock.json
generated
89
package-lock.json
generated
@@ -16,6 +16,7 @@
|
||||
"chrono-node": "2.9.0",
|
||||
"discord-api-types": "0.38.26",
|
||||
"discord.js": "15.0.0-dev.1759363313-f510b5ffa",
|
||||
"ejs": "^3.1.10",
|
||||
"newrelic": "13.4.0",
|
||||
"node-appwrite": "19.1.0",
|
||||
"pino": "9.13.0",
|
||||
@@ -23,6 +24,7 @@
|
||||
"redis": "5.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ejs": "^3.1.5",
|
||||
"@types/node": "24.3.1",
|
||||
"ts-node": "10.9.2",
|
||||
"typescript": "5.9.2"
|
||||
@@ -1054,6 +1056,13 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/ejs": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz",
|
||||
"integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/luxon": {
|
||||
"version": "3.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz",
|
||||
@@ -1188,6 +1197,12 @@
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
||||
"license": "Python-2.0"
|
||||
},
|
||||
"node_modules/async": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
|
||||
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
@@ -1214,6 +1229,12 @@
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
@@ -1255,6 +1276,15 @@
|
||||
"readable-stream": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
@@ -1645,6 +1675,21 @@
|
||||
"fast-check": "^3.23.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ejs": {
|
||||
"version": "3.1.10",
|
||||
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
|
||||
"integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"jake": "^10.8.5"
|
||||
},
|
||||
"bin": {
|
||||
"ejs": "bin/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
@@ -1788,6 +1833,15 @@
|
||||
"integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/filelist": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
||||
"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"minimatch": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/find-package-json": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz",
|
||||
@@ -2187,6 +2241,23 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/jake": {
|
||||
"version": "10.9.4",
|
||||
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz",
|
||||
"integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"async": "^3.2.6",
|
||||
"filelist": "^1.0.4",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"jake": "bin/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/jiti": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz",
|
||||
@@ -2377,6 +2448,18 @@
|
||||
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/minimist": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
@@ -2607,6 +2690,12 @@
|
||||
"integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/pino": {
|
||||
"version": "9.13.0",
|
||||
"resolved": "https://registry.npmjs.org/pino/-/pino-9.13.0.tgz",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "amayo",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.15",
|
||||
"description": "",
|
||||
"main": "src/main.ts",
|
||||
"scripts": {
|
||||
@@ -13,6 +13,7 @@
|
||||
"dev:optimized": "MEMORY_LOG_INTERVAL_SECONDS=300 ENABLE_MEMORY_OPTIMIZER=true NODE_OPTIONS='--expose-gc' npx tsx watch src/main.ts",
|
||||
"start:prod": "NODE_ENV=production NODE_OPTIONS=--max-old-space-size=384 npx tsx src/main.ts",
|
||||
"start:prod-optimized": "NODE_ENV=production ENABLE_MEMORY_OPTIMIZER=true NODE_OPTIONS='--max-old-space-size=512 --expose-gc' npx tsx src/main.ts",
|
||||
"tsc": "tsc",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"seed:minigames": "tsx src/game/minigames/seed.ts",
|
||||
"start:optimize-relic": "NODE_ENV=production ENABLE_MEMORY_OPTIMIZER=true NEW_RELIC_APP_NAME=amayo NEW_RELIC_LICENSE_KEY=85ef833e676ed6ea726e23b3e373397dFFFFNRAL NODE_OPTIONS='--max-old-space-size=512 --expose-gc' npx tsx --experimental-loader=newrelic/esm-loader.mjs src/main.ts"
|
||||
@@ -29,6 +30,7 @@
|
||||
"chrono-node": "2.9.0",
|
||||
"discord-api-types": "0.38.26",
|
||||
"discord.js": "15.0.0-dev.1759363313-f510b5ffa",
|
||||
"ejs": "^3.1.10",
|
||||
"newrelic": "13.4.0",
|
||||
"node-appwrite": "19.1.0",
|
||||
"pino": "9.13.0",
|
||||
@@ -36,6 +38,7 @@
|
||||
"redis": "5.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ejs": "^3.1.5",
|
||||
"@types/node": "24.3.1",
|
||||
"ts-node": "10.9.2",
|
||||
"typescript": "5.9.2"
|
||||
|
||||
@@ -1,210 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es" class="scroll-smooth">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Amayo Bot | Guía Completa - Diseño Moderno</title>
|
||||
<meta name="description" content="Guía completa ultra moderna de Amayo Bot para Discord">
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
animation: {
|
||||
'gradient': 'gradient 8s linear infinite',
|
||||
'float': 'float 6s ease-in-out infinite',
|
||||
'glow': 'glow 3s ease-in-out infinite',
|
||||
'slide-in': 'slideIn 0.5s ease-out',
|
||||
},
|
||||
keyframes: {
|
||||
gradient: {
|
||||
'0%, 100%': { backgroundPosition: '0% 50%' },
|
||||
'50%': { backgroundPosition: '100% 50%' },
|
||||
},
|
||||
float: {
|
||||
'0%, 100%': { transform: 'translateY(0)' },
|
||||
'50%': { transform: 'translateY(-20px)' },
|
||||
},
|
||||
glow: {
|
||||
'0%, 100%': { opacity: '0.4' },
|
||||
'50%': { opacity: '0.8' },
|
||||
},
|
||||
slideIn: {
|
||||
'0%': { transform: 'translateY(20px)', opacity: '0' },
|
||||
'100%': { transform: 'translateY(0)', opacity: '1' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<link rel="stylesheet" href="./assets/css/styles.css">
|
||||
</head>
|
||||
<body class="min-h-screen bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950 text-slate-100 antialiased">
|
||||
|
||||
<!-- Animated Background Blobs -->
|
||||
<div class="fixed inset-0 overflow-hidden pointer-events-none z-0">
|
||||
<div class="absolute top-0 left-1/4 w-96 h-96 bg-purple-500/20 rounded-full mix-blend-screen filter blur-3xl animate-float"></div>
|
||||
<div class="absolute top-1/3 right-1/4 w-96 h-96 bg-indigo-500/20 rounded-full mix-blend-screen filter blur-3xl animate-float" style="animation-delay: 2s;"></div>
|
||||
<div class="absolute bottom-0 left-1/3 w-96 h-96 bg-pink-500/15 rounded-full mix-blend-screen filter blur-3xl animate-float" style="animation-delay: 4s;"></div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10">
|
||||
<!-- Hero Ultra Moderno -->
|
||||
<header class="relative overflow-hidden border-b border-white/5">
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-indigo-500/5 via-purple-500/5 to-transparent"></div>
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-20 sm:py-28 relative">
|
||||
<div class="max-w-5xl mx-auto text-center space-y-8">
|
||||
<!-- Badge con Pulse -->
|
||||
<div class="inline-flex items-center gap-3 px-5 py-2.5 rounded-full bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-indigo-500/30 backdrop-blur-sm">
|
||||
<span class="relative flex h-2.5 w-2.5">
|
||||
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-indigo-400 opacity-75"></span>
|
||||
<span class="relative inline-flex rounded-full h-2.5 w-2.5 bg-gradient-to-r from-indigo-400 to-purple-400"></span>
|
||||
</span>
|
||||
<span class="text-sm font-bold tracking-wider uppercase bg-clip-text text-transparent bg-gradient-to-r from-indigo-200 to-purple-200">
|
||||
Amayo Bot • v0.11.20
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Título con Gradiente Animado -->
|
||||
<h1 class="text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-black leading-tight">
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-white via-indigo-100 to-purple-100 animate-gradient bg-[length:200%_auto]">
|
||||
Guía Completa
|
||||
</span>
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-indigo-400 via-purple-400 to-pink-400 animate-gradient bg-[length:200%_auto]">
|
||||
Amayo Bot
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<!-- Descripción -->
|
||||
<p class="text-xl sm:text-2xl text-slate-300 max-w-3xl mx-auto leading-relaxed font-light">
|
||||
Sistema completo de <span class="font-semibold text-indigo-300">economía</span>, <span class="font-semibold text-purple-300">minijuegos</span>, <span class="font-semibold text-pink-300">misiones</span> y <span class="font-semibold text-blue-300">IA</span> para Discord
|
||||
</p>
|
||||
|
||||
<!-- CTA Buttons Modernos -->
|
||||
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
|
||||
<a href="#primeros-pasos" class="group relative px-10 py-4 text-lg font-bold text-white overflow-hidden rounded-2xl transition-all duration-300 hover:scale-105">
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-600 to-purple-600 transition-transform duration-300 group-hover:scale-110"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-500 to-purple-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<span class="relative flex items-center gap-2">
|
||||
Comenzar ahora
|
||||
<svg class="w-5 h-5 transition-transform group-hover:translate-x-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button id="toggle-nav" class="group px-10 py-4 text-lg font-bold text-white backdrop-blur-xl bg-white/5 border-2 border-white/10 rounded-2xl hover:bg-white/10 hover:border-white/20 hover:scale-105 transition-all duration-300">
|
||||
<span class="flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
Ver índice
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Meta Info Ultra Moderno -->
|
||||
<div class="flex flex-wrap justify-center gap-3 pt-6">
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
Discord.js 15.0-dev
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
Enero 2025
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-gradient-to-r from-indigo-500/10 to-purple-500/10 border border-indigo-500/30 text-sm font-bold text-indigo-200 hover:from-indigo-500/20 hover:to-purple-500/20 transition-all">
|
||||
23 Secciones Completas
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- TEST: Una sección moderna para ver el estilo -->
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-16">
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="rounded-3xl bg-gradient-to-br from-slate-800/40 to-slate-900/40 backdrop-blur-2xl border border-white/10 p-8 sm:p-12 shadow-2xl hover:shadow-indigo-500/10 transition-all duration-500 hover:border-indigo-500/30 animate-slide-in">
|
||||
<div class="mb-8">
|
||||
<div class="inline-block">
|
||||
<h2 class="text-4xl sm:text-5xl font-black mb-4 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">
|
||||
🚀 Primeros Pasos
|
||||
</h2>
|
||||
<div class="h-1.5 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 rounded-full"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-lg sm:text-xl text-slate-300 leading-relaxed mb-10">
|
||||
¡Bienvenido a <span class="font-bold text-white">Amayo Bot</span>! Este bot transforma tu servidor en una experiencia de juego completa.
|
||||
</p>
|
||||
|
||||
<!-- Feature Grid Moderno -->
|
||||
<div class="rounded-2xl bg-gradient-to-br from-indigo-500/10 to-purple-500/10 border border-indigo-500/20 p-8 mb-8">
|
||||
<h3 class="text-2xl font-bold text-indigo-200 mb-6 flex items-center gap-3">
|
||||
<span class="text-3xl">✨</span>
|
||||
Características Principales
|
||||
</h3>
|
||||
<div class="grid gap-4">
|
||||
<div class="flex items-start gap-4 p-4 rounded-xl bg-slate-800/30 border border-slate-700/50 hover:border-indigo-500/50 hover:bg-slate-800/50 transition-all duration-300">
|
||||
<span class="text-2xl">🎮</span>
|
||||
<div>
|
||||
<h4 class="font-bold text-white mb-1">Minijuegos Épicos</h4>
|
||||
<p class="text-sm text-slate-400">Mina, pesca, pelea y cultiva recursos</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start gap-4 p-4 rounded-xl bg-slate-800/30 border border-slate-700/50 hover:border-purple-500/50 hover:bg-slate-800/50 transition-all duration-300">
|
||||
<span class="text-2xl">💰</span>
|
||||
<div>
|
||||
<h4 class="font-bold text-white mb-1">Economía Completa</h4>
|
||||
<p class="text-sm text-slate-400">Tienda, crafteo e inventario</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-start gap-4 p-4 rounded-xl bg-slate-800/30 border border-slate-700/50 hover:border-pink-500/50 hover:bg-slate-800/50 transition-all duration-300">
|
||||
<span class="text-2xl">🏆</span>
|
||||
<div>
|
||||
<h4 class="font-bold text-white mb-1">Progresión & Logros</h4>
|
||||
<p class="text-sm text-slate-400">Misiones, logros y rachas diarias</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Info Cards -->
|
||||
<div class="grid md:grid-cols-2 gap-4">
|
||||
<div class="group p-6 rounded-2xl bg-slate-800/50 border border-slate-700/50 hover:border-indigo-500/50 hover:bg-slate-800/70 transition-all duration-300 hover:scale-105 hover:shadow-xl hover:shadow-indigo-500/10">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<span class="text-4xl">⚡</span>
|
||||
<h3 class="text-xl font-bold text-white">Prefix: <code class="px-3 py-1 rounded-lg bg-indigo-500/20 text-indigo-200 border border-indigo-500/30">!</code></h3>
|
||||
</div>
|
||||
<p class="text-sm text-slate-400">Personalizable con <code class="px-2 py-0.5 rounded bg-slate-700/50 text-slate-300">!configuracion</code></p>
|
||||
</div>
|
||||
|
||||
<div class="group p-6 rounded-2xl bg-slate-800/50 border border-slate-700/50 hover:border-purple-500/50 hover:bg-slate-800/70 transition-all duration-300 hover:scale-105 hover:shadow-xl hover:shadow-purple-500/10">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<span class="text-4xl">❓</span>
|
||||
<h3 class="text-xl font-bold text-white">Ayuda</h3>
|
||||
</div>
|
||||
<p class="text-sm text-slate-400">Usa <code class="px-2 py-0.5 rounded bg-purple-500/20 text-purple-200 border border-purple-500/30">!ayuda</code> para ver comandos</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mensaje para el usuario -->
|
||||
<div class="mt-12 p-8 rounded-3xl bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-indigo-500/30 backdrop-blur-sm text-center">
|
||||
<p class="text-2xl font-bold text-white mb-3">✨ Este es el nuevo diseño ultra moderno ✨</p>
|
||||
<p class="text-lg text-slate-300">¿Te gusta este estilo? Todas las 23 secciones tendrán este diseño con:</p>
|
||||
<div class="flex flex-wrap justify-center gap-3 mt-6">
|
||||
<span class="px-4 py-2 rounded-xl bg-white/5 text-sm font-medium text-slate-300">Glassmorphism</span>
|
||||
<span class="px-4 py-2 rounded-xl bg-white/5 text-sm font-medium text-slate-300">Hover Effects</span>
|
||||
<span class="px-4 py-2 rounded-xl bg-white/5 text-sm font-medium text-slate-300">Gradientes</span>
|
||||
<span class="px-4 py-2 rounded-xl bg-white/5 text-sm font-medium text-slate-300">Animaciones</span>
|
||||
<span class="px-4 py-2 rounded-xl bg-white/5 text-sm font-medium text-slate-300">100% Tailwind</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="./assets/js/main.js" type="module"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,8 +1,24 @@
|
||||
import { createServer, IncomingMessage, ServerResponse } from "node:http";
|
||||
import { promises as fs } from "node:fs";
|
||||
import { readFileSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import ejs from "ejs";
|
||||
|
||||
const publicDir = path.join(__dirname, "public");
|
||||
const viewsDir = path.join(__dirname, "views");
|
||||
|
||||
// Cargar metadatos del proyecto para usarlos como variables en las vistas
|
||||
let pkg: {
|
||||
name?: string;
|
||||
version?: string;
|
||||
dependencies?: Record<string, string>;
|
||||
} = {};
|
||||
try {
|
||||
const pkgPath = path.join(__dirname, "../../package.json");
|
||||
pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
||||
} catch {
|
||||
// Ignorar si no se puede leer; usaremos valores por defecto
|
||||
}
|
||||
|
||||
const MIME_TYPES: Record<string, string> = {
|
||||
".html": "text/html; charset=utf-8",
|
||||
@@ -55,51 +71,99 @@ const sendResponse = async (
|
||||
res.end(data);
|
||||
};
|
||||
|
||||
export const server = createServer(async (req: IncomingMessage, res: ServerResponse) => {
|
||||
try {
|
||||
// 🔒 Forzar HTTPS en producción (Heroku)
|
||||
if (process.env.NODE_ENV === "production") {
|
||||
const proto = req.headers["x-forwarded-proto"];
|
||||
if (proto && proto !== "https") {
|
||||
res.writeHead(301, {
|
||||
Location: `https://${req.headers.host}${req.url}`,
|
||||
});
|
||||
return res.end();
|
||||
}
|
||||
}
|
||||
|
||||
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
|
||||
const filePath = resolvePath(url.pathname);
|
||||
|
||||
if (!filePath.startsWith(publicDir)) {
|
||||
res.writeHead(403);
|
||||
res.end("Forbidden");
|
||||
return;
|
||||
}
|
||||
const renderTemplate = async (
|
||||
res: ServerResponse,
|
||||
template: string,
|
||||
locals: Record<string, any> = {},
|
||||
statusCode = 200
|
||||
) => {
|
||||
const pageFile = path.join(viewsDir, "pages", `${template}.ejs`);
|
||||
const layoutFile = path.join(viewsDir, "layouts", "layout.ejs");
|
||||
const body = await ejs.renderFile(pageFile, locals, { async: true });
|
||||
const html = await ejs.renderFile(
|
||||
layoutFile,
|
||||
{ ...locals, body },
|
||||
{ async: true }
|
||||
);
|
||||
res.writeHead(statusCode, {
|
||||
"Content-Type": "text/html; charset=utf-8",
|
||||
"Cache-Control": "no-cache",
|
||||
});
|
||||
res.end(html);
|
||||
};
|
||||
|
||||
export const server = createServer(
|
||||
async (req: IncomingMessage, res: ServerResponse) => {
|
||||
try {
|
||||
await sendResponse(res, filePath);
|
||||
} catch (error: any) {
|
||||
if (error.code === "ENOENT") {
|
||||
const notFoundPath = path.join(publicDir, "404.html");
|
||||
try {
|
||||
await sendResponse(res, notFoundPath, 404);
|
||||
} catch {
|
||||
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("404 - Recurso no encontrado");
|
||||
// 🔒 Forzar HTTPS en producción (Heroku)
|
||||
if (process.env.NODE_ENV === "production") {
|
||||
const proto = req.headers["x-forwarded-proto"];
|
||||
if (proto && proto !== "https") {
|
||||
res.writeHead(301, {
|
||||
Location: `https://${req.headers.host}${req.url}`,
|
||||
});
|
||||
return res.end();
|
||||
}
|
||||
} else if (error.code === "EISDIR") {
|
||||
const indexPath = path.join(filePath, "index.html");
|
||||
await sendResponse(res, indexPath);
|
||||
} else {
|
||||
console.error("[Server] Error al servir archivo:", error);
|
||||
res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("500 - Error interno del servidor");
|
||||
}
|
||||
|
||||
const url = new URL(
|
||||
req.url ?? "/",
|
||||
`http://${req.headers.host ?? "localhost"}`
|
||||
);
|
||||
|
||||
// Ruta dinámica: renderizar index con EJS
|
||||
if (
|
||||
url.pathname === "/" ||
|
||||
url.pathname === "/index" ||
|
||||
url.pathname === "/index.html"
|
||||
) {
|
||||
const now = new Date();
|
||||
const currentDateHuman = now.toLocaleDateString("es-ES", {
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
});
|
||||
const djsVersion = pkg?.dependencies?.["discord.js"] ?? "15.0.0-dev";
|
||||
await renderTemplate(res, "index", {
|
||||
appName: pkg.name ?? "Amayo Bot",
|
||||
version: pkg.version ?? "2.0.0",
|
||||
djsVersion,
|
||||
currentDateHuman,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const filePath = resolvePath(url.pathname);
|
||||
|
||||
if (!filePath.startsWith(publicDir)) {
|
||||
res.writeHead(403);
|
||||
res.end("Forbidden");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await sendResponse(res, filePath);
|
||||
} catch (error: any) {
|
||||
if (error.code === "ENOENT") {
|
||||
const notFoundPath = path.join(publicDir, "404.html");
|
||||
try {
|
||||
await sendResponse(res, notFoundPath, 404);
|
||||
} catch {
|
||||
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("404 - Recurso no encontrado");
|
||||
}
|
||||
} else if (error.code === "EISDIR") {
|
||||
const indexPath = path.join(filePath, "index.html");
|
||||
await sendResponse(res, indexPath);
|
||||
} else {
|
||||
console.error("[Server] Error al servir archivo:", error);
|
||||
res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("500 - Error interno del servidor");
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[Server] Error inesperado:", error);
|
||||
res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("500 - Error interno");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[Server] Error inesperado:", error);
|
||||
res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
|
||||
res.end("500 - Error interno");
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
108
src/server/views/index.ejs
Normal file
108
src/server/views/index.ejs
Normal file
@@ -0,0 +1,108 @@
|
||||
<% const pageTitle = `${appName} | Guía Completa`; %>
|
||||
<% const head = null; %>
|
||||
<% const scripts = null; %>
|
||||
<% const title = pageTitle; %>
|
||||
<% layout('layouts/layout', { title, head, scripts, appName, version, djsVersion, currentDateHuman }); %>
|
||||
|
||||
<header class="relative overflow-hidden ">
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-indigo-500/5 via-purple-500/5 to-transparent"></div>
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-20 sm:py-28 relative">
|
||||
<div class="max-w-5xl mx-auto text-center space-y-8">
|
||||
<div class="inline-flex items-center gap-3 px-5 py-2.5 rounded-full bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-indigo-500/30 backdrop-blur-sm">
|
||||
<span class="relative flex h-2.5 w-2.5">
|
||||
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-indigo-400 opacity-75"></span>
|
||||
<span class="relative inline-flex rounded-full h-2.5 w-2.5 bg-gradient-to-r from-indigo-400 to-purple-400"></span>
|
||||
</span>
|
||||
<span class="text-sm font-bold tracking-wider uppercase bg-clip-text text-transparent bg-gradient-to-r from-indigo-200 to-purple-200">
|
||||
<%= appName %> • v<%= version %>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h1 class="text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-black leading-tight">
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-white via-indigo-100 to-purple-100">
|
||||
Guía Completa
|
||||
</span>
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-indigo-400 via-purple-400 to-pink-400">
|
||||
<%= appName %>
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<p class="text-xl sm:text-2xl text-slate-300 max-w-3xl mx-auto leading-relaxed font-light">
|
||||
Sistema completo de <span class="font-semibold text-indigo-300">economía</span>, <span class="font-semibold text-purple-300">minijuegos</span>, <span class="font-semibold text-pink-300">misiones</span> y <span class="font-semibold text-blue-300">IA</span> para Discord
|
||||
</p>
|
||||
|
||||
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
|
||||
<a href="#primeros-pasos" class="group relative px-10 py-4 text-lg font-bold text-white overflow-hidden rounded-2xl transition-all duration-300 hover:scale-105">
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-600 to-purple-600 transition-transform duration-300 group-hover:scale-110"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-500 to-purple-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<span class="relative flex items-center gap-2">
|
||||
Comenzar ahora
|
||||
<svg class="w-5 h-5 transition-transform group-hover:translate-x-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button id="toggle-nav" class="group px-10 py-4 text-lg font-bold text-white backdrop-blur-xl bg-white/5 border-2 border-white/10 rounded-2xl hover:bg-white/10 hover:border-white/20 hover:scale-105 transition-all duration-300">
|
||||
<span class="flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
Ver índice
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap justify-center gap-3 pt-6">
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
Discord.js <%= djsVersion %>
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
<%= currentDateHuman %>
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-gradient-to-r from-indigo-500/10 to-purple-500/10 border border-indigo-500/30 text-sm font-bold text-indigo-200 hover:from-indigo-500/20 hover:to-purple-500/20 transition-all">
|
||||
23 Secciones • Creación de Contenido Incluida
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-12 lg:py-16">
|
||||
<div class="flex min-h-screen flex-col">
|
||||
|
||||
<div class="mx-auto flex w-full max-w-6xl flex-1 flex-col gap-10 px-6 pb-16 lg:flex-row lg:px-10">
|
||||
<%- include('partials/toc') %>
|
||||
|
||||
<main class="flex-1">
|
||||
<div class="mx-auto flex w-full max-w-3xl flex-col gap-8">
|
||||
<%- include('partials/sections/primeros-pasos') %>
|
||||
<%- include('partials/sections/comandos-basicos') %>
|
||||
<%- include('partials/sections/sistema-juego') %>
|
||||
<%- include('partials/sections/minijuegos') %>
|
||||
<%- include('partials/sections/inventario-equipo') %>
|
||||
<%- include('partials/sections/economia') %>
|
||||
<%- include('partials/sections/tienda') %>
|
||||
<%- include('partials/sections/crafteo') %>
|
||||
<%- include('partials/sections/logros') %>
|
||||
<%- include('partials/sections/misiones') %>
|
||||
<%- include('partials/sections/racha') %>
|
||||
<%- include('partials/sections/consumibles') %>
|
||||
<%- include('partials/sections/cofres') %>
|
||||
<%- include('partials/sections/encantamientos') %>
|
||||
<%- include('partials/sections/fundicion') %>
|
||||
<%- include('partials/sections/ia') %>
|
||||
<%- include('partials/sections/recordatorios') %>
|
||||
<%- include('partials/sections/alianzas') %>
|
||||
<%- include('partials/sections/admin') %>
|
||||
<%- include('partials/sections/creacion-contenido') %>
|
||||
<%- include('partials/sections/configuracion') %>
|
||||
<%- include('partials/sections/estadisticas') %>
|
||||
<%- include('partials/sections/tips') %>
|
||||
<%- include('partials/sections/faq') %>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
99
src/server/views/layouts/layout.ejs
Normal file
99
src/server/views/layouts/layout.ejs
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es" class="scroll-smooth">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><%= title || `${appName} | Guía Completa` %></title>
|
||||
<meta name="description" content="Guía completa de Amayo Bot: comandos, minijuegos, economía, misiones, logros, creación de contenido y más">
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
animation: {
|
||||
'gradient': 'gradient 8s linear infinite',
|
||||
'float': 'float 6s ease-in-out infinite',
|
||||
'glow': 'glow 3s ease-in-out infinite',
|
||||
'slide-in': 'slideIn 0.5s ease-out',
|
||||
},
|
||||
keyframes: {
|
||||
gradient: {
|
||||
'0%, 100%': { backgroundPosition: '0% 50%' },
|
||||
'50%': { backgroundPosition: '100% 50%' },
|
||||
},
|
||||
float: {
|
||||
'0%, 100%': { transform: 'translateY(0)' },
|
||||
'50%': { transform: 'translateY(-20px)' },
|
||||
},
|
||||
glow: {
|
||||
'0%, 100%': { opacity: '0.4' },
|
||||
'50%': { opacity: '0.8' },
|
||||
},
|
||||
slideIn: {
|
||||
'0%': { transform: 'translateY(20px)', opacity: '0' },
|
||||
'100%': { transform: 'translateY(0)', opacity: '1' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<link rel="stylesheet" href="/assets/css/styles.css">
|
||||
<% if (head) { %>
|
||||
<%= head %>
|
||||
<% } %>
|
||||
</head>
|
||||
<body class="min-h-screen bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950 text-slate-100 antialiased">
|
||||
|
||||
<!-- Animated Background Blobs -->
|
||||
<div class="fixed inset-0 overflow-hidden pointer-events-none z-0">
|
||||
<div class="absolute top-0 left-1/4 w-96 h-96 bg-purple-500/20 rounded-full mix-blend-screen filter blur-3xl animate-float"></div>
|
||||
<div class="absolute top-1/3 right-1/4 w-96 h-96 bg-indigo-500/20 rounded-full mix-blend-screen filter blur-3xl animate-float" style="animation-delay: 2s;"></div>
|
||||
<div class="absolute bottom-0 left-1/3 w-96 h-96 bg-pink-500/15 rounded-full mix-blend-screen filter blur-3xl animate-float" style="animation-delay: 4s;"></div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10">
|
||||
<%- body %>
|
||||
</div>
|
||||
|
||||
<footer class="border-t border-white/5 bg-slate-950/80 py-10 text-center">
|
||||
<div class="mx-auto max-w-5xl px-6">
|
||||
<div class="mb-6">
|
||||
<p class="text-2xl font-bold text-white mb-2"><%= appName %></p>
|
||||
<p class="text-sm text-slate-400">Sistema completo de juego, economía y gestión para Discord</p>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap justify-center gap-4 mb-6 text-sm">
|
||||
<a href="#primeros-pasos" class="text-indigo-300 transition hover:text-indigo-200">Primeros Pasos</a>
|
||||
<span class="text-slate-600">•</span>
|
||||
<a href="#comandos-basicos" class="text-indigo-300 transition hover:text-indigo-200">Comandos</a>
|
||||
<span class="text-slate-600">•</span>
|
||||
<a href="#minijuegos" class="text-indigo-300 transition hover:text-indigo-200">Minijuegos</a>
|
||||
<span class="text-slate-600">•</span>
|
||||
<a href="#faq" class="text-indigo-300 transition hover:text-indigo-200">FAQ</a>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-white/5 pt-6">
|
||||
<p class="text-xs text-slate-400 mb-3">
|
||||
Versión <%= version %> • Discord.js <%= djsVersion %> • <%= currentDateHuman %>
|
||||
</p>
|
||||
<p class="text-xs text-slate-500">
|
||||
Amayo © <%= new Date().getFullYear() %> — Documentación para usuarios finales de Discord
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="mt-6">
|
||||
<a class="inline-flex items-center gap-2 text-indigo-300 transition hover:text-indigo-200" href="#primeros-pasos">
|
||||
<span aria-hidden="true">↑</span>
|
||||
Volver arriba
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/assets/js/main.js" type="module"></script>
|
||||
<% if (scripts) { %>
|
||||
<%= scripts %>
|
||||
<% } %>
|
||||
</body>
|
||||
</html>
|
||||
102
src/server/views/pages/index.ejs
Normal file
102
src/server/views/pages/index.ejs
Normal file
@@ -0,0 +1,102 @@
|
||||
<header class="relative overflow-hidden ">
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-indigo-500/5 via-purple-500/5 to-transparent"></div>
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-20 sm:py-28 relative">
|
||||
<div class="max-w-5xl mx-auto text-center space-y-8">
|
||||
<div class="inline-flex items-center gap-3 px-5 py-2.5 rounded-full bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-indigo-500/30 backdrop-blur-sm">
|
||||
<span class="relative flex h-2.5 w-2.5">
|
||||
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-indigo-400 opacity-75"></span>
|
||||
<span class="relative inline-flex rounded-full h-2.5 w-2.5 bg-gradient-to-r from-indigo-400 to-purple-400"></span>
|
||||
</span>
|
||||
<span class="text-sm font-bold tracking-wider uppercase bg-clip-text text-transparent bg-gradient-to-r from-indigo-200 to-purple-200">
|
||||
<%= appName %> • v<%= version %>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h1 class="text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-black leading-tight">
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-white via-indigo-100 to-purple-100">
|
||||
Guía Completa
|
||||
</span>
|
||||
<span class="block bg-clip-text text-transparent bg-gradient-to-r from-indigo-400 via-purple-400 to-pink-400">
|
||||
<%= appName %>
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<p class="text-xl sm:text-2xl text-slate-300 max-w-3xl mx-auto leading-relaxed font-light">
|
||||
Sistema completo de <span class="font-semibold text-indigo-300">economía</span>, <span class="font-semibold text-purple-300">minijuegos</span>, <span class="font-semibold text-pink-300">misiones</span> y <span class="font-semibold text-blue-300">IA</span> para Discord
|
||||
</p>
|
||||
|
||||
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
|
||||
<a href="#primeros-pasos" class="group relative px-10 py-4 text-lg font-bold text-white overflow-hidden rounded-2xl transition-all duration-300 hover:scale-105">
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-600 to-purple-600 transition-transform duration-300 group-hover:scale-110"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-indigo-500 to-purple-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
<span class="relative flex items-center gap-2">
|
||||
Comenzar ahora
|
||||
<svg class="w-5 h-5 transition-transform group-hover:translate-x-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button id="toggle-nav" class="group px-10 py-4 text-lg font-bold text-white backdrop-blur-xl bg-white/5 border-2 border-white/10 rounded-2xl hover:bg-white/10 hover:border-white/20 hover:scale-105 transition-all duration-300">
|
||||
<span class="flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
Ver índice
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap justify-center gap-3 pt-6">
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
Discord.js <%= djsVersion %>
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 text-sm font-medium text-slate-300 hover:bg-white/10 transition-all">
|
||||
<%= currentDateHuman %>
|
||||
</span>
|
||||
<span class="px-5 py-2 rounded-xl bg-gradient-to-r from-indigo-500/10 to-purple-500/10 border border-indigo-500/30 text-sm font-bold text-indigo-200 hover:from-indigo-500/20 hover:to-purple-500/20 transition-all">
|
||||
23 Secciones • Creación de Contenido Incluida
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-12 lg:py-16">
|
||||
<div class="flex min-h-screen flex-col">
|
||||
|
||||
<div class="mx-auto flex w-full max-w-6xl flex-1 flex-col gap-10 px-6 pb-16 lg:flex-row lg:px-10">
|
||||
<%- include('../partials/toc') %>
|
||||
|
||||
<main class="flex-1">
|
||||
<div class="mx-auto flex w-full max-w-3xl flex-col gap-8">
|
||||
<%- include('../partials/sections/primeros-pasos') %>
|
||||
<%- include('../partials/sections/comandos-basicos') %>
|
||||
<%- include('../partials/sections/sistema-juego') %>
|
||||
<%- include('../partials/sections/minijuegos') %>
|
||||
<%- include('../partials/sections/inventario-equipo') %>
|
||||
<%- include('../partials/sections/economia') %>
|
||||
<%- include('../partials/sections/tienda') %>
|
||||
<%- include('../partials/sections/crafteo') %>
|
||||
<%- include('../partials/sections/logros') %>
|
||||
<%- include('../partials/sections/misiones') %>
|
||||
<%- include('../partials/sections/racha') %>
|
||||
<%- include('../partials/sections/consumibles') %>
|
||||
<%- include('../partials/sections/cofres') %>
|
||||
<%- include('../partials/sections/encantamientos') %>
|
||||
<%- include('../partials/sections/fundicion') %>
|
||||
<%- include('../partials/sections/ia') %>
|
||||
<%- include('../partials/sections/recordatorios') %>
|
||||
<%- include('../partials/sections/alianzas') %>
|
||||
<%- include('../partials/sections/admin') %>
|
||||
<%- include('../partials/sections/creacion-contenido') %>
|
||||
<%- include('../partials/sections/configuracion') %>
|
||||
<%- include('../partials/sections/estadisticas') %>
|
||||
<%- include('../partials/sections/tips') %>
|
||||
<%- include('../partials/sections/faq') %>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
4
src/server/views/partials/sections/admin.ejs
Normal file
4
src/server/views/partials/sections/admin.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="admin" class="space-y-6 rounded-3xl border border-red-500/20 bg-slate-900/80 p-8 shadow-2xl shadow-red-500/10 backdrop-blur">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">⚙️ Panel de Administración</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/alianzas.ejs
Normal file
4
src/server/views/partials/sections/alianzas.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="alianzas" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🤝 Sistema de Alianzas</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/cofres.ejs
Normal file
4
src/server/views/partials/sections/cofres.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="cofres" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🎁 Cofres y Recompensas</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/comandos-basicos.ejs
Normal file
4
src/server/views/partials/sections/comandos-basicos.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="comandos-basicos" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">⚡ Comandos Básicos</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/configuracion.ejs
Normal file
4
src/server/views/partials/sections/configuracion.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="configuracion" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🔧 Configuración del Servidor</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/consumibles.ejs
Normal file
4
src/server/views/partials/sections/consumibles.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="consumibles" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🍖 Consumibles y Pociones</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/crafteo.ejs
Normal file
4
src/server/views/partials/sections/crafteo.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="crafteo" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🛠️ Crafteo y Creación</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
@@ -0,0 +1,4 @@
|
||||
<section id="creacion-contenido" class="rounded-3xl bg-gradient-to-br from-red-900/20 to-orange-900/20 backdrop-blur-xl border border-red-500/30 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-red-200 to-orange-200">🎨 Creación de Contenido</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/economia.ejs
Normal file
4
src/server/views/partials/sections/economia.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="economia" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">💰 Sistema de Economía</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/encantamientos.ejs
Normal file
4
src/server/views/partials/sections/encantamientos.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="encantamientos" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">✨ Encantamientos</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/estadisticas.ejs
Normal file
4
src/server/views/partials/sections/estadisticas.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="estadisticas" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">📊 Estadísticas y Progreso</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/faq.ejs
Normal file
4
src/server/views/partials/sections/faq.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="faq" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">❓ Preguntas Frecuentes</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/fundicion.ejs
Normal file
4
src/server/views/partials/sections/fundicion.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="fundicion" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🔥 Sistema de Fundición</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/ia.ejs
Normal file
4
src/server/views/partials/sections/ia.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="ia" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🤖 Inteligencia Artificial</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/inventario-equipo.ejs
Normal file
4
src/server/views/partials/sections/inventario-equipo.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="inventario-equipo" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🎒 Inventario y Equipo</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/logros.ejs
Normal file
4
src/server/views/partials/sections/logros.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="logros" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🏆 Logros</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/minijuegos.ejs
Normal file
4
src/server/views/partials/sections/minijuegos.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="minijuegos" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🎯 Minijuegos y Actividades</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/misiones.ejs
Normal file
4
src/server/views/partials/sections/misiones.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="misiones" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">📝 Misiones</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
39
src/server/views/partials/sections/primeros-pasos.ejs
Normal file
39
src/server/views/partials/sections/primeros-pasos.ejs
Normal file
@@ -0,0 +1,39 @@
|
||||
<section id="primeros-pasos" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl shadow-indigo-500/10 backdrop-blur">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🚀 Primeros Pasos</h2>
|
||||
<p class="text-slate-200">
|
||||
¡Bienvenido a <strong class="text-white">Amayo Bot</strong>! Este bot transforma tu servidor de Discord en una experiencia de juego completa con economía, minijuegos, misiones y mucho más.
|
||||
</p>
|
||||
|
||||
<div class="space-y-4 rounded-2xl border border-indigo-500/30 bg-indigo-500/10 p-5 text-slate-200">
|
||||
<h3 class="text-lg font-semibold text-indigo-200">✨ ¿Qué puedes hacer con Amayo?</h3>
|
||||
<ul class="list-disc space-y-2 pl-5 text-sm">
|
||||
<li><strong class="text-white">Jugar Minijuegos:</strong> Mina recursos, pesca, pelea contra enemigos y cultiva en granjas</li>
|
||||
<li><strong class="text-white">Economía Completa:</strong> Gana monedas, compra en la tienda, craftea items y gestiona tu inventario</li>
|
||||
<li><strong class="text-white">Sistema de Progresión:</strong> Sube de nivel, completa misiones, desbloquea logros y mantén tu racha diaria</li>
|
||||
<li><strong class="text-white">Personalización:</strong> Equipa armas, armaduras y capas para mejorar tus estadísticas</li>
|
||||
<li><strong class="text-white">IA Conversacional:</strong> Chatea con Gemini AI directamente desde Discord</li>
|
||||
<li><strong class="text-white">Sistema de Alianzas:</strong> Comparte enlaces de invitación y gana puntos para tu servidor</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="grid gap-6 md:grid-cols-2m py-5">
|
||||
<div class="space-y-3 rounded-2xl border border-white/5 bg-slate-900/60 p-5">
|
||||
<h3 class="text-lg font-semibold text-white">⚡ Prefix del Bot</h3>
|
||||
<p class="text-sm text-slate-200 py-5">
|
||||
El prefix por defecto es <code class="rounded bg-indigo-500/15 px-2 py-1 font-mono text-sm text-indigo-200">!</code>
|
||||
</p>
|
||||
<p class="text-xs text-slate-300 mt-2">
|
||||
Los administradores pueden cambiarlo con <code class="rounded bg-indigo-500/15 px-1.5 py-0.5 font-mono text-xs text-indigo-200">!configuracion</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="space-y-3 rounded-2xl border border-white/5 bg-slate-900/60 p-5">
|
||||
<h3 class="text-lg font-semibold text-white">❓ Obtener Ayuda</h3>
|
||||
<p class="text-sm text-slate-200">
|
||||
Usa <code class="rounded bg-indigo-500/15 px-2 py-1 font-mono text-sm text-indigo-200">!ayuda</code> para ver todos los comandos disponibles
|
||||
</p>
|
||||
<p class="text-xs text-slate-300 mt-2">
|
||||
También puedes usar <code class="rounded bg-indigo-500/15 px-1.5 py-0.5 font-mono text-xs text-indigo-200">!ayuda <comando></code> para detalles específicos
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/racha.ejs
Normal file
4
src/server/views/partials/sections/racha.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="racha-diaria" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🔥 Racha Diaria</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/recordatorios.ejs
Normal file
4
src/server/views/partials/sections/recordatorios.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="recordatorios" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">⏰ Sistema de Recordatorios</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/sistema-juego.ejs
Normal file
4
src/server/views/partials/sections/sistema-juego.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="sistema-juego" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🎮 Sistema de Juego</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/tienda.ejs
Normal file
4
src/server/views/partials/sections/tienda.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="tienda" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">🛒 Tienda y Compras</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
4
src/server/views/partials/sections/tips.ejs
Normal file
4
src/server/views/partials/sections/tips.ejs
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="tips" class="rounded-3xl bg-gradient-to-br from-slate-800/50 to-slate-900/50 backdrop-blur-xl border border-white/10 p-8 shadow-2xl">
|
||||
<h2 class="text-3xl sm:text-4xl font-bold mb-3 bg-clip-text text-transparent bg-gradient-to-r from-white to-indigo-200">💡 Tips y Trucos</h2>
|
||||
<p class="text-slate-300 text-sm">Contenido en migración a EJS…</p>
|
||||
</section>
|
||||
30
src/server/views/partials/toc.ejs
Normal file
30
src/server/views/partials/toc.ejs
Normal file
@@ -0,0 +1,30 @@
|
||||
<nav id="toc" class="w-full max-w-xs rounded-3xl border border-white/10 bg-slate-900/80 text-left shadow-2xl shadow-indigo-500/20 lg:sticky lg:top-24 lg:block lg:max-h-[calc(100vh-6rem)] lg:w-74 lg:overflow-y-auto">
|
||||
<div class="text-xs p-6 font-semibold uppercase tracking-[0.3em] text-slate-400">
|
||||
Índice de Contenidos
|
||||
</div>
|
||||
<ul class="ps-8 mt-4 space-y-4 text-sm">
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#primeros-pasos">🚀 Primeros Pasos</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#comandos-basicos">⚡ Comandos Básicos</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#sistema-juego">🎮 Sistema de Juego</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#minijuegos">🎯 Minijuegos y Actividades</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#inventario-equipo">🎒 Inventario y Equipo</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#economia">💰 Sistema de Economía</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#tienda">🛒 Tienda y Compras</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#crafteo">🛠️ Crafteo y Creación</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#logros">🏆 Logros</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#misiones">📝 Misiones</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#racha-diaria">🔥 Racha Diaria</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#consumibles">🍖 Consumibles y Pociones</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#cofres">🎁 Cofres y Recompensas</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#encantamientos">✨ Encantamientos</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#fundicion">🔥 Fundición</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#ia">🤖 Inteligencia Artificial</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#recordatorios">⏰ Recordatorios</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#alianzas">🤝 Sistema de Alianzas</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#admin">⚙️ Administración (Admin)</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#configuracion">🔧 Configuración Servidor</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#estadisticas">📊 Estadísticas</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#tips">💡 Tips y Trucos</a></li>
|
||||
<li><a class="text-slate-200 transition hover:text-indigo-300" href="#faq">❓ Preguntas Frecuentes</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
Reference in New Issue
Block a user