Go to file
2017-02-24 19:42:42 +08:00
gradle/wrapper Fixed #119 2017-02-19 16:30:27 +08:00
HMCL support jar upgrading 2017-02-24 19:42:42 +08:00
HMCLaF Scroll Bar 2017-02-24 19:04:19 +08:00
HMCLAPI Fixed forge not downloading from BMCL 2017-02-24 13:13:55 +08:00
HMCLCore support jar upgrading 2017-02-24 19:42:42 +08:00
.gitignore missing files 2017-02-18 18:41:00 +08:00
.nb-gradle-properties Applied macosapp. Closes #63 2016-05-16 12:55:35 +08:00
.travis.yml Make java dir text field text clearer 2017-02-23 13:31:18 +08:00
build.gradle why does the ui crash 2015-12-27 10:59:03 +08:00
common.gradle Fixed #119 2017-02-19 16:30:27 +08:00
gradlew Gradle 3.3 and wrapper 2017-02-19 16:38:25 +08:00
gradlew.bat Fixed #119 2017-02-19 16:30:27 +08:00
LICENSE why does the ui crash 2015-12-27 10:59:03 +08:00
license-header.txt why does the ui crash 2015-12-27 10:59:03 +08:00
README.md Update I18N_zh.land and I18N_zh.properties 2017-02-17 20:16:44 +08:00
settings.gradle Reconstruct codes 2016-05-13 18:25:55 +08:00

Hello Minecraft! Launcher Build Status

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
  • DecompressLibrariesEvent
  • DownloadLibrariesEvent
  • 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.