Compare commits

..
4 Commits
Author SHA1 Message Date
Lncvrt f83cc118fe 1.6.3 2026-02-26 23:27:32 -07:00
Lncvrt 19788a8a3c Update launche to new API 2026-02-26 23:22:16 -07:00
Lncvrt e066dd0681 Update icon 2026-02-26 14:31:28 -07:00
Lncvrt 29b3c3c58b Flip this 2026-02-18 20:43:40 -07:00
31 changed files with 67 additions and 41 deletions

No files matched your search

+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "lncvrt-games-launcher",
"private": true,
"version": "1.6.2",
"version": "1.6.3",
"type": "module",
"scripts": {
"dev": "next dev",
@@ -30,17 +30,17 @@
"react-dom": "19.2.4"
},
"devDependencies": {
"@eslint/eslintrc": "3.3.3",
"@tailwindcss/postcss": "4.1.18",
"@eslint/eslintrc": "3.3.4",
"@tailwindcss/postcss": "4.2.1",
"@tauri-apps/cli": "2.10.0",
"@types/crypto-js": "4.2.2",
"@types/node": "25.2.3",
"@types/node": "25.3.2",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"crypto-js": "4.2.0",
"eslint": "9.39.2",
"eslint": "10.0.2",
"eslint-config-next": "16.1.6",
"tailwindcss": "4.1.18",
"tailwindcss": "4.2.1",
"typescript": "5.9.3"
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "lncvrt-games-launcher"
version = "1.6.2"
version = "1.6.3"
authors = ["Lncvrt"]
edition = "2024"
@@ -29,7 +29,7 @@ tauri-plugin-notification = "2.3.3"
sysinfo = "0.38.2"
sha2 = "0.10.9"
tauri-plugin-clipboard-manager = "2.3.2"
tauri-plugin-prevent-default = "4.0.3"
tauri-plugin-prevent-default = "4.0.4"
[target.'cfg(target_os = "linux")'.dependencies]
shlex = "1.3.0"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

After

Width:  |  Height:  |  Size: 248 KiB

+1
View File
@@ -139,6 +139,7 @@ async fn download(
}
};
let total_size = resp.content_length().unwrap_or(0);
let _ = app.emit("download-size", format!("{}:{}", &name, &total_size));
let mut downloaded: u64 = 0;
let mut stream = resp.bytes_stream();
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Lncvrt Games Launcher",
"version": "1.6.2",
"version": "1.6.3",
"identifier": "xyz.lncvrt.games-launcher",
"build": {
"beforeDevCommand": "next dev --webpack",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Lncvrt Games Launcher",
"version": "1.6.2",
"version": "1.6.3",
"identifier": "xyz.lncvrt.games-launcher",
"build": {
"beforeDevCommand": "next dev --webpack",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Lncvrt Games Launcher",
"version": "1.6.2",
"version": "1.6.3",
"identifier": "xyz.lncvrt.games-launcher",
"build": {
"beforeDevCommand": "next dev --webpack",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Lncvrt Games Launcher",
"version": "1.6.2",
"version": "1.6.3",
"identifier": "xyz.lncvrt.games-launcher",
"build": {
"beforeDevCommand": "next dev --webpack",
+1 -2
View File
@@ -270,11 +270,10 @@ export default function BerryDashLeaderboards () {
}&overlayB=${item.overlayColor[2]}`
: `https://games.lncvrt.xyz/api/berrydash/icon-marketplace/icon?id=${item.customIcon}&raw=true`
}
className='pointer-events-none'
width={48}
height={48}
alt=''
unoptimized
className='pointer-events-none scale-x-[-1]'
/>
<p>
{item.username} (#{index + 1})
+49 -7
View File
@@ -181,6 +181,21 @@ export default function RootLayout ({
useEffect(() => {
let unlistenProgress: (() => void) | null = null
listen<string>('download-size', event => {
const [displayName, sizeStr] = event.payload.split(':')
const size = Number(sizeStr)
setDownloadProgress(prev => {
const i = prev.findIndex(d => d.version === displayName)
if (i === -1) return prev
const copy = [...prev]
copy[i] = {
...copy[i],
size
}
return copy
})
}).then(f => (unlistenProgress = f))
listen<string>('download-progress', event => {
const [displayName, progStr, totalSizeStr, speedStr, etaSecsStr] =
event.payload.split(':')
@@ -285,7 +300,18 @@ export default function RootLayout ({
const newDownloads = newVersions.map(
version =>
new DownloadProgress(version, 0, 0, false, true, false, false, 0, 0)
new DownloadProgress(
version,
0,
0,
false,
true,
false,
false,
0,
0,
0
)
)
setDownloadProgress(prev => [...prev, ...newDownloads])
@@ -322,17 +348,33 @@ export default function RootLayout ({
prev.map(d => (d.version === versionId ? { ...d, queued: false } : d))
)
try {
await axios.get(
'https://games.lncvrt.xyz/api/launcher/download?id=' + info.id
const downloadInfoRequest = await axios.get(
'https://games.lncvrt.xyz/api/launcher/download?gameId=' +
info.id +
'&downloadId=' +
info.download
)
} catch {}
if (!downloadInfoRequest.data.success) {
setDownloadProgress(prev =>
prev.map(d =>
d.version === versionId
? { ...d, queued: false, failed: true, progress: 0 }
: d
)
)
if (normalConfig?.settings.allowNotifications)
await notifyUser(
'Download Failed',
`The download for version ${info.displayName} has failed.`
)
return
}
const res = await invoke<string>('download', {
url: info.downloadUrl,
url: downloadInfoRequest.data.data.url,
name: info.id,
executable: info.executable,
hash: info.sha512sum
hash: downloadInfoRequest.data.data.hash
})
if (res === '1') {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

+1 -1
View File
@@ -70,7 +70,7 @@ export default function DownloadsPopup () {
maximumFractionDigits: 1
})}{' '}
of{' '}
{prettyBytes(getVersionInfo(v.version)?.size ?? 0, {
{prettyBytes(v.size, {
minimumFractionDigits: 1,
maximumFractionDigits: 1
})}{' '}
-15
View File
@@ -107,21 +107,6 @@ export default function VersionVersionPopup () {
: 'N/A'}
</p>
</div>
<div
className='entry-info-item btntheme2'
hidden={!viewingInfoFromDownloads}
>
<FontAwesomeIcon icon={faHardDrive} color='lightgray' />
<p>
Size when downloaded (zipped):{' '}
{versionInfo
? prettyBytes(versionInfo.size, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
})
: 'Loading...'}
</p>
</div>
<div
className='entry-info-item btntheme2'
onClick={async () => {
+1
View File
@@ -8,6 +8,7 @@ export class DownloadProgress {
public hash_checking: boolean,
public finishing: boolean,
public speed: number,
public size: number,
public etaSecs: number
) {}
}
+2 -4
View File
@@ -3,13 +3,11 @@ export interface GameVersion {
displayName: string
releaseDate: number
game: number
downloadUrl: string
executable: string
sha512sum: string
size: number
place: number
changelog: string
wine: number | undefined
category: number
lastRevision: number
download: number
executable: string
}