All Classes and Interfaces

Class
Description
A class that represents a configuration file
This is an extension of a YamlConfiguration, so all get, set, and put methods are available.
 
 
 
 
 
 
 
 
 
 
 
 
This is the abstract adapter for all "KamiCommon structures".
 
 
 
Abstract base class for configuration caches that automatically reload when the underlying config changes.
 
 
 
 
KamiCommand implementation that lists all features in the provided KamiPlugin (see constructor).
Construct an instance of this class and register it under your own KamiCommand class.
 
 
 
KamiCommand implementation that lists all modules in the provided KamiPlugin (see constructor).
Construct an instance of this class and register it under your own KamiCommand class.
 
 
 
 
 
 
 
 
Utility for mapping String objects into VersionedComponent objects, handling both legacy color codes and modern MiniMessage format.

See individual methods for specific parsing behavior.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This object contains the data for an AbstractConfig yaml comment.
This is a utility class for creating and saving configurations in a JavaPlugin
Interface for classes that want to be notified when a config is updated.

You should register this observer with a ObservableConfig class.
Represents a source of configuration data that can provide an InputStream for reading
and may optionally support writing/persistence.

Typical implementations:
- File-backed source (writable)
- Provider/remote/in-memory source (read-only)

Contract notes:
- Each call to ConfigSource.openStream() should return a fresh stream positioned at the start.
- If ConfigSource.isWritable() is false, ConfigSource.write(byte[], Charset) must throw UnsupportedOperationException.
- ConfigSource.ensureExistsIfWritable() should create any required backing structures for writable sources.
- ConfigSource.asFileIfPresent() returns a File only for file-backed sources; otherwise null.
Marks a class as a configuration holder that contains static configuration values, getters, and setters for its enclosing class.
 
 
 
 
 
 
The ContainerUtil provides an imaginary super class to Collection and Map.
A set of core methods that both KamiPlugin and Module must follow and implement to make their APIs interchangeable.
 
Encapsulates the default value configuration for a Parameter.
 
 
 
 
 
 
 
 
 
 
 
 
A simple class for sending discord webhooks, supports basic embeds and such
 
 
 
 
 
 
This class represents a single feature registered under your KamiPlugin plugin.
A feature is a subsystem that acts like its own plugin, providing its own functionality and configuration.
Features cannot be disabled or toggled, they are always enabled.
For a subsystem that can be toggled or disabled, see Module.
 
 
A ConfigSource implementation that reads from and writes to a file on the filesystem.

Supports both read and write (save) operations.
Represents a layout for a PaginatedMenu where the available slots for page icons are defined as the grid between two positions (PositionIconSlot)
 
 
 
 
 
 
 
Identification of a CommandSender can be done in 4 different ways.
 
 
A builder class for wrapping ItemStacks and applying patches to them.
Patches modify the base metadata and nbt of the item via easier to use methods exposed by this class.

NOTE: Using third party plugins like ItemsAdder which provide custom items IS SUPPORTED!
Just adjust your workflow to parse the ItemStack from their API, and then use that object as the prototype for this wrapper:
 
Loader to assist in automatically extracting ItemBuilders from configuration sections.

Supports the KamiConfig system, requiring a ConfigurationSection object to load from.
 
 
 
Message and Color configuration for KamiCommand messages.
 
Basic configuration for the help command.
 
 
 
 
 
 
A class that represents a configuration file (Meant for implementations WITH a JavaPlugin object available)
If you DO NOT have a JavaPlugin object, it is recommended to use StandaloneConfig instead
This is an extension of a YamlConfiguration, so all get, set, and put methods are available.
KamiConfig but with some extended features
This subclass adds better constructors.
This subclass adds better constructors.
 
 
This subclass adds better constructors.
This subclass adds better constructors.
 
 
Legacy methods related to ChatColor and legacy color codes.
A legacy color-code translator for Minecraft-style formatting codes.
Translates the alternate code character & into the legacy section sign (§) and optionally expands 1.16+ hex color codes of the form &#RRGGBB into the §x§R§R§G§G§B§B sequence used by legacy clients.
Notes:
- This API is marked @Obsolete.
Simple colored logger that automatically parse legacy color codes using the section symbol (§) or ampersand (&).

This logger is designed for use in Bukkit/Spigot/Paper plugins, and will prepend the plugin name to each message.

It supports different log levels, and will colorize the output accordingly:
- DEBUG (Level.FINE): Gray
- INFO (Level.INFO): No colorization
- WARNING (Level.WARNING): Yellow
- SEVERE (Level.SEVERE): Red

Note: The logger does not currently support other log levels.
A simple logger service that provides an abstraction for where to log messages.

Override LoggerService.logToConsole(java.lang.String, java.util.logging.Level) to change how log messages are processed.
A Utility class to provide some helper methods when dealing with the Material Flattening changes.
These methods make no guarantee to EXACTLY map your intentions, but they try their best.
 
 
 
Represents the abstraction of a menu into the core parts that MenuManager needs to interact with.
This interface is not meant for public consumption or use, you will find none of the helpful methods you would expect.

Use specific menus classes like SimpleMenu or PaginatedMenu
 
Data class to hold information about a click event on a Menu.
 
 
A container for all the events that can be added to a Menu.
The underlying Map can be accessed directly with getters for each callback type.
Additional helper methods are provided to add callbacks.
InventoryHolder with constructor parameters for making an Inventory with either a row count or an InventoryType.
Also contains a few utility methods for better utilization with the KamiCommon library.
Represents a menu icon that can contains the ItemStack data as ItemBuilder
This class also holds the click data for the icon, and the auto updating logic for the icon
Basic configuration for MenuIcon defaults.
 
 
Represents a modifier for a MenuIcon.
 
This manager is responsible for handling all Menu interactions.
Developers should not need to interact with this class directly, only through specific menu classes like SimpleMenu or PaginatedMenu.
 
A container for all the options that every Menu must allow to be configured.
Use Getters and Setters to access and modify these options.
 
Represents the size of a menu.
Can either be a MenuSizeRows, or MenuSizeType.
 
 
 
 
Deprecated.
 
A utility class for sending building messages built from a config.
 
 
A cross-version MiniMessage parser and messenger.
 
 
 
 
 
 
 
This class represents a single module registered under your KamiPlugin plugin.
A module is a toggleable subsystem that acts like its own plugin, providing its own functionality and configuration.
For a subsystem that cannot be toggled or disabled, see Feature.
 
 
 
 
 
 
 
 
 
Interface for classes that accept ConfigObserver registrations.

See ObservableConfig.registerConfigObserver(ConfigObserver).
This Menu class focuses on providing a simple menu that allows for only one single click per opening.
 
Utility class for loading a OneClickMenu.Builder from a ConfigurationSection.
A container for all the options that every OneClickMenu must allow to be configured.
Use Getters and Setters to access and modify these options.
 
 
This Menu class focuses on providing an easy way of creating a menu with multiple pages.
 
Utility class for loading a PaginatedMenu.Builder from a ConfigurationSection.
 
A container for all the options that every PaginatedMenu must allow to be configured.
Use Getters and Setters to access and modify these options.
 
Utility class to paginate a list of objects.
Represents the layout of a PaginatedMenu
This is just a helpful class to store an object of two objects.
 
 
 
 
Represents the type of operation to be performed in a patch.

VALUES:
- ADD: Adds a new element or modifies an existing one.
- REMOVE: Removes an existing element.
 
 
Data class to hold information about a click event occurring inside a Player's Inventory.
 
 
 
Utility class for helping with players You can give items (which drop near them if they are full), and clean their inventory (with or without armor)
 
Some basic preconditions for when the Google preconditions are not available on the classpath
 
 
 
 
 
 
 
 
 
 
 
Represents a MenuIcon, but with an additional priority value
 
# Introduction PS stands for PhysicalState.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This Menu class focuses on providing a simple single-frame menu.
 
Utility class for loading a SimpleMenu.Builder from a ConfigurationSection.
A container for all the options that every SimpleMenu must allow to be configured.
Use Getters and Setters to access and modify these options.
Represents the simplest layout for a PaginatedMenu.
This layout is defined by: A 1 block gap (border) at the top of the menu where no items are placed. A 1 block gap (border) at the left and right of the menu where no items are placed. The last row is reserved for the pagination controls. The second to last row is also a gap (border) row, such that the remaining rows in between are used for the page items. NOTE: This layout only supports menu sizes that have at least 4 rows.
 
A utility class for soft PlaceholderAPI integration

This class will utilize PlaceholderAPI if it is present on the server, safely ignoring replacements if it is not.
 
 
 
A class that represents a configuration file (Meant for implementations WITHOUT a JavaPlugin object available)
If you have a JavaPlugin object, it is recommended to use @KamiConfig instead
This is an extension of a YamlConfiguration, so all get, set, and put methods are available.
StandaloneConfig but with some extended features
A stateful modifier for an icon's ItemBuilder it wants to place in a menu.
The StatefulIconModifier.modify(com.kamikazejam.kamicommon.item.ItemBuilder, org.bukkit.inventory.ItemStack, org.bukkit.entity.Player, int) method also provides the existing item in the menu (if it exists) and the Player viewing the menu.
A static modifier for an icon's ItemBuilder it wants to place in a menu.
 
A ConfigSource implementation that reads from a predefined yaml string in memory.

Supports ONLY read operations.
 
 
Utility methods for working with text strings.
 
 
 
This is just a helpful class to store an object of three objects.
 
 
 
 
 
Message and Color configuration for TypeAbstractChoice chat responses.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents a OfflinePlayer seen before by this server, accessible through the Bukkit API via UUID.
 
Represents a Player currently logged into this server, accessible through the Bukkit API.
 
 
Represents a Player currently logged into this server, accessible through the Bukkit API.
 
 
 
 
 
 
 
This command is used to log unmatched arguments.