GameGrief ⚔️

Официальный форум лучшего Minecraft сервера GameGrief.

Жалобы на игроков

Пожалуйтесь на нарушителя
СВО
7
тем

Технический раздел

Есть баг? Есть дюп? Есть недоработка? Тогда пиши в данный раздел!
в
4
тем

Новости сервера

Здесь выкладываются новости о сервере
0
тем

Восстановление аккаунта

Ваш аккаунт взломали? Его можно восстановить!
Взлом
5
тем

Медиа сотрудничество

Хочешь стать Ютубером или Тиктокером? Тогда подавай заявку!
Форма заявки и критерии
1
тем

Подача на хелпера

Хочешь стать Хелпером? Тогда подавай заявку!
Подача на Хелпера
5
тем
// Чат var cb = document.getElementById('chat-box'); var cf = document.getElementById('chat-form'); var ci = document.getElementById('chat-input'); var sb = true; if (cb) { cb.addEventListener('scroll', function() { sb = cb.scrollHeight - cb.clientHeight <= cb.scrollTop + 10; }); function loadChat() { if(document.hidden) return; fetch('/?ajax_chat=get').then(r=>r.json()).then(d=>{ if (!cb) return; cb.innerHTML = ''; d.forEach(m=>{ var rc = m.role === 'admin' ? '#ef4444' : (m.role === 'moderator' ? '#10b981' : (m.role === 'vip' ? '#f59e0b' : '#8b5cf6')); var t = new Date(m.created_at).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}); var div = document.createElement('div'); div.style.cssText = "margin-bottom: 12px; line-height: 1.4; word-break: break-word; font-size: 0.95rem;"; div.innerHTML = '' + t + ' ' + escapeHTML(m.username) + ': ' + escapeHTML(m.message); cb.appendChild(div); }); if (sb) cb.scrollTop = cb.scrollHeight; }); } loadChat(); setInterval(loadChat, 3000); if (cf) { cf.addEventListener('submit', function(e) { e.preventDefault(); var msg = ci.value.trim(); if (!msg) return; var fd = new FormData(); fd.append('ajax_chat', 'post'); fd.append('message', msg); fd.append('csrf_token', '74a6aaf0105d84599e9ce762ed756eb0a23fb6fae8365cf420639de301097bce'); ci.value = ''; fetch('/', { method: 'POST', body: fd }).then(r=>r.json()).then(d=>{ if(d.error) { alert(d.error); ci.value = msg; } else { sb = true; loadChat(); } }); }); } } // Донат-чат var dcb = document.getElementById('donator-chat-box'); var dcf = document.getElementById('donator-chat-form'); var dci = document.getElementById('donator-chat-input'); var dsb = true; if (dcb) { dcb.addEventListener('scroll', function() { dsb = dcb.scrollHeight - dcb.clientHeight <= dcb.scrollTop + 10; }); function loadDonatorChat() { if(document.hidden) return; fetch('/?ajax_donator_chat=get').then(r=>r.json()).then(d=>{ if (!dcb) return; dcb.innerHTML = ''; if(d.length === 0) { dcb.innerHTML = '
Тишина...
'; return; } d.forEach(m=>{ var rc = m.role === 'admin' ? '#ef4444' : (m.role === 'moderator' ? '#10b981' : (m.role === 'vip' ? '#f59e0b' : '#8b5cf6')); var t = new Date(m.created_at).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}); var div = document.createElement('div'); div.style.cssText = "margin-bottom: 12px; line-height: 1.4; word-break: break-word; font-size: 0.95rem;"; div.innerHTML = '' + t + ' ' + escapeHTML(m.username) + ': ' + escapeHTML(m.message); dcb.appendChild(div); }); if (dsb) dcb.scrollTop = dcb.scrollHeight; }); } loadDonatorChat(); setInterval(loadDonatorChat, 3000); if (dcf) { dcf.addEventListener('submit', function(e) { e.preventDefault(); var msg = dci.value.trim(); if (!msg) return; var fd = new FormData(); fd.append('ajax_donator_chat', 'post'); fd.append('message', msg); fd.append('csrf_token', '74a6aaf0105d84599e9ce762ed756eb0a23fb6fae8365cf420639de301097bce'); dci.value = ''; fetch('/', { method: 'POST', body: fd }).then(r=>r.json()).then(d=>{ if(d.error) { alert(d.error); dci.value = msg; } else { dsb = true; loadDonatorChat(); } }); }); } } // ИИ var aiForm = document.getElementById('ai-ask-form'); var aiChat = document.getElementById('ai-chat'); if(aiForm) { if(aiChat) aiChat.scrollTop = aiChat.scrollHeight; aiForm.addEventListener('submit', function(e) { e.preventDefault(); var input = document.getElementById('ai-prompt-input'); var prompt = input.value.trim(); if (!prompt) return; var fd = new FormData(); fd.append('ajax_ai', 'ask'); fd.append('prompt', prompt); fd.append('csrf_token', '74a6aaf0105d84599e9ce762ed756eb0a23fb6fae8365cf420639de301097bce'); input.value = ''; var uDiv = document.createElement('div'); uDiv.style.cssText = "display:flex; justify-content:flex-end; margin-bottom:10px;"; uDiv.innerHTML = '
' + escapeHTML(prompt) + '
'; aiChat.appendChild(uDiv); var lDiv = document.createElement('div'); lDiv.style.cssText = "display:flex; margin-bottom:15px;"; lDiv.innerHTML = '
Думаю...
'; aiChat.appendChild(lDiv); aiChat.scrollTop = aiChat.scrollHeight; fetch('/', { method: 'POST', body: fd }).then(r=>r.json()).then(d=>{ lDiv.remove(); if (d.error) { alert(d.error); return; } var aDiv = document.createElement('div'); aDiv.style.cssText = "display:flex; margin-bottom:15px;"; aDiv.innerHTML = '
' + d.response + '
'; aiChat.appendChild(aDiv); aiChat.scrollTop = aiChat.scrollHeight; }).catch(()=>{ lDiv.remove(); alert('Ошибка'); }); }); }