merge branch 'main' (lost 4 commits) into develop

This commit is contained in:
Fazri Gading
2026-01-25 13:54:15 +08:00
9 changed files with 466 additions and 422 deletions

0
.env.example Normal file
View File

View File

@@ -635,6 +635,20 @@
</div>
</div>
<!-- Installation effects overlay -->
<div id="installationEffects" class="installation-effects" style="display: none;">
<div class="space-effects">
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
<div class="warp-line"></div>
</div>
</div>
<div id="chatUsernameModal" class="chat-username-modal" style="display: none;">
<div class="chat-username-modal-content">
<div class="chat-username-modal-header">

View File

@@ -207,6 +207,11 @@ function setupSettingsElements() {
}
if (closeLauncherCheck) {
closeLauncherCheck.addEventListener('change', saveCloseLauncher);
}
// UUID event listeners
if (copyUuidBtn) {
copyUuidBtn.addEventListener('click', copyCurrentUuid);
@@ -392,6 +397,31 @@ async function loadCloseLauncher() {
}
async function saveCloseLauncher() {
try {
if (window.electronAPI && window.electronAPI.saveCloseLauncher && closeLauncherCheck) {
const enabled = closeLauncherCheck.checked;
await window.electronAPI.saveCloseLauncher(enabled);
}
} catch (error) {
console.error('Error saving close launcher setting:', error);
}
}
async function loadCloseLauncher() {
try {
if (window.electronAPI && window.electronAPI.loadCloseLauncher) {
const enabled = await window.electronAPI.loadCloseLauncher();
if (closeLauncherCheck) {
closeLauncherCheck.checked = enabled;
}
}
} catch (error) {
console.error('Error loading close launcher setting:', error);
}
}
async function savePlayerName() {
try {
if (!window.electronAPI || !settingsPlayerName) return;

View File

@@ -638,6 +638,9 @@ function setupUI() {
// Setup retry button
setupRetryButton();
// Setup draggable progress bar
setupProgressDrag();
lockPlayButton(true);
setTimeout(() => {
@@ -738,7 +741,6 @@ window.LauncherUI = {
// Make installation effects globally available
// Draggable progress bar functionality
function setupProgressDrag() {
if (!progressOverlay) return;

View File

@@ -2,7 +2,7 @@
Type=Application
Name=Hytale-F2P
Comment=A modern, cross-platform launcher for Hytale with automatic updates and multi-client support
Exec=/opt/Hytale-F2P/hytale-f2p-launcherv2
Exec=/opt/Hytale-F2P/hytale-f2p-launcher
Categories=Game;
Icon=Hytale-F2P
Terminal=false

View File

@@ -2,7 +2,7 @@
# Maintainer: Fazri Gading <fazrigading@gmail.com>
pkgname=Hytale-F2P-git
_pkgname=Hytale-F2P
pkgver=2.0.2b.r120.gb05aeef
pkgver=2.0.11.r120.gb05aeef
pkgrel=1
pkgdesc="Hytale-F2P - unofficial Hytale Launcher for free to play with multiplayer support"
arch=('x86_64')
@@ -10,11 +10,11 @@ url="https://github.com/amiayweb/Hytale-F2P"
license=('custom')
makedepends=('npm' 'git' 'rpm-tools' 'libxcrypt-compat')
source=("git+$url.git" "Hytale-F2P.desktop")
sha256sums=('SKIP' '8c78a6931fade2b0501122980dc238e042b9f6f0292b5ca74c391d7b3c1543c0')
sha256sums=('SKIP' '46488fada4775d9976d7b7b62f8d1f1f8d9a9a9d8f8aa9af4f2e2153019f6a30')
pkgver() {
cd "$_pkgname"
printf "2.0.2b.r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
printf "2.0.11.r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
build() {

View File

@@ -15,6 +15,12 @@ class AppUpdater {
}
setupAutoUpdater() {
// Enable dev mode for testing (reads dev-app-update.yml)
// Only enable in development, not in production builds
if (process.env.NODE_ENV === 'development' || !app.isPackaged) {
autoUpdater.forceDevUpdateConfig = true;
console.log('Dev update mode enabled - using dev-app-update.yml');
}
// Configure logger for electron-updater
// Create a compatible logger interface

View File

@@ -447,13 +447,6 @@ ipcMain.handle('launch-game', async (event, playerName, javaPath, installPath, g
ipcMain.handle('install-game', async (event, playerName, javaPath, installPath, branch) => {
try {
console.log(`[IPC] install-game called with parameters:`);
console.log(` - playerName: ${playerName}`);
console.log(` - javaPath: ${javaPath}`);
console.log(` - installPath: ${installPath}`);
console.log(` - branch: ${branch}`);
console.log(`[IPC] branch type: ${typeof branch}, value: ${JSON.stringify(branch)}`);
// Signal installation start
if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.webContents.send('installation-start');
@@ -633,7 +626,6 @@ ipcMain.handle('load-close-launcher', () => {
});
ipcMain.handle('select-install-path', async () => {
const result = await dialog.showOpenDialog(mainWindow, {
properties: ['openDirectory'],
title: 'Select Installation Folder'