Code Monkey home page Code Monkey logo

nomi's Introduction

Hey there, I'm Umatriz


Rust developer.

Stats

nomi's People

Contributors

nakidai avatar olshamb avatar umatriz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nomi's Issues

Fix UI

In some places the UI is broken.

  • Mods list in the Profile info
  • Export mods menu
  • Add profile button in the Profiles tab
  • Progress tab
  • Launcher logs aren't selectable
  • Remake settings page
  • Remake profile creation menu
  • Add more menus to the top bar

Version Instance

Version Instance - universal structure for version management

  • Builder
  • Wrapper over any version type
  • Assets downloading
  • Inject LaunchInstance into Instance
  • #8
  • #9
  • #10

java error when launching

If you try to launch minecraft 1.12.2 (and older I think) you will get this error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path: [natives_path_here]
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2429)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
        at java.base/java.lang.System.loadLibrary(System.java:1989)
        at org.lwjgl.Sys$1.run(Sys.java:72)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:87)
        at org.lwjgl.Sys.<clinit>(Sys.java:117)
        at bib.I(SourceFile:2825)
        at net.minecraft.client.main.Main.main(SourceFile:38)

Replace `anyhow::Error` with custom error type

Custom error type must be used in order to improve error messages.

  • Create a custom error type using thiserror.
    • Create Result type alias
  • Replace all anyhow::Result with the custom one
  • Remove anyhow dependency

tracking: Features

Tracking Features

  • Vanilla downloading
  • Vanilla launching
  • #5
  • Profiles and user config
  • Downloading/launching for Fabric/Quilt etc #8 #9 #10
  • Mod management

Rewrite the project

It's been a long time since the release of this launcher. And looking at the code now I can say that it's terrible in some places. That's why I will try to rewrite the current code in order to improve readability and make it easier to understand.
In addition to this, I want to implement mods downloading and support for #9 and #10 which is by itself will be easier after code refactoring.

tracking: client

Tracking issue for client (UI) state

  • Main page
  • Version select menu
  • Downloading
  • Launching
  • Settings page
  • Update pages
  • Add progress bar

`downloads` module refactor

Right now dowloading proccess is so hard to scale. Mostly because everythig is located in the one place. And it's also hard to keep track of the current downloading stage. My suggersion is a new dowloading system.

It should be based on the Dowloadable trait which will give us several methods to start dowloading, keep track of the current stage and check it's status.

The next part is TDownloader which are stucts that implemets Dowloadable trait. And should dowload only one thig. For example LibraryDownloader will download only one library and nothing more.

In adittion to this there will be DownloadSet and DownloadQueue which are utilites that gives a nice way to combine TDownloaders. And they also must implement Dowloadable

  • DownloadSet allows to execute a bunch of downloaders in parallel.
  • DownloadQueue allows to execute several downloads in sequence. And since DownloadSet implements Dowloadable we can easily combine those together.

Tracking tasks:

  • Dowloadable trait
  • Implemention of Dowloadable trait for common components
  • DownloadSet
  • DownloadQueue

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.