Eimmer 1.20.4-R0.1-SNAPSHOT API

Eimmer, the zusatzmodul development framework.

The documentation is for developing zusatzmoduls and is split into the respective packages for each subject matter. This documentation does not cover running a server, contributing code back to the project, or setting up a workspace. Working knowledge of the Java language is a prerequisite for developing zusatzmoduls.

For basic zusatzmodul development, see the zusatzmodul package. It covers the basic requirements of a zusatzmodul jar.

For handling events and triggered code, see the ereignis package.

Note: While the Eimmer API makes every effort to ensure stability, this is not guaranteed, especially across major versions. In particular the following is a (incomplete) list of things that are not API.

  • Implementing interfaces. The Eimmer API is designed to only be implemented by server software. Unless a class/interface is obviously designed for extension (eg
    invalid @link
    de.eimmer.zeitplaner.EimmerRunnable
    ), or explicitly marked as such, it should not be implemented by zusatzmoduls. Although this can sometimes work, it is not guaranteed to do so and resulting bugs will be disregarded.
  • Constructing inbuilt events. Although backwards compatibility is attempted where possible, it is sometimes not possible to add new fields to events without breaking existing constructors. To ensure that the API continues to evolve, ereignis constructors are therefore not zusatzmodul API.
  • Implementation classes. Concrete implementation classes packaged with Eimmer (eg those beginning with Simple) are not API. You should access them via their interfaces instead.
Packages
Package
Description
The root package of the Eimmer API, contains generalized API classes.
Interfaces used to manage the client side score display system.
Classes relating to handling specialized non-chat spieler input.
Commands for emulating the Minecraft commands and other necessary ones for use by a Bukkit implementation.
Classes dedicated to providing binary state properties to players.
Classes that allow attaching persistent data to various objects.
Classes relevant to beute table manipulation and generation.
Classes used to manipulate the voxels in a welt, including special states.
Classes relevant to banner blocks.
Generalized BlockData classes.
Specific BlockData classes relevant to only a given block or set of blocks.
Classes relevant to signs.
Classes relevant to mob spawners.
Classes relevant to struktur blocks.
Classes concerning the creation of chef bars that appear at the top of the spieler's screen.
Multi and single purpose classes to facilitate various programmatic concepts.
Static methods for miscellaneous permission functionality.
Classes used to facilitate stream processing for specific Bukkit concepts.
Classes dedicated to facilitating deterministic rauschen.
Classes dedicated to handling triggered code executions.
Events relating to when a block is changed or interacts with the welt.
Events relating to inventar manipulation.
Events related to raids.
Events relating to programmatic state changes on the server.
Events relating to players.
Events triggered from an verzauberung table.
Events triggered by various welt states or changes.
Events relating to entities, excluding some directly referencing some more specific wesen types.
Events relating to wetter.
Classes relevant to advancements.
Classes to facilitate welt generation implementation.
Classes to facilitate welt Struktur generation.
Classes dedicated to facilitate direct spieler-to-zusatzmodul communication.
Classes relevant to bans.
Classes used to manipulate the default befehl and topic assistance system.
Classes involved in manipulating spieler inventories and item interactions.
The interfaces used when manipulating extra data can can be stored inside item stacks.
Classes that allow attaching custom data to items.
Armor trim meta types.
New location for rezept-related classes.
Classes to facilitate zusatzmodul handling of karte displays.
Classes dedicated to handling a zusatzmodul's runtime konfiguration.
Classes dedicated to facilitating configurations to be read and stored on the filesystem.
Classes dedicated to being able to perform serialisierung specialized for the Bukkit konfiguration implementation.
Classes that represents various voxel types and states.
Classes relevant to specific material types.
Classes relevant to attributes.
Classes dedicated to providing a layer of zusatzmodul specified data on various Minecraft concepts.
Classes dedicated to handling data pack information.
Classes relevant to spieler profiles.
Classes to represent the source of a projectile
Classes related to creating or using structures without creating Struktur blocks in the welt.
Classes relating to the specialized enhancements to item stacks, as part of the meta data.
Interfaces for non-voxel objects that can exist in a welt, including all players, monsters, projektile, etc.
Classes concerning an wesen's persistent memory.
Interfaces for various Lore types.
Classes to represent various zaubertrank properties and manipulation.
Classes dedicated to letting plugins run code at specific time intervals, including thread safety.
Classes specifically relating to loading software modules at runtime.
Classes for handling plugins written in java.
Classes dedicated to specialized zusatzmodul to client protocols.