mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-01-24 14:34:15 +08:00
57 lines
2.6 KiB
Markdown
57 lines
2.6 KiB
Markdown
|
# Hello Minecraft! Launcher [![Build Status](https://travis-ci.org/huanghongxun/HMCL.svg?branch=master)](https://travis-ci.org/huanghongxun/HMCL)
|
||
|
GPL v3, see http://www.gnu.org/licenses/gpl.html
|
||
|
|
||
|
## Introduction
|
||
|
|
||
|
HMCL is a Minecraft launcher which supports Mod management, game customizing, auto installing(Forge, LiteLoader and OptiFine), modpack creating, UI customizing and so on.
|
||
|
|
||
|
## Contribution
|
||
|
If you want to submit a pull request, there're some requirements:
|
||
|
* IDE: Netbeans 8.1
|
||
|
* Compiler: Java 1.8 and libraries only supports Java 1.7(because of retrolambda).
|
||
|
* Do NOT modify `gradle` files.
|
||
|
|
||
|
## Code
|
||
|
* package `HMCLCore/org.jackhuang.hmcl.util`: HMCL development utilities.
|
||
|
* package `HMCL/org.jackhuang.hmcl`: HMCL UI core.
|
||
|
* package `HMCLCore/org.jackhuang.hmcl.core`: HMCL game launcher core.
|
||
|
* package `HMCLAPI(HMCL)/org.jackhuang.hmcl.api`: HMCL API, see API section.
|
||
|
* Folder `HMCLCore/src/main/resources/org/jackhuang/hmcl/lang` contains language files.
|
||
|
|
||
|
## Pay Attention
|
||
|
* When you do decide to modify this app, please and you MUST delete `HMCL/org.jackhuang.hmcl.util.CrashReporter`, or errors your code cause will be sent to my server.
|
||
|
* package `org.jackhuang.hmcl.util.logging`: repackaged Apache Log4j, Apache License 2.0.
|
||
|
* package `com.google.gson`: Apache License 2.0
|
||
|
* package `org.jackhuang.hmcl.laf.ui`: contains some NimbusLAF's code belonging to Sun Microsystems under LGPL.
|
||
|
|
||
|
## API
|
||
|
HMCLAPI is based on Event bus. There are all events below.
|
||
|
* org.jackhuang.hmcl.api.event
|
||
|
- OutOfDateEvent - you can cancel checking new versions and upgrading by this event.
|
||
|
* org.jackhuang.hmcl.api.event.config
|
||
|
- AuthenticatorChangedEvent
|
||
|
- DownloadTypeChangedEvent
|
||
|
- ThemeChangedEvent
|
||
|
* org.jackhuang.hmcl.api.event.launch
|
||
|
- LaunchEvent
|
||
|
- LaunchSucceededEvent
|
||
|
- LaunchingStateChangedEvent
|
||
|
- ProcessingLaunchOptionsEvent
|
||
|
- ProcessingLoginResultEvent
|
||
|
* org.jackhuang.hmcl.api.event.process
|
||
|
- JVMLaunchFailedEvent
|
||
|
- JavaProcessExitedAbnormallyEvent
|
||
|
- JavaProcessStartingEvent
|
||
|
- JavaProcessStoppedEvent
|
||
|
* org.jackhuang.hmcl.api.event.version
|
||
|
- LoadedOneVersionEvent
|
||
|
- RefreshedVersionsEvent
|
||
|
- RefreshingVersionsEvent
|
||
|
|
||
|
You can also add tabs to root window or add authenticators through IPlugin.
|
||
|
|
||
|
### Remember
|
||
|
* A valid plugin will have a main class that implements `org.jackhuang.hmcl.api.IPlugin`. HMCL will search all jar files in `plugins` folder and load classes that implements IPlugin.
|
||
|
* If you want to debug, use option: `--plugin=<Your IPlugin Class Name>` and add your jar to classpath.
|
||
|
* You'd better only access `org.jackhuang.hmcl.api.*`, and other classes may change in different versions.
|