Skip to content

Installation

Petrus Pradella edited this page Jul 27, 2026 · 3 revisions

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.


For server owners

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).

  1. Download EverNifeCore-<version>.jar from the project's Releases page.
  2. Drop it into your server's plugins/ folder, or 'mods/' folder if on Hytale.
  3. Restart the server - do not /reload. EverNifeCore loads runtime libraries and initializes storage during enable; a live /reload is not a supported way to bring it up.
  4. On first boot it creates plugins/EverNifeCore/ (or mods/EverNife_EverNifeCore/) with config.yml and storage.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.

For plugin developers

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.

Gradle

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'
}

Maven

<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>

Multi-platform (common module)

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.

The plugin.yml

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]

See also

Clone this wiki locally