Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
9e0033149d
@ -2,20 +2,17 @@ package domain
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.gregbrzezinski.com/Skirda/skirdaGoLauncher/sharedutils/games/skirdagame"
|
||||
"git.gregbrzezinski.com/Skirda/skirdaGoLauncher/sharedutils/skirdasession"
|
||||
)
|
||||
|
||||
type SkirdaDomain struct {
|
||||
DomainId string
|
||||
skirdagame.SkirdaGames
|
||||
skirdasession.SkirdaSessions
|
||||
DomainId string `json:"domainId"`
|
||||
SkirdaGames `json:"games"`
|
||||
// skirdasession.SkirdaSessions
|
||||
}
|
||||
|
||||
func (domain SkirdaDomain) BuildDomain(newGames []skirdagame.SkirdaGame, newSessions []skirdasession.SkirdaSession) {
|
||||
func (domain SkirdaDomain) BuildDomain(newGames []SkirdaGame, newSessions []SkirdaSession) {
|
||||
domain.AddGames(newGames)
|
||||
domain.AddSessions(newSessions)
|
||||
// domain.AddSessions(newSessions)
|
||||
}
|
||||
|
||||
type Domains []SkirdaDomain
|
||||
@ -24,7 +21,7 @@ func (domains Domains) Set(newDomains []SkirdaDomain) {
|
||||
domains = append([]SkirdaDomain{}, newDomains...)
|
||||
}
|
||||
|
||||
func (domains Domains) FindGameByID(gameId string) (skirdagame.SkirdaGame, error) {
|
||||
func (domains Domains) FindGameByID(gameId string) (SkirdaGame, error) {
|
||||
for _, domain := range domains {
|
||||
game, _ := domain.FindGameByID(gameId)
|
||||
if game.GetSkirdaGameId() == gameId {
|
||||
@ -35,21 +32,21 @@ func (domains Domains) FindGameByID(gameId string) (skirdagame.SkirdaGame, error
|
||||
return nil, errors.New("")
|
||||
}
|
||||
|
||||
func (domains Domains) GetGames() skirdagame.SkirdaGames {
|
||||
allGames := skirdagame.SkirdaGames{}
|
||||
func (domains Domains) GetGames() SkirdaGames {
|
||||
allGames := SkirdaGames{}
|
||||
for _, domain := range domains {
|
||||
allGames = append(allGames, domain.SkirdaGames...)
|
||||
}
|
||||
return allGames
|
||||
}
|
||||
|
||||
func (domains Domains) GetSessions() skirdasession.SkirdaSessions {
|
||||
plainSessions := skirdasession.SkirdaSessions{}
|
||||
for _, domain := range domains {
|
||||
plainSessions = append(plainSessions, domain.SkirdaSessions...)
|
||||
}
|
||||
return plainSessions
|
||||
}
|
||||
// func (domains Domains) GetSessions() SkirdaSessions {
|
||||
// plainSessions := SkirdaSessions{}
|
||||
// for _, domain := range domains {
|
||||
// plainSessions = append(plainSessions, SkirdaSessions...)
|
||||
// }
|
||||
// return plainSessions
|
||||
// }
|
||||
|
||||
func (domains Domains) FindDomain(domainId string) (SkirdaDomain, error) {
|
||||
for _, domain := range domains {
|
||||
|
@ -1,12 +1,10 @@
|
||||
package minecraftgame
|
||||
package domain
|
||||
|
||||
import "git.gregbrzezinski.com/Skirda/skirdaGoLauncher/sharedutils/games/skirdagame"
|
||||
|
||||
const gameType = "minecraft"
|
||||
// const gameType = "minecraft"
|
||||
|
||||
type MinecraftGame struct {
|
||||
SkirdaGameId string
|
||||
Assets skirdagame.GameUIAssets
|
||||
Assets GameUIAssets
|
||||
Versions []string
|
||||
}
|
||||
|
||||
@ -14,7 +12,7 @@ func (game MinecraftGame) GetSkirdaGameId() string {
|
||||
return game.SkirdaGameId
|
||||
}
|
||||
|
||||
func (game MinecraftGame) GetUIAssets() skirdagame.GameUIAssets {
|
||||
func (game MinecraftGame) GetUIAssets() GameUIAssets {
|
||||
return game.Assets
|
||||
}
|
||||
|
||||
@ -23,11 +21,11 @@ func (game MinecraftGame) GetLaunchArgs() []string {
|
||||
}
|
||||
|
||||
func (game MinecraftGame) GetType() string {
|
||||
return gameType
|
||||
return "minecraft"
|
||||
}
|
||||
|
||||
func (game MinecraftGame) GetArguments() skirdagame.Arguments {
|
||||
return skirdagame.Arguments{}
|
||||
func (game MinecraftGame) GetArguments() Arguments {
|
||||
return Arguments{}
|
||||
}
|
||||
|
||||
func (game MinecraftGame) GetVersions() []string {
|
@ -1,4 +1,4 @@
|
||||
package skirdagame
|
||||
package domain
|
||||
|
||||
import "errors"
|
||||
|
@ -1,4 +1,4 @@
|
||||
package skirdasession
|
||||
package domain
|
||||
|
||||
import (
|
||||
"errors"
|
@ -1,14 +1,10 @@
|
||||
package steamgame
|
||||
|
||||
import "git.gregbrzezinski.com/Skirda/skirdaGoLauncher/sharedutils/games/skirdagame"
|
||||
|
||||
const gameType = "steam"
|
||||
package domain
|
||||
|
||||
type SteamGame struct {
|
||||
SkirdaGameId string
|
||||
SteamId string
|
||||
Assets skirdagame.GameUIAssets
|
||||
Arguments skirdagame.Arguments
|
||||
Assets GameUIAssets
|
||||
Arguments Arguments
|
||||
// CurrentVersion string
|
||||
}
|
||||
|
||||
@ -16,7 +12,7 @@ func (game SteamGame) GetSkirdaGameId() string {
|
||||
return game.SkirdaGameId
|
||||
}
|
||||
|
||||
func (game SteamGame) GetUIAssets() skirdagame.GameUIAssets {
|
||||
func (game SteamGame) GetUIAssets() GameUIAssets {
|
||||
return game.Assets
|
||||
}
|
||||
|
||||
@ -25,9 +21,9 @@ func (game SteamGame) GetLaunchArgs() []string {
|
||||
}
|
||||
|
||||
func (game SteamGame) GetType() string {
|
||||
return gameType
|
||||
return "steam"
|
||||
}
|
||||
|
||||
func (game SteamGame) GetArguments() skirdagame.Arguments {
|
||||
func (game SteamGame) GetArguments() Arguments {
|
||||
return game.Arguments
|
||||
}
|
161
domain/structures.go
Normal file
161
domain/structures.go
Normal file
@ -0,0 +1,161 @@
|
||||
package domain
|
||||
|
||||
import "strconv"
|
||||
|
||||
type JavaVersion struct {
|
||||
VersionNums `json:"version"`
|
||||
Specifics []JavaVersionSpecifics `json:"specifics"`
|
||||
}
|
||||
|
||||
func (jVer *JavaVersion) GetVersionString() string {
|
||||
return strconv.Itoa(jVer.Major) + "." + strconv.Itoa(jVer.Minor) + "." + strconv.Itoa(jVer.Patch)
|
||||
}
|
||||
|
||||
type JavaVersionSpecifics struct {
|
||||
Os string `json:"os"`
|
||||
Arch string `json:"arch"`
|
||||
URL string `json:"URL"`
|
||||
Sha1 string `json:"SHA1"`
|
||||
}
|
||||
|
||||
func (jv *JavaVersion) FindOs(os string, arch string) *JavaVersionSpecifics {
|
||||
for _, s := range jv.Specifics {
|
||||
if s.Os == os && s.Arch == arch {
|
||||
return &s
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type VersionNums struct {
|
||||
Major int `json:"major"`
|
||||
Minor int `json:"minor"`
|
||||
Patch int `json:"patch"`
|
||||
}
|
||||
|
||||
func (v *VersionNums) FillFromString(maj string, min string, patch string) error {
|
||||
iMaj, err := strconv.Atoi(maj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
iMin := 0
|
||||
iMin, err = strconv.Atoi(min)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
iPatch := 0
|
||||
iPatch, err = strconv.Atoi(patch)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
v.Major = iMaj
|
||||
v.Minor = iMin
|
||||
v.Patch = iPatch
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type Version struct {
|
||||
AssetIndex AssetIndex `json:"assetIndex"`
|
||||
Downloads struct {
|
||||
Client Artifact `json:"client"`
|
||||
Server Artifact `json:"server"`
|
||||
Mods struct {
|
||||
Required []ModArtifact `json:"required"`
|
||||
} `json:"mods"`
|
||||
} `json:"downloads"`
|
||||
ID string `json:"id"`
|
||||
Libraries []Lib `json:"libraries"`
|
||||
//ClientLog LogCfg
|
||||
MainClass string `json:"mainClass"`
|
||||
GameArgs []Argument
|
||||
JVMArgs []Argument
|
||||
Type string `json:"type"`
|
||||
JavaVersion JavaVersion `json:"javaVersion"`
|
||||
}
|
||||
|
||||
type AssetIndex struct {
|
||||
ID string `json:"id"`
|
||||
TotalSize uint64 `json:"totalSize"`
|
||||
Artifact
|
||||
}
|
||||
|
||||
// type Argument struct {
|
||||
// Value string `json:"value"`
|
||||
// Rules []Rule `json:"rules"`
|
||||
// }
|
||||
|
||||
type JavaVersionClientDistribution struct { //TODO Rename
|
||||
Component string `json:"component"`
|
||||
MajorVersion int `json:"majorVersion"`
|
||||
}
|
||||
|
||||
type Rule struct {
|
||||
Action RuleAct `json:"action" mapstructure:"action"`
|
||||
// OS information. All fields are regexes.
|
||||
OS struct {
|
||||
Name string `json:"name" mapstructure:"name"`
|
||||
Version string `json:"version" mapstructure:"version"`
|
||||
Arch string `json:"arch" mapstructure:"arch"`
|
||||
} `json:"os" mapstructure:"os"`
|
||||
Features struct {
|
||||
IsDemoUser *bool `json:"is_demo_user" mapstructure:"is_demo_user"`
|
||||
HasCustomResolution *bool `json:"has_custom_resolution" mapstructure:"has_custom_resolution"`
|
||||
} `json:"features" mapstructure:"features"`
|
||||
}
|
||||
|
||||
type RuleAct string
|
||||
|
||||
const (
|
||||
ActAllow RuleAct = "allow"
|
||||
ActDisallow RuleAct = "disallow"
|
||||
)
|
||||
|
||||
type LibClassifiers struct {
|
||||
JavaDoc *Artifact `json:"javadoc"`
|
||||
NativesLinux *Artifact `json:"natives-linux"`
|
||||
NativesMacOS *Artifact `json:"natives-osx"`
|
||||
NativesWin *Artifact `json:"natives-windows"`
|
||||
Sources *Artifact `json:"sources"`
|
||||
}
|
||||
|
||||
type Lib struct {
|
||||
Downloads struct {
|
||||
MainJar *Artifact `json:"artifact"`
|
||||
LibClassifiers `json:"classifiers"`
|
||||
} `json:"downloads"`
|
||||
NativeSuffixes struct {
|
||||
Linux string `json:"linux"`
|
||||
MacOS string `json:"osx"`
|
||||
Windows string `json:"windows"`
|
||||
} `json:"natives"`
|
||||
Name string `json:"name"`
|
||||
Rules []Rule `json:"rules"`
|
||||
ExtractRules struct {
|
||||
Exclude []string `json:"exclude"`
|
||||
} `json:"extract"`
|
||||
}
|
||||
|
||||
type Artifact struct {
|
||||
SHA1 string `json:"sha1"`
|
||||
Size uint64 `json:"size"`
|
||||
URL string `json:"url"`
|
||||
}
|
||||
|
||||
type ModArtifact struct {
|
||||
Artifact
|
||||
File string
|
||||
Name string
|
||||
Version string
|
||||
}
|
||||
|
||||
type VersionMeta struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
URL string `json:"url"`
|
||||
|
||||
Installed bool
|
||||
}
|
@ -7,10 +7,10 @@ import (
|
||||
"os"
|
||||
)
|
||||
|
||||
func WriteStructAsJSON(data interface{}, versionJsonPath string) error {
|
||||
func WriteStructAsJSON(data interface{}, JsonPath string) error {
|
||||
file, _ := json.MarshalIndent(data, "", " ")
|
||||
|
||||
directory, err := GetParentDir(versionJsonPath)
|
||||
directory, err := GetParentDir(JsonPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -18,7 +18,7 @@ func WriteStructAsJSON(data interface{}, versionJsonPath string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = ioutil.WriteFile(versionJsonPath, file, 0644)
|
||||
err = ioutil.WriteFile(JsonPath, file, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -31,6 +31,7 @@ func ReadJsonFromDisk(target interface{}, filePath string) error {
|
||||
// if we os.Open returns an error then handle it
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
// fmt.Println("Successfully Opened users.json")
|
||||
|
Loading…
Reference in New Issue
Block a user