animatedarchitecture 0.7.2 API

Welcome to the Javadocs API for the AnimatedArchitecture project.

The AnimatedArchitecture API provides a way of hooking into the AnimatedArchitecture plugin. This allows you to control many aspects of the plugin, such as: Interacting with structures, react to events, initiate animations, extend the animated blocks, etc.

In this overview, we will introduce some of the key concepts you will encounter when using the Animated Architecture API. The documentation here is not meant to be a complete reference, but rather a quick introduction. It is recommended to read the documentation of the classes and packages you are interested in to get a better understanding of the API.

Animated Architecture Platform

Perhaps the most important class to know about when getting started with the API is the IAnimatedArchitecturePlatform. It provides access to many of the core features of the plugin.

The way to obtain an instance of the platform depends on the platform you are using. For Spigot, you can find an example in the Spigot core package.

Structures

The most important concept in the AnimatedArchitecture API is the structure. A structure is an abstract representation of a collection of blocks that can be animated. The most common representation of a structure is the Structure class, but there are representations, such a snapshots, immutable structures, etc.

It is recommended to read the documentation of the Structure package to get a better understanding of the structure concept.

Instead, you should use the StructureRetriever class to obtain instances of structures. The StructureRetriever class provides a number of methods to retrieve structures from the database.

When you want to make changes to a structure, you should use commands when making the changes on behalf of a player. If not, you should remember to synchronize the changes with the database. More information about this can be found in the Structure package.

Structure Retrievers

Structure retrievers are used to retrieve structures from the database. They are the recommended way of obtaining an instance of a structure. The retrievers are created using the factory class.

The factory allow you to create retrievers in a number of ways. For example, you can create a structure retriever from a structure's name, by its ID, or by its pre-existing instance.

The structure retrievers contain several methods to obtain the instance or instances of the structure(s) they refer to. For example, you can get a list of all structures they refer to, or only those owned by a specific player, or only get a single structure in case the retriever refers to exactly structure.

More information about the structure retrievers can be found in the retriever package.

Commands

Commands are the preferred way of making changes to structures. They allow you to make changes on behalf of a player.

More information and examples about commands can be found in the commands package.

Animation Hooks

The API includes two types of animation hooks that allow you to add custom behaviour either to the animations themselves or to the animated blocks that together make up an animation. More information about the animation hooks can be found in the animatedblock package.

Events

The API includes a number of events that allow you to react to certain events. For example, you can react to the creation of a structure, to the start of an animation, or to the deletion of a structure.

The way to use the events depends on the platform you are using. For Spigot, you can find an example in the event package for Spigot.

A full list of events can be found in the event package.

Packages
Package
Description
This package contains the core logic for animating structures..
This package contains annotations used by this project.
This package contains various APIs used throughout the project, including definitions for animated blocks, colors, debugging, factories, highlighted block spawners, the platform interface, and more.
This package contains various interfaces and classes used to define animated blocks.
This package contains classes and interfaces used for debugging.
This package contains various factories for creating objects used in the project.
Contains classes and interfaces used to easily restart objects.
This package contains the audio system used in this project, including audio animation hooks, audio set configurations, audio descriptions, and audio players.
This package contains command definitions and command factories used by this project, as well as various base command classes and interfaces.
This package contains classes that implement various caching mechanisms.
This package contains classes that implement timed cache mechanisms.
This package contains all the classes related to graph-based storage such as the DirectedAcyclicGraph (DAG).
Contains interfaces and classes for handling events related to AnimatedArchitecture structures.
Contains our custom exceptions.
Contains classes for loading structure types from external sources.
Contains classes for localizing text in the plugin.
This package contains managers that manage different certain aspects of the plugin.
This package contains storage-related classes, including storage interfaces, SQLite database storage classes, and more.
Contains the storage implementation for SQLite.
This package contains classes that define, manipulate, and manage structures.
This package contains classes that represent properties of structures.
This package contains classes and interfaces related to retrieving structures from the database.
Contains interfaces for structures that define certain archetypes of structures.
This package contains text-related utilities used for communication with users.
Contains the classes for the tool users system.
The creator package contains classes that are responsible for creating structures.
Contains the StepExecutor class and its subclasses.
This package contains utility classes and interfaces that are used throughout the project.
This package contains classes and interfaces related to handling and processing delayed input requests.
This package contains classes related to functional programming, such as versions of Function, Supplier, and BiFunction that throw checked exceptions.
This package contains classes related to processing project updates.
This package contains classes related to vectors, including various types of 2D and 3D vectors, as well as utilities for working with these vectors.
Set of classes related to versioning of this project.
The AnimatedArchitecture Spigot core module contains classes and interfaces specific to the Spigot platform.
Implementations of animation-related objects for the Spigot platform that do not use version-specific code.
Contains classes that are used to recover data from animated blocks in case they end up in a state4 where this plugin has lost track of them.
This package contains classes responsible for handling commands.
This package contains classes responsible for handling the configuration files used by the plugin.
This package contains implementations for all event-related classes for the AnimatedArchitecture plugin for the Spigot platform as well as utilities to call events.
This package contains custom exception classes for the AnimatedArchitecture plugin for the Spigot platform.
This package contains all GUI-related classes for the AnimatedArchitecture plugin for the Spigot platform.
This package contains classes responsible for providing compatibility with various third-party plugins.
This package contains classes that provide implementations for various interfaces in the core module for the Spigot platform.
This package contains all classes for event listeners for various types of events for the AnimatedArchitecture plugin for the Spigot platform.
Contains classes that manage various aspects of the plugin specifically for the Spigot platform, such as redstone management and vault economy integration.
This package contains the bundle that contains all protection hooks.
This package contains the protection hook for GriefDefender 2.
This package contains the protection hook for GriefPrevention.
This package contains the protection hook for Lands.
This package contains the protection hook for PlotSquared 6.
This package contains the protection hook for PlotSquared 7.
This package contains the protection hook for RedProtect.
This package contains the protection hook for Towny.
This package contains the protection hook for WorldGuard 7.
Provides utility classes that depend on the Spigot API and can be used by all modules for the Spigot platform.
Contains various APIs used by AnimatedArchitectureSpigot that need to be implemented by a sub-platform.
Contains a set of utility classes that provide compatibility with other plugins.
Provides implementations of AnimatedArchitecture core interfaces that can be used by all modules for the Spigot platform.
Provides utility classes and Text implementations that depend on the Spigot API and can be used by all modules for the Spigot platform.
Contains all version-specific code for the Spigot v1_20 platform.
Contains all version-specific code for the Spigot v1_21 platform.
This package contains all the data for the big door structure type.
This package contains all the data for the clock structure type.
This package contains all the data for the drawbridge structure type.
This package contains all the data for the flag structure type.
This package contains all the data for the garage door structure type.
This package contains all the data for the portcullis structure type.
This package contains all the data for the revolving door structure type.
This package contains all the data for the sliding door structure type.
This package contains all the data for the windmill structure type.
This package contains a set of utility classes and methods that are only used for the unit and integration tests in the other modules.
This package contains a set of classes and utilities to capture and test logs in JUnit tests.
This package contains a set of utility classes and methods used for reflection.
The package contains general-purpose utilities that are not directly related to the AnimatedArchitecture project.
Contains some utility classes for generating code.
This package contains a set of utilities the for logging framework.
This package contains a custom backend for Flogger.
This package contains a set of tools that makes reflection lookups easier.