-
Notifications
You must be signed in to change notification settings - Fork 7
Installation
EverNifeCore is used two ways: server owners install it as a plugin (other plugins depend on it), and developers compile against its API to build those plugins. Both are below.
EverNifeCore is a normal Bukkit/Spigot/Paper plugin - it is a library that other plugins list as a dependency, plus a few admin commands (storage transfer, accounts, cooldowns, locale).
- Download
EverNifeCore-<version>.jarfrom the project's Releases page. - Drop it into your server's
plugins/folder, or 'mods/' folder if on Hytale. -
Restart the server - do not
/reload. EverNifeCore loads runtime libraries and initializes storage during enable; a live/reloadis not a supported way to bring it up. - On first boot it creates
plugins/EverNifeCore/(ormods/EverNife_EverNifeCore/) withconfig.ymlandstorage.yml. By default player data is stored in local files, so it works with zero configuration. To move it onto a real database, see Storage Backends.
EverNifeCore is provided at runtime by the server (the installed plugin), so you compile against
it with compileOnly and never bundle it into your own JAR.
The common case is a single Bukkit plugin. Depend on evernifecore-minecraft - it is a shaded
fat jar that already carries the platform-agnostic common API, so you need only this one coordinate:
repositories {
mavenCentral()
maven { url = 'https://maven.petrus.dev/public' }
}
dependencies {
// Provided at runtime by the installed EverNifeCore plugin.
compileOnly 'br.com.finalcraft:evernifecore-minecraft:3.0.1'
}<repositories>
<repository>
<id>petrus-public</id>
<url>https://maven.petrus.dev/public</url>
</repository>
</repositories>
<dependency>
<groupId>br.com.finalcraft</groupId>
<artifactId>evernifecore-minecraft</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>If you split your plugin into a platform-agnostic common module (business logic that runs on both
Bukkit and Hytale, never importing platform types), that module compiles against the shared API only:
dependencies {
// The RELOCATED view - Jackson resolves to the same br.com.finalcraft.everydatabase.libs.jackson.*
// names the deployed core carries at runtime, so the schema-migration API links.
compileOnly 'br.com.finalcraft:evernifecore-common-relocated:3.0.1'
}Your minecraft module then bundles that common module and keeps evernifecore-minecraft external
(compileOnly), and your hytale module does the same against the Hytale build. The published module
coordinates are:
| Artifact | Use it in |
|---|---|
br.com.finalcraft:evernifecore-minecraft:3.0.1 |
your Bukkit module (fat jar, carries common) |
br.com.finalcraft:evernifecore-common-relocated:3.0.1 |
your platform-agnostic common module |
The layout of these modules is on Project Layout.
Declare EverNifeCore as a hard dependency so the server loads it first:
name: MyPlugin
version: 1.0.0
main: com.example.myplugin.MyPlugin
api-version: 1.13
depend: [EverNifeCore]- Quick Start - a minimal plugin end to end.
- Project Layout - the Gradle modules and the deployable JAR.
- Building from Source - compile EverNifeCore itself.
EverNifeCore · Home · made by Petrus Pradella
Getting Started
Commands & Text
Player Data & Storage
- PlayerData & PDSections
- Accounts
- Storage Backends
- Inline Backends for Plugins
- Legacy Data Migration
- Cooldowns
Config & Minecraft Systems
- Configuration
- Scheduler & Threading
- Items & NBT
- GUI Framework
- Integrations
- Economy
- Version Compatibility
Architecture & Reference