Rust developer.
umatriz / nomi Goto Github PK
View Code? Open in Web Editor NEWNomi - Minecraft launcher powered by Rust.
License: GNU General Public License v3.0
Nomi - Minecraft launcher powered by Rust.
License: GNU General Public License v3.0
In some places the UI is broken.
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)
Custom error type must be used in order to improve error messages.
thiserror
.
Result
type aliasanyhow::Result
with the custom oneanyhow
dependencyRegex here (^[a-zA-Z0-9_]{3,16}$
) does not support "illegal nicknames" such as F
(https://namemc.com/profile/F.1)
List of fixed verisons:
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 issue for client
(UI) state
javaw
does not open a console window when run.
Implement async Lazy
type over tokio::OnceCell
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 TDownloader
s. 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
traitDowloadable
trait for common componentsDownloadSet
DownloadQueue
Support for multiple instances of the game
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.