diff --git a/src/commands/Birthday/modules/anti nuke b/src/commands/Birthday/modules/anti nuke new file mode 100644 index 0000000000..5bb5954bcd --- /dev/null +++ b/src/commands/Birthday/modules/anti nuke @@ -0,0 +1,3 @@ + + +
| <!doctype html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width,initial-scale=1" /> | |
| <title>OfficialX</title> | |
| <meta name="description" content="Gi salpak nimo akong oten, sa imong bilat" /> | |
| <meta property="og:type" content="website" /> | |
| <meta property="og:title" content="OfficialX" /> | |
| <meta property="og:description" content="Exclu$ive" /> | |
| <meta property="og:url" content="https://offcialx.xyz/" /> | |
| <meta name="twitter:card" content="summary" /> | |
| <meta name="twitter:title" content="OfficialX" /> | |
| <meta name="twitter:description" content="Exclu$ive" /> | |
| <link rel="icon" href="https://offcialx.xyz/logo.png" type="image/png"> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@700;900&family=Inter:wght@300;400;600;700&display=swap" rel="stylesheet"> | |
| <link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;600&display=swap" rel="stylesheet"> | |
| <script disable-devtool-auto src="https://cdn.jsdelivr.net/npm/disable-devtool"></script> | |
| <style> | |
| @font-face{ | |
| font-family: 'Ofx'; | |
| src: url('ofx.ttf') format('truetype'); | |
| font-weight: 400 900; | |
| font-style: normal; | |
| font-display: swap; | |
| } | |
| :root{ | |
| --bg: #050507; | |
| --surface: rgba(255,255,255,0.04); | |
| --surface-strong: rgba(20,20,30,0.7); | |
| --surface-border: rgba(255,255,255,0.12); | |
| --text: #e6e7e8; | |
| --muted: #9aa0a6; | |
| --accent: #1f2937; | |
| --hover: rgba(255,255,255,0.16); | |
| } | |
| *{margin:0;padding:0;box-sizing:border-box;} | |
| body{ | |
| font-family:Inter, sans-serif; | |
| background:var(--bg); | |
| color:var(--text); | |
| min-height:100vh; | |
| transition:background 0.3s ease, color 0.3s ease; | |
| } | |
| body.light-theme{ | |
| --bg: #000000; | |
| --surface: #0a0a0a; | |
| --surface-strong: #080808; | |
| --surface-border: rgba(45, 47, 48, 0.06); | |
| --text: #e2e7ec; | |
| --muted: #6b6f75; | |
| --accent: #0f172a; | |
| --hover: rgba(15,20,25,0.06); | |
| } | |
| header{ | |
| padding:18px 0 0; | |
| } | |
| .hero-caption.typing::after{ | |
| content: ''; | |
| display:inline-block; | |
| width:2px; | |
| height:1em; | |
| background:var(--muted); | |
| margin-left:8px; | |
| vertical-align:bottom; | |
| animation: blink 1s steps(2,start) infinite; | |
| } | |
| @keyframes blink{ 50% { opacity: 0; } } | |
| .header-wrap{ | |
| max-width:1100px; | |
| margin:0 auto; | |
| padding:16px 24px; | |
| display:flex; | |
| align-items:center; | |
| justify-content:space-between; | |
| background:var(--surface); | |
| border:1px solid var(--surface-border); | |
| border-radius:18px; | |
| box-shadow:0 18px 60px rgba(0,0,0,0.18); | |
| backdrop-filter:blur(14px); | |
| } | |
| .logo a{display:inline-block;text-decoration:none;} | |
| .header-logo{height:28px;width:auto;display:block;} | |
| .nav{margin-left:auto;display:flex;gap:24px;align-items:center;} | |
| .nav a{ | |
| color:var(--muted); | |
| text-decoration:none; | |
| font-weight:600; | |
| font-size:14px; | |
| transition:color 0.2s, background 0.2s; | |
| padding:10px 14px; | |
| border-radius:12px; | |
| } | |
| .nav a:hover, | |
| .nav a.active{ | |
| color:var(--text); | |
| background:var(--hover); | |
| } | |
| .theme-toggle{ | |
| width:34px; | |
| height:34px; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| border-radius:14px; | |
| border:1px solid var(--surface-border); | |
| background: var(--surface); | |
| color:var(--muted); | |
| cursor:pointer; | |
| transition:color 0.2s, background 0.2s, transform 0.2s; | |
| padding:0; | |
| font-size:16px; | |
| line-height:1; | |
| } | |
| .theme-toggle:hover, | |
| .theme-toggle.active{ | |
| color:var(--text); | |
| background:var(--hover); | |
| } | |
| .theme-toggle:active{ | |
| transform:scale(0.98); | |
| } | |
| .container{ | |
| max-width:1100px; | |
| margin:0 auto; | |
| padding:40px 20px; | |
| } | |
| .hero{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;} | |
| .hero-logo{max-width:350px;width:100%;height:auto;} | |
| .hero-caption{max-width:700px;color:var(--muted);font-size:16px;line-height:1.6;font-family:'Source Code Pro', Ofx, Inter, sans-serif; font-weight:300;} | |
| .members-section{padding:40px 0 80px;} | |
| .members-section h2{font-size:2.5rem;text-align:center;margin-bottom:50px;color:var(--text);} | |
| .member-grid{display:flex;flex-wrap:wrap;gap:28px;justify-content:center;} | |
| .member-card{ | |
| position:relative; | |
| width:210px; | |
| background:var(--surface-strong); | |
| border:1px solid var(--surface-border); | |
| border-radius:20px; | |
| padding:24px; | |
| text-align:center; | |
| cursor:pointer; | |
| transition:transform 0.2s, box-shadow 0.2s; | |
| } | |
| .member-card:hover{ | |
| transform:translateY(-8px); | |
| background:var(--surface-strong); | |
| border-color:var(--surface-border); | |
| box-shadow:0 12px 24px rgba(0,0,0,0.08); | |
| } | |
| .member-avatar{ | |
| width:90px; | |
| height:90px; | |
| margin:0 auto 15px; | |
| border-radius:50%; | |
| background:linear-gradient(135deg,#667eea,#764ba2); | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| font-size:36px; | |
| font-weight:bold; | |
| overflow:hidden; | |
| position:relative; | |
| } | |
| .member-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;} | |
| .member-avatar .avatar-text{position:relative;z-index:2;} | |
| .member-name{font-size:1rem;font-weight:600;margin-bottom:6px;color:var(--text);font-family: 'Source Code Pro', Ofx, Inter, monospace; text-transform:uppercase; letter-spacing:0.06em;} | |
| .status-dot{position:absolute;bottom:12px;right:12px;width:12px;height:12px;border-radius:50%;border:2px solid #0b0b0c;} | |
| .status-dot.online{background:#23a55a;} | |
| .status-dot.idle{background:#f0b232;} | |
| .status-dot.dnd{background:#ed4245;} | |
| .status-dot.offline{background:#80848e;} | |
| .member-name.loading{opacity:0.6;} | |
| #archive{padding:60px 0;color:var(--muted);} | |
| .archive-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:24px;justify-items:center;} | |
| .video-card{width:100%;max-width:520px;position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--surface-border);background:var(--surface-strong);box-shadow:0 15px 30px rgba(0,0,0,0.25);transition:transform 0.2s,border-color 0.2s;display:block;text-decoration:none;color:inherit;} | |
| .video-card:hover{transform:translateY(-6px);border-color:var(--surface-border);} | |
| .video-thumb{display:block;width:100%;height:0;padding-bottom:56.25%;background-size:cover;background-position:center center;} | |
| .play-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;background:rgba(0,0,0,0.55);border-radius:50%;display:flex;align-items:center;justify-content:center;} | |
| .play-overlay::before{content:'';display:block;width:0;height:0;border-left:18px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent;} | |
| @media (max-width: 900px){.archive-grid{grid-template-columns:1fr;}} | |
| @media (max-width: 700px){ | |
| .member-card{width:160px;padding:16px;} | |
| .member-avatar{width:70px;height:70px;font-size:28px;} | |
| .members-section h2{font-size:2rem;} | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <header> | |
| <div class="header-wrap"> | |
| <div class="logo"><a href="/"><img src="https://offcialx.xyz/logo.png" alt="OfficialX" class="header-logo"></a></div> | |
| <nav class="nav"> | |
| <a href="#home" class="active">Home</a> | |
| <a href="#archive">Archive</a> | |
| <a href="#members">Members</a> | |
| <button type="button" id="themeToggle" class="theme-toggle" aria-label="Toggle theme">☀</button> | |
| </nav> | |
| </div> | |
| </header> | |
| <main class="container"> | |
| <section id="home" class="hero"> | |
| <img src="https://offcialx.xyz/logo.png" alt="OfficialX Logo" class="hero-logo"> | |
| <div class="hero-caption" data-fulltext="OfficialX operates in the space between the code and the crash. We find the vulnerabilities others miss and build to break."></div> | |
| </section> | |
| <section id="archive"> | |
| <div class="archive-grid"> | |
| <a class="video-card" href="https://www.youtube.com/watch?v=uspKnn--C2c" target="_blank" rel="noopener noreferrer"> | |
| <span class="video-thumb" style="background-image:url('https://img.youtube.com/vi/uspKnn--C2c/hqdefault.jpg');"></span> | |
| <span class="play-overlay"></span> | |
| </a> | |
| <a class="video-card" href="https://www.youtube.com/watch?v=UUor4lxMu8s" target="_blank" rel="noopener noreferrer"> | |
| <span class="video-thumb" style="background-image:url('https://img.youtube.com/vi/UUor4lxMu8s/hqdefault.jpg');"></span> | |
| <span class="play-overlay"></span> | |
| </a> | |
| <a class="video-card" href="https://www.youtube.com/watch?v=SykDX7Lx7bU&t=5s" target="_blank" rel="noopener noreferrer"> | |
| <span class="video-thumb" style="background-image:url('https://img.youtube.com/vi/SykDX7Lx7bU/hqdefault.jpg');"></span> | |
| <span class="play-overlay"></span> | |
| </a> | |
| <a class="video-card" href="https://www.youtube.com/watch?v=_7d6P4POdU4&t=8s" target="_blank" rel="noopener noreferrer"> | |
| <span class="video-thumb" style="background-image:url('https://img.youtube.com/vi/_7d6P4POdU4/hqdefault.jpg');"></span> | |
| <span class="play-overlay"></span> | |
| </a> | |
| </div> | |
| </section> | |
| <section id="members" class="members-section"> | |
| <h2>Members</h2> | |
| <div class="member-grid" id="memberGrid"> | |
| <div class="member-card" data-discord-user="1488524196559458485"> | |
| <div class="member-avatar"><span class="avatar-text"></span></div> | |
| <p class="member-name loading">Loading...</p> | |
| <span class="status-dot"></span> | |
| </div> | |
| <div class="member-card" data-discord-user="1501424560376123504"> | |
| <div class="member-avatar"><span class="avatar-text"></span></div> | |
| <p class="member-name loading">Loading...</p> | |
| <span class="status-dot"></span> | |
| </div> | |
| <div class="member-card" data-discord-user="1360879822854946916"> | |
| <div class="member-avatar"><span class="avatar-text"></span></div> | |
| <p class="member-name loading">Loading...</p> | |
| <span class="status-dot"></span> | |
| </div> | |
| <div class="member-card" data-discord-user="1364746760928497697"> | |
| <div class="member-avatar"><span class="avatar-text"></span></div> | |
| <p class="member-name loading">Loading...</p> | |
| <span class="status-dot"></span> | |
| </div> | |
| </div> | |
| </section> | |
| </main> | |
| <script> | |
| (function(){ | |
| const sections = { | |
| home: document.getElementById('home'), | |
| members: document.getElementById('members'), | |
| archive: document.getElementById('archive') | |
| }; | |
| const navLinks = document.querySelectorAll('.nav a'); | |
| function showSection(sectionId) { | |
| Object.keys(sections).forEach(key => { | |
| if(sections[key]) sections[key].style.display = 'none'; | |
| }); | |
| if(sectionId === 'home' && sections.home) sections.home.style.display = ''; | |
| if(sectionId === 'members' && sections.members) sections.members.style.display = ''; | |
| if(sectionId === 'archive' && sections.archive) sections.archive.style.display = ''; | |
| } | |
| function updateActiveLink() { | |
| const hash = window.location.hash.slice(1) || 'home'; | |
| navLinks.forEach(link => { | |
| const href = link.getAttribute('href').slice(1); | |
| if(href === hash) { | |
| link.classList.add('active'); | |
| } else if(link.classList.contains('login-btn')) { | |
| } else { | |
| link.classList.remove('active'); | |
| } | |
| }); | |
| showSection(hash); | |
| } | |
| window.addEventListener('hashchange', updateActiveLink); | |
| navLinks.forEach(link => { | |
| if (link.classList.contains('theme-toggle')) return; | |
| link.addEventListener('click', (e) => { | |
| e.preventDefault(); | |
| const href = link.getAttribute('href'); | |
| const hash = href.slice(1); | |
| window.location.hash = hash; | |
| updateActiveLink(); | |
| }); | |
| }); | |
| const themeToggle = document.getElementById('themeToggle'); | |
| function setTheme(isDark) { | |
| document.body.classList.toggle('light-theme', !isDark); | |
| themeToggle.textContent = isDark ? '☾' : '☀'; | |
| themeToggle.classList.toggle('active', !isDark); | |
| localStorage.setItem('officialx-theme', isDark ? 'dark' : 'light'); | |
| } | |
| themeToggle.addEventListener('click', () => { | |
| const isLight = document.body.classList.contains('light-theme'); | |
| setTheme(isLight); | |
| }); | |
| const savedTheme = localStorage.getItem('officialx-theme'); | |
| setTheme(savedTheme !== 'light'); | |
| updateActiveLink(); | |
| })(); | |
| const permanentSlugs = { | |
| '1488524196559458485': 'nomxrcy', | |
| '1501424560376123504': 'sign', | |
| '1360879822854946916': 'syko', | |
| '1364746760928497697': 'terror' | |
| }; | |
| const fallbackData = { | |
| '1488524196559458485': { username: 'nomxrcy', avatar: null, status: 'offline' }, | |
| '1501424560376123504': { username: 'sign', avatar: null, status: 'offline' }, | |
| '1360879822854946916': { username: 'syko', avatar: null, status: 'offline' }, | |
| '1364746760928497697': { username: 'terror', avatar: null, status: 'offline' } | |
| }; | |
| function updateCard(userId, username, avatarUrl, status) { | |
| const card = document.querySelector(`.member-card[data-discord-user="${userId}"]`); | |
| if(!card) return; | |
| const nameEl = card.querySelector('.member-name'); | |
| const avatarContainer = card.querySelector('.member-avatar'); | |
| const statusDot = card.querySelector('.status-dot'); | |
| const textSpan = avatarContainer.querySelector('.avatar-text'); | |
| if(nameEl) { | |
| nameEl.textContent = username; | |
| nameEl.classList.remove('loading'); | |
| } | |
| if(statusDot) { | |
| statusDot.className = `status-dot ${status}`; | |
| } | |
| if(avatarContainer) { | |
| const existingImg = avatarContainer.querySelector('img'); | |
| if(existingImg) existingImg.remove(); | |
| if(avatarUrl) { | |
| const img = document.createElement('img'); | |
| img.src = avatarUrl; | |
| img.alt = username; | |
| img.onerror = () => { | |
| img.remove(); | |
| if(textSpan) textSpan.textContent = username.charAt(0).toUpperCase(); | |
| }; | |
| img.onload = () => { | |
| if(textSpan) textSpan.textContent = ''; | |
| }; | |
| avatarContainer.appendChild(img); | |
| if(textSpan) textSpan.textContent = ''; | |
| } else if(textSpan) { | |
| textSpan.textContent = username.charAt(0).toUpperCase(); | |
| } | |
| } | |
| const slug = username.toLowerCase().replace(/[^a-z0-9]/g, ''); | |
| card.setAttribute('data-slug', slug); | |
| } | |
| async function fetchUserData(userId) { | |
| try { | |
| const response = await fetch(`https://api.lanyard.rest/v1/users/${userId}`); | |
| const data = await response.json(); | |
| if(data.success && data.data) { | |
| const userData = data.data.discord_user || {}; | |
| const username = userData.global_name || userData.username || permanentSlugs[userId] || userId; | |
| const avatarHash = userData.avatar || null; | |
| const status = data.data.discord_status || 'offline'; | |
| let avatarUrl = null; | |
| if(avatarHash) { | |
| const ext = avatarHash.startsWith('a_') ? 'gif' : 'webp'; | |
| avatarUrl = `https://cdn.discordapp.com/avatars/${userId}/${avatarHash}.${ext}?size=128`; | |
| } | |
| return { username, avatarUrl, status, success: true }; | |
| } | |
| } catch(e) { | |
| console.warn(`Failed to fetch ${userId}:`, e); | |
| } | |
| return { ...fallbackData[userId], success: false }; | |
| } | |
| async function loadAllMembers() { | |
| const userIds = ['1488524196559458485', '1501424560376123504', '1360879822854946916', '1364746760928497697']; | |
| const promises = userIds.map(id => fetchUserData(id)); | |
| const results = await Promise.all(promises); | |
| results.forEach((result, index) => { | |
| const userId = userIds[index]; | |
| if(result.success) { | |
| updateCard(userId, result.username, result.avatarUrl, result.status); | |
| } else { | |
| updateCard(userId, result.username, null, result.status); | |
| } | |
| }); | |
| } | |
| document.getElementById('memberGrid').addEventListener('click', (e) => { | |
| const card = e.target.closest('.member-card'); | |
| if(!card) return; | |
| let slug = card.getAttribute('data-slug'); | |
| const userId = card.getAttribute('data-discord-user'); | |
| if(!slug && userId && permanentSlugs[userId]) { | |
| slug = permanentSlugs[userId]; | |
| } | |
| if(slug) { | |
| window.location.href = `/${slug}`; | |
| } | |
| }); | |
| loadAllMembers(); | |
| setInterval(loadAllMembers, 60000); | |
| (function(){ | |
| const el = document.querySelector('.hero-caption[data-fulltext]'); | |
| if(!el) return; | |
| const full = el.dataset.fulltext || ''; | |
| el.textContent = ''; | |
| el.classList.add('typing'); | |
| const speed = 50; | |
| let i = 0; | |
| function tick(){ | |
| el.textContent += full.charAt(i); | |
| i++; | |
| if(i < full.length) setTimeout(tick, speed); | |
| else el.classList.remove('typing'); | |
| } | |
| setTimeout(() => { if(full.length) tick(); else el.classList.remove('typing'); }, 400); | |
| })(); | |
| </script> | |
| </body> | |
| </html> |