BitAspire Wiki
SIRSIR

SIR API & Published Packages

Published Maven coordinates, module packages, command packages, and Java package map for SIR.

Published Maven repository

The SIR publish workflow deploys the API jar, individual module jars, individual command-provider jars, and two aggregate POMs to the CroaBeast Maven repository.

The main plugin jar, SIR-2.1.1.jar, is uploaded as a GitHub Actions artifact by the workflow. It is not deployed as a Maven library artifact.

https://croabeast.github.io/repo/

Core API dependency

Use this coordinate when you are compiling an integration, command provider, module, or SIR+ addon against the shared API.

Gradle Kotlin

val sirVersion = "2.1.1"

repositories {
    maven("https://croabeast.github.io/repo/")
}

dependencies {
    implementation("com.bitaspire.sir:api:$sirVersion")
}

Gradle Groovy

def sirVersion = '2.1.1'

repositories {
    maven { url = uri('https://croabeast.github.io/repo/') }
}

dependencies {
    implementation "com.bitaspire.sir:api:$sirVersion"
}

Maven

<repositories>
  <repository>
    <id>croabeast</id>
    <url>https://croabeast.github.io/repo/</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>com.bitaspire.sir</groupId>
    <artifactId>api</artifactId>
    <version>2.1.1</version>
  </dependency>
</dependencies>

Published API artifact

GroupArtifactPackagingCoordinate
com.bitaspire.sirapijarcom.bitaspire.sir:api:2.1.1

If your build creates fat jars or shaded jars, verify the final artifact before release. Normal addons and integrations should compile against SIR API, not bundle a second private copy of the API classes.


Published module artifacts

The workflow publishes each module jar under com.bitaspire.sir.module.

val sirVersion = "2.1.1"

repositories {
    maven("https://croabeast.github.io/repo/")
}

dependencies {
    implementation("com.bitaspire.sir.module:channels:$sirVersion")
    implementation("com.bitaspire.sir.module:moderation:$sirVersion")
}
ArtifactCoordinate
advancementscom.bitaspire.sir.module:advancements:2.1.1
announcementscom.bitaspire.sir.module:announcements:2.1.1
channelscom.bitaspire.sir.module:channels:2.1.1
cooldownscom.bitaspire.sir.module:cooldowns:2.1.1
discordcom.bitaspire.sir.module:discord:2.1.1
emojiscom.bitaspire.sir.module:emojis:2.1.1
join-quitcom.bitaspire.sir.module:join-quit:2.1.1
logincom.bitaspire.sir.module:login:2.1.1
mentionscom.bitaspire.sir.module:mentions:2.1.1
moderationcom.bitaspire.sir.module:moderation:2.1.1
motdcom.bitaspire.sir.module:motd:2.1.1
tagscom.bitaspire.sir.module:tags:2.1.1
vanishcom.bitaspire.sir.module:vanish:2.1.1

Module aggregate POM

The workflow also publishes com.bitaspire.sir.module:all:2.1.1 as a POM-only aggregate dependency containing all module artifacts.

Gradle:

dependencies {
    implementation("com.bitaspire.sir.module:all:$sirVersion@pom")
}

Maven:

<dependency>
  <groupId>com.bitaspire.sir.module</groupId>
  <artifactId>all</artifactId>
  <version>2.1.1</version>
  <type>pom</type>
</dependency>

Published command artifacts

The workflow publishes each command-provider jar under com.bitaspire.sir.command.

val sirVersion = "2.1.1"

repositories {
    maven("https://croabeast.github.io/repo/")
}

dependencies {
    implementation("com.bitaspire.sir.command:message:$sirVersion")
    implementation("com.bitaspire.sir.command:mute:$sirVersion")
}
ArtifactCoordinate
clear-chatcom.bitaspire.sir.command:clear-chat:2.1.1
colorcom.bitaspire.sir.command:color:2.1.1
ignorecom.bitaspire.sir.command:ignore:2.1.1
messagecom.bitaspire.sir.command:message:2.1.1
mutecom.bitaspire.sir.command:mute:2.1.1
nickcom.bitaspire.sir.command:nick:2.1.1
printcom.bitaspire.sir.command:print:2.1.1
settingscom.bitaspire.sir.command:settings:2.1.1

Command aggregate POM

The workflow also publishes com.bitaspire.sir.command:all:2.1.1 as a POM-only aggregate dependency containing all command-provider artifacts.

Gradle:

dependencies {
    implementation("com.bitaspire.sir.command:all:$sirVersion@pom")
}

Maven:

<dependency>
  <groupId>com.bitaspire.sir.command</groupId>
  <artifactId>all</artifactId>
  <version>2.1.1</version>
  <type>pom</type>
</dependency>

Entry point

Use SIRApi.instance() as the main access point once SIR has initialized.

import com.bitaspire.sir.SIRApi;
import com.bitaspire.sir.command.CommandManager;
import com.bitaspire.sir.user.UserManager;

SIRApi api = SIRApi.instance();
UserManager users = api.getUserManager();
CommandManager commands = api.getCommandManager();

SIRApi#getAddonManager() is available in SIR+. Base SIR exposes the method in the shared API, but the default implementation throws UnsupportedOperationException because addon management belongs to SIR+.


Java package map

These are Java packages inside the SIR API jar. They are not the same thing as the Maven artifacts above.

Java packageUse it forMain public types
com.bitaspire.sirShared entry points, extension contracts, helper abstractions, listener and PlaceholderAPI utilitiesSIRApi, SIRExtension, Config, Information, PermissibleUnit, PluginDependant, Listener, PAPIExpansion, ExtensionFile, UserFormatter<T>
com.bitaspire.sir.addonSIR+ addon lifecycle, addon metadata, and addon manager accessSIRAddon, AddonManager, AddonInformation
com.bitaspire.sir.channelCurrent chat-channel contract used by the modern channels module and SIR+ChatChannel, Access, Audience, Style, Logging, Click
com.bitaspire.sir.commandCommand-provider extensions, SIR-aware commands, command metadata, and command stateCommandProvider, SIRCommand, StandaloneProvider, CommandManager, SettingsService, CommandFile, ProviderInformation
com.bitaspire.sir.moduleModule extensions, module metadata, module manager access, and built-in module service bridgesSIRModule, ModuleManager, ModuleInformation, JoinQuitService, DiscordService
com.bitaspire.sir.userUser lookup and persistent user-state wrappers for nick, mute, ignore, channel, color, and immunity stateSIRUser, UserManager, NickData, MuteData, IgnoreData, ChannelData, ColorData, ImmuneData

Only public classes and interfaces are part of the supported API surface. Package-private helpers inside the source tree are implementation details.


Root package: com.bitaspire.sir

TypePurpose
SIRApiMain API entry point for plugin access, managers, scheduler, Vault providers, Takion services, and reload.
SIRExtensionShared extension lifecycle contract used by modules and addons.
ConfigConfiguration abstraction exposed by the plugin API.
InformationShared metadata contract for extensions shown in menus or managers.
PermissibleUnitBase contract for permission-aware, ordered units such as channel-style entries.
PluginDependantContract for extensions that require external Bukkit plugins.
ListenerConvenience base for registering and unregistering Bukkit listeners.
PAPIExpansionBase for PlaceholderAPI expansions shipped by an integration or addon.
ExtensionFileFile helper for extension-owned resources.
UserFormatter<T>Formatter contract resolved through module or addon managers.
ChatToggleableContract for user-level chat toggles.
MenuToggleableContract for extension entries that can be toggled through SIR menus.
ChatChannelDeprecated compatibility bridge to com.bitaspire.sir.channel.ChatChannel.
DelayLogger, JsonParser, SoundSection, SoundUtils, TimerUtility types exposed for common plugin-side tasks.

Addon package: com.bitaspire.sir.addon

TypePurpose
SIRAddonBase class for SIR+ addons. Extend this when building an addon jar.
AddonManagerSIR+ manager for addon lookup, loading, unloading, enable state, GUI access, and formatter lookup.
AddonInformationParsed addon metadata used by the runtime and menus.

Channel package: com.bitaspire.sir.channel

TypePurpose
ChatChannelCanonical channel contract. New code should import this package, not the deprecated root bridge.
AccessPermission, group, and access behavior for a channel.
AudienceRecipient and radius behavior.
StyleFormatting and click-style behavior.
LoggingChannel logging behavior.
ClickClick-action contract used by channel style.

Command package: com.bitaspire.sir.command

TypePurpose
CommandProviderExtension contract for addons or modules that expose SIR-aware commands.
SIRCommandBase command class with permission, language, parent-command, and completion helpers.
StandaloneProviderBase provider class for standalone command-provider jars.
CommandManagerManager for command loading, provider state, overrides, synchronization, menus, and lookup.
SettingsServicePer-user command setting and toggle service.
CommandFileParsed command metadata and options.
ProviderInformationParsed provider metadata from commands.yml.

Module package: com.bitaspire.sir.module

TypePurpose
SIRModuleBase class for module jars and built-in module implementations.
ModuleManagerManager for module lookup, loading, unloading, enable state, menus, formatter lookup, and services.
ModuleInformationParsed module metadata used by the runtime and menus.
JoinQuitServiceService bridge for join and quit behavior when that module is present.
DiscordServiceService bridge for Discord integration when that module is present.

User package: com.bitaspire.sir.user

TypePurpose
SIRUserUser wrapper for Bukkit player access, permissions, sounds, teleport helpers, nearby users, and user data.
UserManagerUser lookup, permission checks, and user-state manager access.
ChannelDataUser channel preferences and current channel state.
ColorDataUser chat color state.
IgnoreDataIgnore-list state.
ImmuneDataImmunity state.
MuteDataMute state.
NickDataNickname state.

For addon-specific lifecycle, continue with SIR+ Addons API.

Last updated on

On this page