Alpine Core
A modern framework for developing Minecraft server plugins.

What is AlpineCore?
Inspired by MassiveCore, AlpineCore has a few key goals:
- Reduce boilerplate
- Integrate modern technologies
- Maintain high compatibility
- Java 8 minimum
- Minecraft 1.8.8 minimum
- Spigot minimum
Systems
AlpineCore consists of the following core systems:
- Engines
- Extended from
AlpineEngine
- An event listener that is automatically registered
- Integrations
- Extended from
AlpineIntegration
- Engines that only activate under configurable conditions, such as the presence of an external plugin
- Configurations
- Extended from
AlpineConfig
- A collection of settings that is automatically registered and persisted
- Utilizes a fork of Exlll's ConfigLib to provide a smooth configuration experience for both developers and administrators
- Pre-written integrations with common configuration use cases, including messages compatible with Kyori's Adventure
- Storage
- Extended from
AlpineStore
- Handles persistent key + data pairs backed by a configurable storage system
- Commands
- Extended from
AlpineCommand
- A server command that is automatically registered
- Includes a more convenient API for registering completions and conditions
- Utilizes LiteCommands to enable the efficient creation of complex command structures
- User Interfaces
- Provides an advanced inventory GUI framework designed for simplicity, with recipe-like slot mask configuration for element placement
- Allows the efficient creation of interactive user interfaces in the plugin
- Utilizes
UIHandler to initialize the menu to handle user interactions
- Teleportation
- Managed by
TeleportManager
- Provides a centralized system for point-to-point teleportation
- Curate a teleportation sequence with the
TeleportTask builder
- Handle the lifecycle of a teleportation request, from initialization to the execution
- Add a countdown, event handlers, & cancellation policies
- Events
- Extended from
AlpineEvent
- A generic Bukkit event, minus the boilerplate
For Developers
To use AlpineCore, you must add it as a dependency to your project:
Gradle (Kotlin DSL)
repositories {
maven("https://lib.alpn.cloud/releases")
}
dependencies {
compileOnly("co.crystaldev:alpinecore:0.4.9")
}
Gradle (Groovy DSL)
repositories {
maven {
url 'https://lib.alpn.cloud/releases'
}
}
dependencies {
compileOnly 'co.crystaldev:alpinecore:0.4.9'
}
Maven
<repositories>
<repository>
<name>Alpine Public</name>
<url>https://lib.alpn.cloud/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>co.crystaldev</groupId>
<artifactId>alpinecore</artifactId>
<version>0.4.9</version>
</dependency>
</dependencies>