From 320f009658f5cffff6445d89d7e8cadb7dd83b57 Mon Sep 17 00:00:00 2001 From: Vladimir Zagainov Date: Sat, 23 May 2026 17:53:50 +0300 Subject: [PATCH] chore: initial project structure --- .gitignore | 21 +++++++++++++++++++++ README.md | 15 +++++++++++++++ cmd/launcher/main.go | 23 +++++++++++++++++++++++ go.mod | 5 +++++ internal/auth/auth.go | 2 ++ internal/config/config.go | 2 ++ internal/fetcher/fetcher.go | 2 ++ internal/java/java.go | 2 ++ internal/launch/launch.go | 2 ++ internal/selfupdate/selfupdate.go | 2 ++ internal/ui/components/components.go | 2 ++ internal/ui/screens/screens.go | 2 ++ internal/ui/theme/theme.go | 2 ++ internal/ui/ui.go | 2 ++ pkg/utils/utils.go | 2 ++ 15 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 cmd/launcher/main.go create mode 100644 go.mod create mode 100644 internal/auth/auth.go create mode 100644 internal/config/config.go create mode 100644 internal/fetcher/fetcher.go create mode 100644 internal/java/java.go create mode 100644 internal/launch/launch.go create mode 100644 internal/selfupdate/selfupdate.go create mode 100644 internal/ui/components/components.go create mode 100644 internal/ui/screens/screens.go create mode 100644 internal/ui/theme/theme.go create mode 100644 internal/ui/ui.go create mode 100644 pkg/utils/utils.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7261d3a --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Binaries +*.exe +*.dll +*.so +*.dylib +*.test +*.out + +# Go +vendor/ +go.sum + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db diff --git a/README.md b/README.md new file mode 100644 index 0000000..051f76b --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# MrixsCraft Launcher + +Minecraft лаунчер на Go с GUI на Fyne. + +## Сборка + +```bash +go build -o mrixscraft-launcher ./cmd/launcher +``` + +## Запуск + +```bash +go run ./cmd/launcher +``` diff --git a/cmd/launcher/main.go b/cmd/launcher/main.go new file mode 100644 index 0000000..a760bb9 --- /dev/null +++ b/cmd/launcher/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" + + "fyne.io/fyne/v2/app" + "fyne.io/fyne/v2/container" + "fyne.io/fyne/v2/widget" +) + +func main() { + fmt.Println("MrixsCraft Launcher starting...") + + a := app.New() + w := a.NewWindow("MrixsCraft Launcher") + w.Resize(fyne.NewSize(800, 600)) + + w.SetContent(container.NewVBox( + widget.NewLabel("MrixsCraft Launcher"), + )) + + w.ShowAndRun() +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..f52cca1 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/Mrixs/MrixsCraft-launcher + +go 1.22 + +require fyne.io/fyne/v2 v2.4.5 diff --git a/internal/auth/auth.go b/internal/auth/auth.go new file mode 100644 index 0000000..8c6210e --- /dev/null +++ b/internal/auth/auth.go @@ -0,0 +1,2 @@ +// package auth handles Yggdrasil authentication (login, refresh, validate). +package auth diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..b049704 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,2 @@ +// package config manages launcher configuration (launcher.json, system paths). +package config diff --git a/internal/fetcher/fetcher.go b/internal/fetcher/fetcher.go new file mode 100644 index 0000000..8e6d256 --- /dev/null +++ b/internal/fetcher/fetcher.go @@ -0,0 +1,2 @@ +// package fetcher handles HTTP downloads and SHA-1 verification. +package fetcher diff --git a/internal/java/java.go b/internal/java/java.go new file mode 100644 index 0000000..7ea7cf6 --- /dev/null +++ b/internal/java/java.go @@ -0,0 +1,2 @@ +// package java manages portable JRE downloads and detection. +package java diff --git a/internal/launch/launch.go b/internal/launch/launch.go new file mode 100644 index 0000000..5757bd5 --- /dev/null +++ b/internal/launch/launch.go @@ -0,0 +1,2 @@ +// package launch handles Minecraft process launching (argument interpolation, classpath). +package launch diff --git a/internal/selfupdate/selfupdate.go b/internal/selfupdate/selfupdate.go new file mode 100644 index 0000000..034d714 --- /dev/null +++ b/internal/selfupdate/selfupdate.go @@ -0,0 +1,2 @@ +// package selfupdate handles launcher auto-updates via go-selfupdate. +package selfupdate diff --git a/internal/ui/components/components.go b/internal/ui/components/components.go new file mode 100644 index 0000000..ecb3040 --- /dev/null +++ b/internal/ui/components/components.go @@ -0,0 +1,2 @@ +// package components provides reusable Fyne widgets (avatar, progress bar). +package components diff --git a/internal/ui/screens/screens.go b/internal/ui/screens/screens.go new file mode 100644 index 0000000..a265dbd --- /dev/null +++ b/internal/ui/screens/screens.go @@ -0,0 +1,2 @@ +// package screens implements application screens (login, main menu, settings). +package screens diff --git a/internal/ui/theme/theme.go b/internal/ui/theme/theme.go new file mode 100644 index 0000000..4657750 --- /dev/null +++ b/internal/ui/theme/theme.go @@ -0,0 +1,2 @@ +// package theme defines the custom Fyne theme (Minecraft-style colors, fonts). +package theme diff --git a/internal/ui/ui.go b/internal/ui/ui.go new file mode 100644 index 0000000..f915cce --- /dev/null +++ b/internal/ui/ui.go @@ -0,0 +1,2 @@ +// package ui contains Fyne GUI code (main window, theme, navigation). +package ui diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go new file mode 100644 index 0000000..e9c09c6 --- /dev/null +++ b/pkg/utils/utils.go @@ -0,0 +1,2 @@ +// package utils provides shared utility functions (SHA-1, ZIP, etc.). +package utils