Giter VIP home page Giter VIP logo

alicorn's Introduction

Alicorn Launcher JS Edition

中文 README

Collaborator's Note

This is skjsjhb, a user of the Alicorn launcher.

It's 2024.03 now. Years have passed since the release of Alicorn, and this project has been staled since early 2023, after the original maintainer has left the community. MCBBS is also downed, together with the mirror. Quilt has been adopted widely, while Forge has become NeoForged. Things changed a lot.

I'm not in the development team (I wasn't invited, sadly), which means I'm not an official maintainer of Alicorn. However, I decide to continue to add necessary patches. As I do not own the token of most platforms Alicorn was using, I might re-create certain content (e.g. actions) with my keys. Also, my code (and design) style is different as Sparklight, making breaking changes quite possible.

Most updates will be backed by my Kotlin-based launcher (I won't put a link here to avoid annoying people). The features will be tested and backported to Alicorn. See the repository of the new launcher for details.

Thanks for supporting Alicorn. Also thanks for loving the block game. Welcome to the age of Sakura (1.20.x). We don't have more ponies, but luckily we're still here.

IMPORTANT

This was posted by the original maintainer and is now outdated.

As I, the developer, decided not to contribute to the Minecraft communities, this project won't receive major updates since Core 50 (that's why I call it Sunset).

If servere security vulnerbilities are found in the future, patches might still be available. However, generally, this project is now discontinued.

It doesn't mean you have to switch to another launcher, but if you wish to, we recommand HMCL, it's a free software (as in freedom) and is still being actively maintained.


A third party Minecraft launcher, with high performance and freedom.

. . . . . .

Why Yet Another Launcher?

It's simple: I've been using different launchers and none of them can meet my requirements.

And that's why we develop Alicorn.

Why Electron?

Still simple: I fancy it!

Some other reasons include awesomely spectacular speed, etc.

There's no need to consider size. After all, nothing is bigger than your OS ;)

Principles

  1. Free as in freedom.

  2. Code quality and bug fixes.

  3. Even weight on functionalities and performance.

  4. Windows last.

  5. Bash first.

  6. Size is not that important, but sometimes is important.

  7. Throw away those stereotypes, the runnable is the best.

  8. Embrace UTF-8.

  9. Line Feed only.

  10. Try to make Alicorn looks the same in different platforms, but not definitely.

  11. No SaaS.

Build

Build Executable

To build Alicorn, you'll need:

  • Node.js

  • Git

  • Clone the repository:

    git clone https://github.com/Andy-K-Sparklight/Alicorn.git --depth=1
  • Install dependencies:

    yarn
  • Run build:

    yarn make

    This will generate binaries and put them under out, including Windows x64, Windows ia32, GNU/Linux x64, GNU/Linux arm64 and macOS x64. This will also generate corresponding archives.

    The support for macOS has ended and no more platform dependent code will be commited. The modules present are still kept, but might not run correctly.

    You also need wine to complete the cross build progress on platforms other than Windows. Follow the instructions given by electron-packager.

alicorn's People

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

Watchers

 avatar  avatar  avatar

alicorn's Issues

Large log problems of log recorder in crash analyzer

  • Core-version: 21

Describe

If Minecraft produces tons of logs, Alicorn will occupy a lot of memory, and only the next time the game starts will it release the memory.
If Minecraft crashes and triggers the crash analyzer with tons of logs, Alicorn may crash too.

Problem recurrence

In vanilla game, you can set up a command block with execute as @e run say eeeeeee(so many e) to quickly encounter this problem
In normal game plays, lots of chat or mod logs may cause the same problem, like a long-time game playing in a modded server

Upload Skins In Launcher

In a recent research, we found out that 'skin upload' has been requested several times.
We are putting this at a high priority and will implement this feature soon.

Premium account first, then Authlib Injector.

Curseforge API Is Closing Soon

We are sad to inform our users that the former API will stop serving soon, and there's no way we can prevent that. We can't simply use e.preventDefault() :(

But this has to be. That's the way I play my cards. We'll get this. (...somehow...?)

I'll be grateful if anypony can give me a hoof!

Backup And Restore

After I load a world containing mods with a mojang core and lost all my precious items, I decided to add this utility.

Backup is just like snapshot, we backup files only modified. When space not enough, we'll compress and remove the earliest one.

Removing Mojang Account

As Microsoft announced, Mojang account support will be dropped before long.
This will be removed from Alicorn after Microsoft officially closed the authenticate service.

Nothing stays the same for long
But when it change it doesn't mean it's gone

You can still use Yggdrasil with custom auth server, by entering the mojang server host.

A few suggestions

1.The initialization process failed to close the launcher
2.The upper right corner of the Java selection window still allows you to re-enter this page
3.Translation should be more in line with the actual usage habits, but not use some proper nouns used by developers.Such as using “存储位置” not “容器”.(I may use a pull request later to modify the translation)
4.The directory selection box shall allow direct editing.
5.Almost all animations in windows are lagging.
6.GC1 and GC2 shall not be allowed to be repeated, otherwise it may be unable to start
7.InstallForge and InstallFabric maybe can be merged into one button
8.Optifine version not recognized

┗(•ω•;)┛

1.18/Fabric/Iris Failed To Launch

Due to the changes of some class files, in 1.18, we should launch game with Java 17, but not 16.

Change default install JDK version to 17, and upgrade auto select module.

I can stress on the importance of this issue!

Fabric Installation Contains Unnecessary Steps

For Fabric, the only thing important is to download the profile.
There is no need to run the installer.

(So only Forge needs, well, the world seems better now. Maybe we might use Quilt to proxy Forge mods, maybe.)

Switch from got to fetch

got has offered us amazing api which helped us a lot during development.
However, now that Alicorn starts to bring more features, got, though easy to use, sometimes doesn't have the best performance, especially dealing with proxy or agent. (More may because I just created a new agent for each request.)

Considering this, we decided to remove got from Alicorn and use a combination of simple-get, node-keepalive-proxy-agent, etc.

This feature is considered as performance improving, so we shall release it in our next Alicorn Release, that is AppleSauce, I suppose, though we might change it in the last minute ;)

Alicorn Config Occasionally Lost

Config lost has been losing for a while, and we haven't figured out what caused this. For me, it happens occasionally when changing themes.

Some users have report that update may also cause this, but none of them can tell what had happened before that.

We're focusing on this. If anypony has an idea about why this is so, please do tell me!

Support Quilt ModLoader

Quilt is a fork of fabric that supports most Fabric mods. Some mod authors also left the Fabric community, making their mods only support Quilt. Quilt maintains a good relationship with the Forge community, enabling some Forge mods to support Quilt. Patchwork is working on getting Forge Mod to run on Quilt. Finally, MultiMC already supports Quilt.

Microsoft Account Failed To Login In LoginWindow

We've received some reports showing that login with MS account might fail.

As the reports said, users encountered "wrong password" hint, which is not true. They cannot reset their password or send email to verify themselves' identity. But the thing is, their login seems fine in other launchers or in browser!

After a quick going through our code, I guess there might be something related with cookies or network (more possibly). I just can't think of any other causes, since Alicorn is exactly a Chromium browser!

We're not giving up, we will resolve this.
...somehow... :(

ModX: sodium exclusion problem

What Happened:

ModX doesn't seem to exclude other versions of sodium, that caused my Minecraft 1.18.2 and 1.19 crash.

圖片

I downloaded the mod from PFF, but the mod list exclusions on both sides show inconsistently

圖片

What to Expect

the imcompactable version is not loaded, and the game should launch fine.

Platform

System: ArchLinux, with Linux LTS 5.15.55-1-lts
Electron: 19.0.7
Version: Alicorn Harmony JE 49 cb5c590

Missing liblwjgl on ARM Devices

这款启动器是我找到的唯一一款可以兼容arm64的mc启动器,我将他安装在我的arm64 ubuntu下,并按照网络教程安装了完整的Java18和相应库,但是启动时他提醒我Failed to locate library:liblwjgl.so,我上百度和谷歌都有查过,许多人都遇到这个问题,但是他们的解决方法不适用于我,所以我想求助开发者针对这一问题设计或提出一个可行方案...

(Translated by collaborators)

This launcher is the only mc launcher I found that is compatible with arm64. I installed it under my arm64 ubuntu and installed the complete Java18 and corresponding libraries according to the online tutorial, but he reminded me when I started it. Failed to locate library:liblwjgl.so, I have checked on Baidu and Google, many people have encountered this problem, but their solutions do not apply to me, so I want to help developers design or propose this problem A possible solution...

Enhance Fabric Mods Meta Resolution

As Fabric mods are often born with "JavaScript readable" JSON metadata, it's possible for us to provide better resolution, like conflicts and dependencies.

Some tips do not appear in BuildUp

  • Core-version: 36

Describe

# Utilities.BuildUp.Build
开始构建!
# Utilities.BuildUp.Show
显示构建产物
# Utilities.BuildUp.Asset.SelectAll
全部选中
# Utilities.BuildUp.Asset.SelectMods
选择所有模组
# Utilities.BuildUp.Resolving
解析资源路径……
# Utilities.BuildUp.Indexing
生成引导文件……
# Utilities.BuildUp.Compressing
打包压缩文件……
# Utilities.BuildUp.Done
好了,完成了,快打开看看吧!

Problem recurrence

Try to build up a mod pack

Could you post a tutorial video or article

  • Could you post a tutorial video or article on how to install Alicorn on ARM64 devices

I can't install this launcher on my raspberry.
I did my best to deal with the dependencies such yarn Node.js , but I failed.

Can you upload it to Bilibili if possible?

Alicorn can't get the Minecraft Forge installer if the branch of which isn't null

  • Core-version: 24

Affected Minecraft Version

1.8.9 or below

Describe

Can not get the Minecraft Forge installer if the branch of which isn't null

Excerpt from https://bmclapi2.bangbang93.com/forge/minecraft/1.8.9

{
        "_id": "5be154797dc7d7bc03068369",
        "build": 2318,
        "__v": 0,
        "version": "11.15.1.2318",
        "modified": "2017-06-07T20:30:36.000Z",
        "mcversion": "1.8.9",
        "files": [{
                "category": "changelog",
                "format": "txt",
                "hash": "e2fa7d4e3049902d91e9dc5d8f9cec8c"
            }, {
                "category": "installer",
                "format": "jar",
                "hash": "a5ed11c60e7845b62d2c2b3ab8e0d192"
            }, {
                "category": "mdk",
                "format": "zip",
                "hash": "0426f918e8713a4a35f32b9b533a980e"
            }, {
                "category": "universal",
                "format": "jar",
                "hash": "b97a4c5bc653c957663e7b0de17a3c09"
            }, {
                "category": "userdev",
                "format": "jar",
                "hash": "bf2e1db7315e065656e27782d4720f8f"
            }
        ],
        "branch": "1.8.9" !!!
    }

Excerpt from https://bmclapi2.bangbang93.com/forge/minecraft/1.12.2

{
        "_id": "5fde403cd052d3ce556222ed",
        "__v": 0,
        "branch": null,√√√
        "build": 2855,
        "files": [{
                "category": "installer",
                "format": "jar",
                "hash": "b37aedc28e441fec469f910ce913e9c3"
            }, {
                "category": "mdk",
                "format": "zip",
                "hash": "83543cc09a95d18f402862b418a79075"
            }, {
                "category": "universal",
                "format": "jar",
                "hash": "02fcc447bb8938e5214292e4d36ec949"
            }
        ],
        "mcversion": "1.12.2",
        "modified": "2020-12-18T17:52:49.000Z",
        "version": "14.23.5.2855"
    }

When trying to get the installer, Alicorn will ignore the branch so she(?) can't get installer correctly:
Alicorn: https://maven.minecraftforge.net/net/minecraftforge/forge/1.7.10-10.13.4.1614/forge-1.7.10-10.13.4.1614-installer.jar
Correct:https://maven.minecraftforge.net/net/minecraftforge/forge/1.7.10-10.13.4.1614-1.7.10/forge-1.7.10-10.13.4.1614-1.7.10-installer.jar

Problem recurrence

Install Minecraft Forge for Minecraft 1.8.9 or below

OptiFine Installation

We've received a lot requests for OptiFine automatic installation. And we decide to add it to Alicorn in our next release.

Support OptiFabric is also essential. However, support "pure" OptiFine installation isn't easy, since OptiFine has no CLI, we'll probably refine HarmonyForgeInstallerCLI... So please help me!

Try To Use UPX

We really wish that UPX can reduce the size of Alicorn. However, 3.96 cannot.

We shall try each version (including devel), until we find one that fit Electron... Or fail every test.

Good luck to me!

Modpack Builder

Build a CurseForge modpack or Common modpack (aka. MCBBS modpack) is easy... in writing JSON file, meanwhile, Alicorn has to resolve mods. The easiest way is "pack from container" since we have pff.lock to resolve mods.

Install.json, though not published yet, should be supported to, it "fake" itself as a core and instruct launcher to download mods, etc. And maybe we need a convert method.

This utility sure should work together with pff.

Wrong Styles Applied To Many Components

Due to the differences between dev and prod env, some styles refuse to work :(
It seems that emotion styles always override jss styles, which shouldn't have happened.

We're fixing this.

Should Provide An Option To Make A Secure Launch

As there are many pre-processing components, Alicorn is not so stable when launching some cores.
We can't just simply remove things like ReadyBoom, for they are awesome!

All that we need to do is provide a checkbox and let user to choose whether to make a secure launch. (Like the 'fix' mode in other launchers, but much more smart)

Pff Enhancement

Allow using pff to search for mods, like display them, etc.

Also, pff should be able to resolve resourcepacks, modpacks, etc.

Make It Suitable For Modpacks

Although we normally don't need to include a launcher in the modpack, sometimes we will. As it is, we have to admit that Alicorn is too large. But, but, that is not a reason why we give up on it.

Remember AlicornWrapper? That's it! By using a small bootstrap, we can include it in the pack. All that program needs to do is find and call Alicorn, or download one if it can't find any.

I suggest that golang might be suitable for this. Who knows?

And besides, the best way still is making Electron smaller. About this, I highly disagree with a few Electron developers.

WHAT DO YOU MEAN "that's the expected size"?

Logs Highlight

Highlight logs in CrashReportsDisplay.

This feature is essential for users to see errors, etc.

Modrinth Platform Support For Pff

As Alicorn found out that many mods cannot be found on CurseForge, but on Modrinth instead, we've noticed that the requirement of Modrinth mods install is increasing.

Though, add support for Modrinth isn't easy, probably we need to rewrite the virtual layer and add a new adaptor.

If anypony can offer us some help, we will be very grateful!

BuiltIn JDK

For many users, they don't care about what JVM they use, instead, they just want to start the game immediately.

So... we can add an optn to select built-in jvm... This should be enabled if no JDK was found.

(Is this too twilight? I guess not. 30% of crashes are related with JDK version, etc.)

Cross Core Option Transform

As we all known, options.txt cannot be auto transformed by Minecraft. Even if it could be, conflicts often happen.

We'll solve this with our Alicorn Magic~ Just wait and see!

Besides, tomorrow night is Christmas Eve. Have a rest, everypony! We've came a long way!

一个关于翻译的惊天大难题!

Alicorn正在更新联机系统!但是在这个要说名道姓并且国际化的时代,一个东西必须要有一个好听的名字才能吸引大家!
正如小马利亚有Cutie Map指引你带给别人FriendShip一样,Alicorn推出了Cutie Connect让你在Minecraft世界中带给别人Friendship
但是呢,它的中文直译略显尴尬,什么,你不信?我给你念一下:
可爱连接
是不是稍微。。有一点不对劲?如果有更好的名字,不如提出来,不然的话,可爱连接就真的要叫可爱连接了(

Can't destroy the core after the fifth

  • Core-version: 24

Describe

Can't destroy the core after the fifth(the original position that haven't sorted by frequency)
The core list will refresh brfore destroy. Because cores are loaded five by five, the cores after the fifth won't be found instantly so Alicorn thinks the core was destroyed.(So she will fresh the core list again),making confirm window only flash by.

In addition,clicking the destroy will clear the statistic of the core, even if you cancel it

May caused by a9fa312

Problem recurrence

Create a container with more than five cores
(PS.Only need more than five cores, even if they come from different containers)
destroy a core after the fifth

BuildUp Should Pack Alicorn ToGo

As Alicorn ToGo is available, we will pack it in the modpacks, but if the pack itself is smaller than Alicorn ToGo(~8M), we shall exclude it.

The requirements of mods will push packs fwd rapidly, we must seize this chance.

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.