Java speedrun timer. Fork of the official version at http://jenmaarai.com/llanfair/
This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2017-01-28 12:12:40 -05:00
src/main fix trimming recent files list of excess files based on max setting 2017-01-28 12:12:40 -05:00
.gitignore use gradle for building, reorg src/res dirs, add Sidekick lib source 2015-11-29 23:46:50 -05:00
build.gradle update version for development of next release 2016-03-21 13:34:52 -04:00
Llanfair.icns add app icon for mac app bundle builds 2015-12-03 17:49:08 -05:00
README.md update README.md 2016-01-04 17:04:16 -05:00

Llanfair

From the homepage:

Llanfair is a free software that helps speedrunners keep track of their run. Released in August 2012, its capacity for customization and its portability allowed it to garner some recognition in the scene. Developed in Java, Llanfair can run on Windows, MacOS, or Unix.

The original author Xavier "Xunkar" Sencert was kind enough to release the sources (see here and here) when I asked. I'm not completely certain if Xunkar ever intends to continue development of Llanfair himself as it seems he uses LiveSplit now (?).

Regardless, here I will be extending the original application as best I can by adding some missing features here and there and fixing bugs as needed.

!! Beta Status Warning !!

Right now I consider the code and releases on this repository to be in a beta state. It is very, very possible that I will make changes in the near future which will break compatibility with old config files / splits causing them not to load in Llanfair. If this is a problem for you, I suggest that you hold off on using these releases for now!

Download

Check the releases page for downloadable JARs.

JARs can be run from the command line via something similar to:

$ java -jar Llanfair.jar

Major Changes / Fixes

The main changes from v1.4.3 (the last official release from Xunkar) are as follows:

  • Enhancements to JNativeHook support for global key events. Llanfair will prompt with an error if the hook could not be registered instead of failing silently. Additionally on some OS's you may see your OS prompt you with some kind of accessibility permissions request.
  • Choice between global or non-global hotkeys.
  • Human-readable config and splits file formats (XML). This change is almost entirely based on work Xunkar had started after release of v1.4.3.
  • Support for a delayed/negative run start time. Useful if you want to start the run at a time more convenient for you but before any of the segments should start (e.g. to skip initial loading, fadeouts, etc).
  • Attempt counter (both the number of total attempts and number of completed runs).
  • Additional font and colour customization settings.
  • Coloring of split time deltas using slightly different color shades based on if you're gaining/losing time while already ahead/behind.
  • Run goal text setting has been changed to a more generic run sub-title setting.
  • By default the config file is saved under $user_home/.llanfair/ and the default location to save/load splits is $user_home/.llanfair/splits/ (though you can of course also choose whatever other location you like).
  • Saved splits are now saved with a default .lfs file extension.
  • Other minor bug fixes.

Important Note About Localization

I've temporarily disabled localization support. Some of the strings used in Llanfair were out of sync between English and the other languages and I ended up adding new English strings too as I've been working on feature enhancements and bug fixing. I only speak English and so have no way to update the other language translations. It seemed wrong to me to include an option in the app to switch languages when the other language text was incomplete, so it will remain disabled until these translations are brought up to date again (which will have to be done by someone else -- pull requests are more then welcome!).

Building and Running

You will need Gradle. Obviously any IDE with Gradle support will simply mean you can just open this project right away in your IDE and get developing immediately. Easy.

Llanfair currently requires Java 7.

Command Line Building / Running / Distribution

To build:

$ gradle build

The Gradle application plugin is being used, so you can run Llanfair simply by doing:

$ gradle run

To package up a JAR file for redistribution, run:

$ gradle shadowJar

Which will spit out an "uber JAR" under build/libs under the naming convention llanfair-[VERSION]-all.jar. This JAR will of course work on any OS and includes all required dependencies inside it.

To build a redistributable Mac app bundle (.app):

$ gradle createApp

Which will create an app bundle under build/macApp.

TODO

  • Bug fixing
  • Some UI cleanups, especially in the Edit Run dialog and Settings dialog.
  • Even more font/color customization options?
  • ...