This commit is contained in:
2026-01-26 16:24:29 +03:00
parent fcb77e9368
commit 937c39b73f

View File

@ -1616,8 +1616,7 @@
} }
// Настраиваем drag-and-drop для кузницы, если она открыта // Настраиваем drag-and-drop для кузницы, если она открыта
const sidebar = $('forge-sidebar'); if (isForgeOpen) {
if (sidebar && !sidebar.classList.contains('hidden')) {
setTimeout(() => setupForgeDragAndDrop(state), 100); setTimeout(() => setupForgeDragAndDrop(state), 100);
} }
} }
@ -1640,28 +1639,70 @@
clearError(); clearError();
}); });
$('btn-host')?.addEventListener('click', () => { const btnHost = $('btn-host');
clearError(); if (btnHost) {
const name = ($('host-name')?.value || '').trim() || 'Игрок 1'; // Удаляем старые обработчики, если есть
const currentHost = window.location.hostname; const newBtn = btnHost.cloneNode(true);
let url = window.location.origin; btnHost.parentNode.replaceChild(newBtn, btnHost);
if (currentHost !== 'localhost' && currentHost !== '127.0.0.1') {
url = window.location.origin;
}
if (!socket || !socket.connected) { newBtn.addEventListener('click', function(e) {
connect(url); e.preventDefault();
socket.once('connect', () => { e.stopPropagation();
console.log('Кнопка "Создать комнату" нажата');
clearError();
const name = ($('host-name')?.value || '').trim() || 'Игрок 1';
console.log('Имя игрока:', name);
const currentHost = window.location.hostname;
let url = window.location.origin;
if (currentHost !== 'localhost' && currentHost !== '127.0.0.1') {
url = window.location.origin;
}
if (!socket || !socket.connected) {
console.log('Подключение к серверу:', url);
connect(url);
socket.once('connect', () => {
console.log('Подключено, создаём комнату');
socket.emit('createRoom', name);
});
socket.once('connect_error', (e) => {
console.error('Ошибка подключения:', e);
showError('Не удалось подключиться к серверу. Проверьте, что сервер запущен.');
});
} else {
console.log('Уже подключен, создаём комнату');
// Уже подключен, сразу отправляем
socket.emit('createRoom', name); socket.emit('createRoom', name);
}); }
socket.once('connect_error', (e) => { });
showError('Не удалось подключиться к серверу. Проверьте, что сервер запущен.');
}); // Также добавляем обработчик через onclick для надёжности
} else { newBtn.onclick = function(e) {
// Уже подключен, сразу отправляем e.preventDefault();
socket.emit('createRoom', name); e.stopPropagation();
} console.log('Кнопка "Создать комнату" нажата (onclick)');
}); const name = ($('host-name')?.value || '').trim() || 'Игрок 1';
const currentHost = window.location.hostname;
let url = window.location.origin;
if (currentHost !== 'localhost' && currentHost !== '127.0.0.1') {
url = window.location.origin;
}
if (!socket || !socket.connected) {
connect(url);
socket.once('connect', () => {
socket.emit('createRoom', name);
});
socket.once('connect_error', (e) => {
showError('Не удалось подключиться к серверу. Проверьте, что сервер запущен.');
});
} else {
socket.emit('createRoom', name);
}
};
} else {
console.error('Кнопка btn-host не найдена! Проверьте, что элемент существует в DOM.');
}
$('btn-join')?.addEventListener('click', () => { $('btn-join')?.addEventListener('click', () => {
clearError(); clearError();