AlpineCore
A modern framework for developing Minecraft server plugins.
AlpineCore
<div align="center">
Alpine Core
A modern framework for developing Minecraft server plugins.
</div>
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> ```