AlpineCore
A modern framework for developing Minecraft server plugins.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
AlpineCore
What is AlpineCore?
Inspired by MassiveCore, AlpineCore has a few key goals: - Reduce boilerplate - Integrate modern technologies - Adventure - LiteCommands - ConfigLib - 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)
```kotlin repositories { maven("https://lib.alpn.cloud/releases") }
dependencies { compileOnly("co.crystaldev:alpinecore:0.4.9") } ```
Gradle (Groovy DSL)
```groovy repositories { maven { url 'https://lib.alpn.cloud/releases' } }
dependencies { compileOnly 'co.crystaldev:alpinecore:0.4.9' } ```
Maven
```xml <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> ```