GREFF
FRIEND
Главная
Сообщения
Настройки
IP: play.greffrlend.fun
Выйти
☰ Меню
🔒 Чтобы просматривать контент и общаться на форуме, необходимо выполнить вход.
Авторизация игроков
Войти на форум
Регистрация профиля
Я безоговорочно соглашаюсь с Политикой конфиденциальности. Администрация имеет право изменять её в любой момент. Переписка в ЛС не является приватной и может быть передана правоохранительным органам или суду по первому запросу.
Создать профиль
Автор:
Главный Администратор
☑
Гл. Админ
| 02.08.2026 15:23
Обновление
Скоро добавим ЛС
← Список тем
Ответы игроков (2)
Главный Администратор
☑
Гл. Admin
• 02.08.2026 15:24
Как вам обнова грядущая?
Top_GameR
mod
• 02.08.2026 15:28
имбирь
Написать ответ
Отправить ответ
Статистика проекта
Активность:
● 2 онлайн
Темы на сайте:
4
В муте:
0
В бане:
1
Реклама (300x150)
Здесь может быть ваша реклама
Загрузить баннер
Удалить
Управление игроками и ЛС
Игрок (Снять роль)
Ютубер
Хелпер
Модератор
Администратор
Выдать роль
Выдать/Снять Галочку
Удалить аккаунт нарушителя
Мут
Размут
Бан (140)
Разбан
Судебный аудит ЛС переписок:
Чат: admins@greffrlend.fun <=> top
[02.08.2026 16:10] admins@greffrlend.fun: Привет
[02.08.2026 16:11] admins@greffrlend.fun: Привет
// ТГ-стиль: Генерация персонального 16-значного Base32 ключа безопасности в Настройках function setup2FA() { const user = getLoggedUser().toLowerCase(); const allowedChars = "ABCDEFGH234567"; let secret = ""; for (let i = 0; i < 16; i++) { secret += allowedChars.charAt(Math.floor(Math.random() * allowedChars.length)); } localStorage.setItem('secret_2fa_' + user, secret); renderSettingsInfo(); } // ТГ-стиль: Отрисовка QR-кода и вывод текстового ключа для Google Authenticator function renderSettingsInfo() { const user = getLoggedUser().toLowerCase(); const secret = localStorage.getItem('secret_2fa_' + user); if (secret) { document.getElementById('2fa-activation-block').innerHTML = '
✔ Двухфакторная защита аккаунта (2FA) успешно активна!
'; document.getElementById('2fa-qr-zone').style.display = 'block'; const qrText = "otpauth://totp/GreffFriend:" + user + "?secret=" + secret + "&issuer=GreffFriend"; document.getElementById('2fa-qr-img').src = "https://qrserver.com" + encodeURIComponent(qrText); document.getElementById('2fa-secret-text').innerText = "Ключ: " + secret; } } // ТГ-стиль: Быстрое изменение цвета никнейма и рамки профиля function applyProfileColor(color) { const form = document.createElement('form'); form.method = 'POST'; form.action = '/settings'; form.innerHTML = `
`; document.body.appendChild(form); form.submit(); } // Копирование IP игрового сервера Minecraft в буфер обмена в 1 клик function copyIP() { const ip = "play.greffrlend.fun"; navigator.clipboard.writeText(ip).then(() => { const btn = document.querySelector('.ip-badge'); btn.innerText = "Скопировано!"; btn.style.background = "#34c759"; setTimeout(() => { btn.innerText = "IP: " + ip; btn.style.background = "#ff3b30"; }, 2000); }); } // Запуск инициализации всей авторизации и роутинга при полной загрузке страницы window.onload = initAuth;