Interface Property<T>

All Known Implementing Classes:
Property.Enumeration, Property.Map, Property.Singleton

public sealed interface Property<T> permits Property.Enumeration<E>, Property.Singleton<T>, Property.Map<K,V>

Properties

An Property represent either...

  • a config option to adjust the behaviour of JDA-Commands (like JDACBuilder.shutdownJDA(boolean))
  • an implementation of exposed services (like Localizer)
  • or a service provided by the framework that are exposed to the user (like I18n)

Although the user can provide custom values for these properties, the properties itself are all defined by the JDA-Commands and exposed as public static fields in this interface.

Categories

Properties are primarily categorized by 3 groups:

Types

Additionally, there are 3 types of properties:

The only exception to this general accumulation rule are fallback values. Whether they are accumulated with other providers or overwritten is defined by fallbackBehaviour().

Stages

A Property's value is only set during some stages during the frameworks runtime and in the process of execution user interactions. To know in what stage a property's value is accessible take a look at the fields IntrospectionAccess annotation