ElvenideCore

A powerful developer library for PaperMC that eliminates boilerplate and provides high-level APIs for modern Minecraft development.

ElvenideCore is a comprehensive development framework designed to streamline the creation of Minecraft plugins for PaperMC. It acts as a robust foundation, eliminating repetitive boilerplate code and providing high-level, expressive APIs for commands, items, GUIs, and task management.

Key Features

  • Boilerplate Reduction: Replaces traditional Bukkit events and task scheduling with clean, fluent APIs.
  • Expressive Command System: A Brigadier-based, object-oriented command API with full support for subcommands and auto-completion.
  • Advanced UI Framework: Tools for creating complex, paginated GUI menus without manual slot calculations or math.
  • Enhanced Configuration: A drop-in replacement for YAML configs that supports complex Minecraft types like Materials, Sounds, and Colors natively.
  • Feature Providers: A modular "Provider" architecture that grants easy access to logging, permissions, tasks, and item builders.

Technology Stack

  • Platform: PaperMC (1.21+)
  • Language: Java
  • Distribution: JitPack (Maven/Gradle)

Getting Started

Elvenide Core is designed to be shaded into your plugin:

  1. Add Repository: Add JitPack to your pom.xml:

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
    
  2. Add Dependency:

    <dependency>
        <groupId>com.elvenide</groupId>
        <artifactId>ElvenideCore</artifactId>
        <version>TAG</version>
        <scope>compile</scope>
    </dependency>
    
  3. Shade:

    <build>
      <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.5.3</version>
              <executions>
                  <execution>
                      <phase>package</phase>
                      <goals>
                          <goal>shade</goal>
                      </goals>
                  </execution>
              </executions>
              <configuration>
                  <relocations>
                      <relocation>
                          <pattern>com.elvenide.core</pattern>
                          <shadedPattern>com.your.path.elvenide.core</shadedPattern>
                      </relocation>
                  </relocations>
                  <filters>
                      <filter>
                          <artifact>*:*</artifact>
                          <excludes>
                              <exclude>META-INF/**</exclude>
                          </excludes>
                      </filter>
                  </filters>
              </configuration>
          </plugin>
      </plugins>
    </build>
    
  4. Initialize: Set your plugin instance in your onEnable method:

    @Override
    public void onEnable() {
        Core.plugin.set(this);
    }
    
  5. Docs: You can now begin using ElvenideCore. See the documentation here for more information.