Skip to content

Commit

Permalink
curseforge update (#50)
Browse files Browse the repository at this point in the history
* fix(request): cache wrong entity

* feat(ui): add curseforge icon

* fix(curseforge): update to new url

* fix(typing): add curseforge to typing

* fix(locale): add curseforge locale text

* feat(ui): add curseforge UX prototype

* chore: fix security issue

* docs: add more spec docs on features & add badge

* style: fix typing error

* chore: add log to see which locale is built

* feat: impl curseforge project/file fetching/install

Now we can view curseforge files and import by resource module.
The World & Modpack is not supported though.

* feat(ui): impl the UX for the curseforge project

* feat(locale): add curseforge text

* fix: route curseforge page

* style: correct resource source typing

* fix(ui): set image default style

* fix: try log the uncaught rejection & exception

* feat(ui): beautify the curseforge entry page

* fix(ui): add loading ui for curseforge view

* fix: correct curseforge project download count

* fix: correct handle the external route

* fix: make the memory clearable

* fix: currect the usage of assets vs static

* feat: enable client module to manage mapping

* refactor: identify the curseforge mod by fileId

* fix(locale): support some launch op text

* refactor(setting): redesign the setting page UI

* fix(ui): align the curseforge icon

* feat(ui): add curseforge modpack import

* feat(ui): add curseforge search function

* feat(curseforge): support search backend

* fix(curseforge): fake the user agent

* fix(typing): support curseforge typing

* fix(locale): update some curseforge text

* feat: watching files, saves ops

the profile saves/options data will auto update
by watching the saves folder & options txt

impl import/export/copy saves function

redo select profile func

* feat(saves): impl ui for save

also provide a placeholder for server UI

* fix(profile): lock add profile wizard when creating

* refactor(saves): rename cache to saves

* fix(locale): add more curseforge text

* fix(curseforge): wrong view page name

* feat(resources): support saves & modpacks

* feat(curseforge): redesign of modpack import

* feat(profile): prototype of add profile

* fix(launch): support new resource deploy

* fix(tray): force hight res tray

* style: toggle some styling

* fix(saves): wrong ui row wrap

* fix(locale): template part string display

* fix(curseforge): forge parsing from modpack

* fix(curseforge): wrong curseforge pathway

* fix(ui): performance issue for mod/resourcepack  list

* fix(ui): restrict the list size

* fix(mod): mod version comp corner case

* chore: add visibility vue dir

* feat(task): prototype for background task

* refactor(resource): use Task for resource module actions

* fix(profile): return profile id on create&select

also fix resource import

* feat(resource): add background import option

* refactor(curseforge): install curseforge modpack

* refactor: support background task

* refactor(locale): clean some text

* feat(curseforge): enable the curseforge worlds/modpacks

* feat: prototype of these helpers

* fix(curseforge): update to new import api

* feat(curseforge): add find file

* feat(wizard): add proto for modpack import

* fix: import observ in vue

* fix: add guard for resources commit

* fix: correct some cornor case for mods

* style: update text

* refactor: add identify algor

* feat: send user agent to main

* fix: try both forge/liteloader for mod

* fix: link feedback

* fix: curseforge api update

* fix: modpack display

* refactor: heavy refactor on core

the profile module now only load active profile's
gamesetting/saves/servers;
the protocol mapping now store in module
refactor to new resource query

* style: clean the code

* fix(gamesetting): wrong default value usage

* refactor: adapt to new api

* fix: bump version to fix perf issue

* style: mute the no-continue

* refactor(curseforge): adapt to new api

* fix(setting): placeholder if new version not found

* docs: add more docs on user module

* refactor: use mod resource to display

* refactor: placeholder for the server

* fix(curseforge): fix the curseforge search

* refactor(core): adapt to new launch core

* feat: impl basic feedback ui

* refactor(locale): correct the locale order

* feat: provide load saves from all profiles

* fix: saves loading & importing

* refactor: migrate to central fs

* fix: wrong selection list behavior

* fix: curseforge seach function

* chore: bump version

* fix: resource pack deletion for unknown pack

* fix: import save & option loading

* feat: provide error to task fail

* feat: copyFrom UX

* fix: gamesetting page save/load

* fix: wrong mcversion display

* chore: bump version

* fix(locale): add more text

* style: prevent no-named-as-default

* fix: prevent forge version is overlap by mc refresh

* fix: warning forge java version range

* fix: launch cwd

* fix: gfw return false if error

* fix: deployment on export

* feat: add error msg display

* fix: folder name display

* chore: bump versoin

* fix: strange corrupted version

* fix: use sym link

* chore(release): 0.2.0-beta.1
  • Loading branch information
ci010 authored Aug 11, 2019
1 parent fc017b0 commit 0925401
Show file tree
Hide file tree
Showing 90 changed files with 7,224 additions and 3,944 deletions.
4 changes: 3 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@
"space-before-function-paren": 0,
"object-curly-newline": 0,
"vue/max-attributes-per-line": 0,
"vue/html-closing-bracket-newline": 0
"vue/html-closing-bracket-newline": 0,
"no-continue": 0,
"import/no-named-as-default": 0
}
}
246 changes: 246 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

46 changes: 44 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

[![Build Status](https://travis-ci.org/voxelum/VoxeLauncher.svg?branch=master)](https://travis-ci.org/voxelum/VoxeLauncher)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e75f39022a114ab9aabf266425ae8b9e)](https://www.codacy.com/app/voxelum/VoxeLauncher?utm_source=github.com&utm_medium=referral&utm_content=voxelum/VoxeLauncher&utm_campaign=Badge_Grade)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)

> An WIP Minecraft Launcher based on electron-vue
Expand All @@ -17,10 +18,12 @@ Alpha: Cover the basic features that the official launcher have.

Beta: Cover the basic features related to mods.

1. Manage mods resources and launch with selected mods.
1. Manage mods resources and launch with selected mods.
2. Be able to install Forge/Fabric on corresponding Minecraft version.
3. Be able to detect mod version with Forge/Fabric version and Minecraft Version (detect mod compatibility).

Want to know exact features we have? See [Feature Design vs Implemenatation](#Feature-Design-vs-Implemenatation)

## Design

### Tech Stack
Expand All @@ -39,7 +42,7 @@ This project is using [nodejs](https://nodejs.org/) + [electron](https://electro
- static => static resources
- locales => all the localization files

Core minecraft launcher logic is implemented [ts-minecraft](https://github.com/InfinityStudio/ts-minecraft). Therefore some bugs might be cased by this.
Core minecraft launcher logic is implemented [launcher-core](https://github.com/voxelum/ts-minecraft). Therefore some bugs might be cased by this.

### Concept/Structure

Expand Down Expand Up @@ -175,6 +178,45 @@ Refer from [this gist](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f
**Your commit will be rejected if you do not follow these rules.**

## Feature Design vs Implemenatation

Here we list the features & corresponding files to implement the features.

| Feature | Core Logic File | Related Vuex Actions | Who Trigger | UI |
| ------------------------------------ | --------------------------- | -------------------------------------------------------------- | ------------------------------- | --------------------------- |
| User Login | user.js | login | User by UI | LoginPage.vue |
| User Skin Display | user.js | refreshSkin | - | UserPage.vue |
| User Skin Upload | user.js | uploadSkin | User by UI | UserPage.vue |
| User Mojang Identity Validataition | user.js | checkLocation, getChallenges, submitChallenges | Launcher Initialize, User by UI | UserPage.vue |
| User Logout | user.js | logout | User by UI | UserPage.vue |
| Launch Profile Creation | profile.js | createProfile, createAndSelectProfile | User by UI | ProfilesPage.vue |
| Server Profile Creation | profile.js | createProfile, createAndSelectProfile, createProfileFromServer | User by UI | ProfilesPage.vue |
| Edit Basic Profile Setting | profile.js | editProfile | User by UI | BaseSettingPage.vue |
| Edit Launch Setting (Java) | profile.js | editProfile | User by UI | AdvancedSettingPage.vue |
| Select Mods to Launch | profile.js | editProfile | User by UI | ModSettingPage.vue |
| Select Resource Packs to Launch | profile.js | editProfile | User by UI | ResourcePackSettingPage.vue |
| Modify Game Setting | profile.js | mutation: gamesettings | User by UI | GameSettingPage.vue |
| Select Launch Version | profile.js | editProfile | User by UI | VersionSettingPage.vue |
| Ping Server | profile.js | pingServer | User by UI | HomePage.vue |
| Ping All Servers in a Profile | profile.js | pingServers | User by UI | HomePage.vue |
| Import Modpack | profile.js | importProfile | User by UI | HomePage.vue |
| Export Modpack | profile.js | exportProfile | User by UI | HomePage.vue |
| Diagnose Profile (Detect Problems) | diagnose.js | diagnoseProfile | Any Changes by editProfile | - |
| Fix Profile Problems | diagnose.js | fixProfile | User by UI | HomePage.vue |
| Auto Detect Java Location on Disk | java.js | refreshLocalJava | Launcher Initialize | - |
| Install Java | java.js | installJava | User by UI | JavaWizard.vue |
| Fetch Minecraft Versions List | version.js | refreshMinecraft | Launcher Initialize | VersionSettingPage.vue |
| Fetch Forge Versions List | version.js | refreshForge | User by UI, Launcher Initialize | VersionSettingPage.vue |
| Install Minecraft Version | version.js | installMinecraft | User Fix Problems | - |
| Install Forge Version | version.js | installForge | User Fix Problems | - |
| Scan Installed Versions on Disk | version.js | refreshVersions | User Fix Problems | - |
| Install Version Missing Dependencies | version.js | installDependencies | User Fix Problems | - |
| Import Mods | resource.js | importResource | User by UI | ModSettingPage.vue |
| Import Resource Packs | resource.js | importResource | User by UI | ResourcePackSettingPage.vue |
| Display Mod Compatibility | universal/utils/versions.js | - | UI Initialize | ModCard.vue |
| Display Resource Pack Compatibility | universal/utils/versions.js | - | UI Initialize | ResourcePackCard.vue |


## LICENSE

[MIT](LICENSE)
Expand Down
Loading

0 comments on commit 0925401

Please sign in to comment.