Giter Club home page Giter Club logo

flightcore's People

Contributors

0negal avatar alystrasz avatar begin-theadventure avatar catornot avatar cyrv6737 avatar dependabot[bot] avatar geckoeidechse avatar harmony-weblate avatar jan200101 avatar jeremychone avatar ombrezz avatar taskinoz avatar th3-s4lm0n avatar theunkn0wn1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flightcore's Issues

RFC: List contributors for every release?

Should we list contributors for every release? With #184 I can generate the list pretty easily, so should be no extra effort to do.

Question is what counts as a contributor for a release?

  • PR creator?
  • PR reviewer?
  • Co-authors?
  • Creator of an issue that made aware of a problem and resulted in it getting fixed in a release?
  • Anyone else?

Add option for force reinstall Northstar

Add some button in the repair or dev menu that allows for force-reinstalling Northstar.

Mostly need this for myself to go back to latest release after installing some dev version.

Log parsing functionality

Parse logs to extract certain useful information like

  • Initial implementation in #156
    • Get installed mods
    • Get enabled mods
    • Get Northstar version number
    • Check for crashes
  • Get stacktraces
  • ???

Update used Actions in CI

We still use some older versions that are to be deprecated:

image

Requires #187 to be merged first as otherwise I'm gonna have a merge conflict ^^"

Progress:

  • #196
  • #210
  • Update any remaining actions

Suggestions for CSS improvements

Suggestions made by @barnabwhy in private channels based on TFOR launcher source code

:root {
    --background-image: url("../bg/img/arc.png") center / cover;
    --background-image-fallback: url("../bg/img/arc.png") center / cover;
    --background-color: rgb(23, 51, 107);
    --background-color-transparent: rgb(23, 51, 107, 0.85);
    --background-gradient: linear-gradient(transparent 25%, var(--background-color-transparent) 75%, var(--background-color) 90%), var(--background-image), var(--background-image-fallback);
    --background-color-secondary: rgb(14, 25, 47);
}

body {
    background: var(--background-gradient);
}

https://discord.com/channels/920776187884732556/1043871335543214102/1048643323755233401

Display error message if unable to launch WebView2 on Windows

Most comment crash according to sentry is lack of WebView2 on Windows. The FlightCore installer should also install WebView2 if missing but there are edge (hah) cases where the user cancels the install step or purposefully crippled their Edge install.

In such case from the user's perspective the app simply does not launch. If we could at least display an error dialogue, we could tell the user what to do to fix it.

Roadmap

  • General
    • Icon
    • CI builds
    • Self updating
      • ensure version sync with tauri.conf.json, cargo.toml
      • CI release
      • some scripts to create release JSON file
    • Self detect if outdated
    • Self update delivery
      • CI/CD
      • Option to disable self-update (for Flatpak and Chocolatey)
      • #97
      • Chocolatey (maybe?)
    • Display current version in UI window
    • Crash report uploading (sentry.io)
    • Show own version number somewhere in application
    • Link main webpage as well as Wiki and Discord in main UI
  • Northstar install/launch support
    • 1-click to get to running Northstar
    • Detect game install path
      • Steam
      • Origin
      • EA App (check if install path is program files and throw warnings)
        • Handle read-only filesystem
    • Check if Northstar install is up-to-date
    • 1-click updating Northstar
    • Support for multiple release channels (Thunderstore)
    • #93
    • Read-out current version from
    • #200
  • Mod support
    • Install mods via Thunderstore
    • Uninstall/delete mods
    • Show ns mod version (#159)
    • Show ns mod folder name
    • Prevent toggling (disabling) Northstar mods
      • exception for dev mode
    • ThunderstoreView
      • Initial implementation
      • Query Thunderstore API from backend (instead of frontend)
        #168
      • Show tags
      • Show warning for server-side only mod (generally don't want to install that on client)
      • Sorting
      • Some way of "exploring"
      • Button to open Thunderstore (the main page not just for the mod)
    • Handle enabling/disabling mods (via enabledmods.json)
      • General support
      • Handle edge cases where enabledmods.json might be missing (e.g. fresh install)
      • Handle edge cases where mod might be missing from enabledmods.json (manually installed before game launch)
    • Check mod validity
    • Mod update detection
    • Install the dependency of a mod specified in it's manifest instead of newest (maybe we already do that?)
    • #123
  • Game repair functionality
    • Force reinstall Northstar
    • Button to disable all mods except core Northstar mods
    • Generate "system report" (OS, Titanfall2 install location, FlightCore version, etc)
    • Check filesystem permissions (we wanna look for admin owned files etc)
    • Northstar crash detection
    • CloudFlare blocking debugger (in particular make sure to check IPv4)
    • Check Windows firewall rules
    • calling dxdiag and having an easy way of storing results somewhere so that they can be uploaded to tickets
  • Accessibility:
  • Papercuts
    • #4
    • Do not show "Unknown version" when Northstar not installed but "Not installed"
    • #284
    • Try to launch Origin if not running instead of only showing error message
    • #12
    • Move scrollbar away from edge (clicking scroll sometimes hits resize as well, makes things go wonky)
    • Do not open PowerShell window on update (suggested by @uniboi, requires investigating possibility in framework)
    • Do create new Desktop icon on update (suggested by @uniboi, requires investigating possibility in framework)
    • Paginated loading for ThunderstoreView to speed up initial load time
  • Extra
    • #147
    • Toggling mod enabled should also toggle mods enabled that it depends on
    • Click icon in ModsView to open mod folder in explorer
    • Dev tools
      • "dev mode"
      • Launch Northstar without update checks
      • Launch Northstar without checking for Origin
      • #139
    • Dark mode
    • Show list of Northstar (org) contributors and GitHub profile pics in some about menu, similarly to how it's done for releases
    • Support multiple profiles
    • get list of installed mods and export as TXT
    • support r2mm links
    • Open common config files
    • Linux specific
      • #383
      • Proton install from PlayView
      • Read output of ldd --version to determine use of nsproton (should be >=2.33) (#10)
    • Add some easter egg (e.g. pressing N 5 times displays hidden nessie maybe?)
    • Generate and upload log file on panic to Sentry
    • Bring back maximise button
  • Security
    • Ensure when loading mod title, description etc from Thunderstore to escape HTML tags

Warn when downgrading dependency mod

When installing a mod with a dependency that requires an older version of said dependency than what is already installed, we should show a warning and/or option not to downgrade.

Upload Windows debug symbols (`.pdb`) to Sentry via CI

Right now I have to manually upload Windows debug symbols to sentry. I'd much rather have it happen automatically during the build creation step to avoid having to extra work and potentially forgetting to upload it.

FlightCore not draggable on top bar

FlightCore window cannot be dragged on the top bar, only inside the main window body which is kinda the opposite of how most operating systems handle window UX.

As a temporary resolution we could re-enable OS decorations and disable the custom close/minimise buttons.
( I'm personally more a fan of OS-side window decorations anyway :P )

No internet?

Lots of methods currently fail if there's no internet connection.
We should display errors messages, instead of crashing the application.

Reduce lines of code for showing ElNotification

Right now showing an ElNotification on frontend needs around 6 lines of code

Example:

ElNotification({
    title: 'Success',
    message: "Disabled all mods but core",
    type: 'success',
    position: 'bottom-right'
});

Now some are unavoidable but at the very least the position: 'bottom-right' is used by every notification we send. Maybe there's a way to set the defaults so that we can at least remove that line?

Launch Northstar support via gamelauncher (Steam/Origin/EA)

Currently we just call the NorthstarLauncher.exe binary. This means however that some prerequisites need to be met for Northstar to be able to launch successfully such as Origin already running for LSX authentication to function.

If we instead could just do something like steam://<Titanfall2 App ID> -northstar (where -northstar would be passed to the Titanfall2.exe, and then in turn caught by our wsock32.dll to launch Northstar), we could skip all the prerequisite checks and also get Linux+Steam support for free.

Figure out optimal control flow for launching Northstar

We got a few checks we need to perform before we can launch Northstar.

What is the best order to do them in to reduce number of branches in control flow? First OS then Steam/non-Steam? First Steam/non-Steam, then OS? Other things we need to check?

Handle error when Origin install not found on Windows

When on a Windows machine where Titanfall2 is NOT installed with either Steam or Origin, the check for Titanfall2 Origin install fails and causes a panic.

called `Result::unwrap()` on an `Err` value: Powershell(Output { inner: Output { status: ExitStatus(ExitStatus(1)), stdout: "", stderr: "Get-ItemProperty : Cannot find path 'HKEY_LOCAL_MACHINE\SOFTWARE\Respawn\Titanfall2\' because it does not exist.
At line:1 char:1
+ Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Respawn\ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (HKEY_LOCAL_MACH...awn\Titanfall2\:String) [Get-ItemProperty], ItemNotFo 
   undException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
 
" }, success: false })

Link to crash report (private): https://sentry.io/organizations/northstar-kv/issues/3673655072/?project=6692177&query=is%3Aunresolved&referrer=issue-stream&statsPeriod=14d

Basic parsing/editing of server config file

Would probably keep this as dev tool only. Reason to add this is mostly to help myself when testing PRs. Would only make this a general end-user tool once Northstar supports setting server config stuff outside of editing a file inside Northstar.CustomServer. Otherwise a lot of logic for retaining this file would need to be added etc.

  • set servername
  • set description
  • set password

Version Relies on mod.json, which is not always correct

When downloading NorthstarMods directly from GitHub, the version remains as 1.9.0, making Flightcore think the version is outdated (even though it's not.)

Maybe the version should be grabbed from the Northstar executable instead?

Add additional button to download PR files

Add an additional button to download CI builds. Sometimes one has a specialised setup or doesn't want to overwrite the existing install (as is the case for Launcher PRs) so it would be useful to have an additional button to download the PR, given that we already have all the code for finding the newest build.

Delay GitHub update warning until X hours after release

CI currently takes 20 minutes to build. This means that when making a release, there's a 20 minute window where FlightCore will show a warning notification that it's outdated but not offer a way to update.

As such we should have a 1 hour (or some other duration) delay where we don't show the "FlightCore outdated" warning notification.

Check if mod is installed and get its update status

Is there a way to check if current mod is already installed? I would like for buttons to display "Installed" instead of "Install" if that's the case.

Not right now. I can look into it but it'll be a bit. I definitely want that feature but given that neither VTOL nor Viper have it either, I think we're fine with skipping it for this PR ;)

Originally posted by @GeckoEidechse in #54 (comment)

Visual bug with router refactor

Seems to work fine in testing for the most part. mounted() no only gets called when the view is actually opened, i.e. what we wanted to achieve with this PR ^^

One issue I noticed is that when enabling/disabling dev mode, the highlighted tab at the top gets updated incorrectly.
In particular, enabling dev mode highlights the DEV tab even though it isn't the open one:
screenshot

and disabling dev mode switches back to PLAY view but doesn't highlight it:
screenshot

Originally posted by @GeckoEidechse in #25 (review)

Detect default EA install location and give warning

"C:\Program Files\EA" cannot be written to by other processes due to some Windows directory permission stuff.

To resolve, the solution is to move the game install to a different location.

We should detect such an issue and guide the user to the right location to resolve.

Auto-generate TypeScript interfaces from Rust objects

We pass some data from backend to frontend via custom objects/structs (whatever they are called). For typing to work in TypeScript we need to also define an interface for that object in TypeScript.

Keeping the Rust<->TypeScript object definition synced manually is annoying and prone to errors. Instead we should auto-generate them from the Rust code where applicable (usually the definition in Rust is the "main" one) so that any changes in the Rust object get automatically transferred to the frontend.

Translations

  • Figure out how to do translations
  • Add weblate integration
  • Add them

Enable custom scrollbar on all views

ChangelogView and ModsView use custom scrollbar for overflow content. The other views do not and as such the whole window becomes scrollable if the content overflows. Example:

image

Obviously this shouldn't happen but also just trying to e.g. wrapping DevView inner container in <el-scrollbar> does nothing either. So uh @Alystrasz help please? ^^"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.