Skip to content

HauntedMC Theme

CI License Java 25

Versioned HauntedMC Theme for plugin localization.

Artifacts

  • nl.hauntedmc.theme:hauntedmc-theme-palette exposes HauntedMcColor for direct Adventure use.
  • nl.hauntedmc.theme:hauntedmc-theme-featureframework exposes HauntedMcTheme.theme().

The artifacts are published to GitHub Packages. Add the repository to the consuming build (and configure GitHub Packages credentials when required):

<repository>
  <id>github</id>
  <url>https://maven.pkg.github.com/HauntedMC/Theme</url>
</repository>

Use the palette without FeatureFramework:

<dependency>
  <groupId>nl.hauntedmc.theme</groupId>
  <artifactId>hauntedmc-theme-palette</artifactId>
  <version>1.0.0</version>
</dependency>

FeatureFramework hosts can depend on the adapter instead; it brings in the palette transitively:

<dependency>
  <groupId>nl.hauntedmc.theme</groupId>
  <artifactId>hauntedmc-theme-featureframework</artifactId>
  <version>1.0.0</version>
</dependency>

Register the theme while building a FeatureFramework host:

PaperFeatureHost.builder(plugin, Api.class, features)
        .theme(HauntedMcTheme.theme())
        .build();

Localization can then use persistent colours or scoped effects:

<HauntedMC:Brand>◆ Friends  <HauntedMC:Text>No friends are online

For code that builds Adventure components directly:

Component.text("Success", HauntedMcColor.SUCCESS.textColor());
Item Colour
Brand #A855F7
Accent #38BDF8
Success #4ADE80
Warning #FACC15
Error #FB7185
Muted #94A3B8
Text #E2E8F0

Identifiers are resolved case-insensitively by FeatureFramework. Both artifacts are libraries, not server plugins; applications should include them in their distributable jar. The palette has a provided Adventure API dependency, which Paper and Velocity already supply.

Build and release

Run ./mvnw verify for the complete quality gate. Use ./update_version.sh major|minor|patch from a clean worktree to prepare a local release commit and tag. Publishing uses the github Maven server configured by the release workflow.

For a coordinated stack release, publish FeatureFramework first, then Theme, DataProvider, DataRegistry, and finally ServerFeatures and ProxyFeatures. This follows the dependency graph and keeps every downstream build resolvable from GitHub Packages.

Contributing and support

License

This project is licensed under the GNU Affero General Public License v3.0.

About

HauntedMC Theme Repository

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages