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
| Group | Artifact | Packaging | Coordinate |
|---|---|---|---|
com.bitaspire.sir | api | jar | com.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")
}| Artifact | Coordinate |
|---|---|
advancements | com.bitaspire.sir.module:advancements:2.1.1 |
announcements | com.bitaspire.sir.module:announcements:2.1.1 |
channels | com.bitaspire.sir.module:channels:2.1.1 |
cooldowns | com.bitaspire.sir.module:cooldowns:2.1.1 |
discord | com.bitaspire.sir.module:discord:2.1.1 |
emojis | com.bitaspire.sir.module:emojis:2.1.1 |
join-quit | com.bitaspire.sir.module:join-quit:2.1.1 |
login | com.bitaspire.sir.module:login:2.1.1 |
mentions | com.bitaspire.sir.module:mentions:2.1.1 |
moderation | com.bitaspire.sir.module:moderation:2.1.1 |
motd | com.bitaspire.sir.module:motd:2.1.1 |
tags | com.bitaspire.sir.module:tags:2.1.1 |
vanish | com.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")
}| Artifact | Coordinate |
|---|---|
clear-chat | com.bitaspire.sir.command:clear-chat:2.1.1 |
color | com.bitaspire.sir.command:color:2.1.1 |
ignore | com.bitaspire.sir.command:ignore:2.1.1 |
message | com.bitaspire.sir.command:message:2.1.1 |
mute | com.bitaspire.sir.command:mute:2.1.1 |
nick | com.bitaspire.sir.command:nick:2.1.1 |
print | com.bitaspire.sir.command:print:2.1.1 |
settings | com.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 package | Use it for | Main public types |
|---|---|---|
com.bitaspire.sir | Shared entry points, extension contracts, helper abstractions, listener and PlaceholderAPI utilities | SIRApi, SIRExtension, Config, Information, PermissibleUnit, PluginDependant, Listener, PAPIExpansion, ExtensionFile, UserFormatter<T> |
com.bitaspire.sir.addon | SIR+ addon lifecycle, addon metadata, and addon manager access | SIRAddon, AddonManager, AddonInformation |
com.bitaspire.sir.channel | Current chat-channel contract used by the modern channels module and SIR+ | ChatChannel, Access, Audience, Style, Logging, Click |
com.bitaspire.sir.command | Command-provider extensions, SIR-aware commands, command metadata, and command state | CommandProvider, SIRCommand, StandaloneProvider, CommandManager, SettingsService, CommandFile, ProviderInformation |
com.bitaspire.sir.module | Module extensions, module metadata, module manager access, and built-in module service bridges | SIRModule, ModuleManager, ModuleInformation, JoinQuitService, DiscordService |
com.bitaspire.sir.user | User lookup and persistent user-state wrappers for nick, mute, ignore, channel, color, and immunity state | SIRUser, 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
| Type | Purpose |
|---|---|
SIRApi | Main API entry point for plugin access, managers, scheduler, Vault providers, Takion services, and reload. |
SIRExtension | Shared extension lifecycle contract used by modules and addons. |
Config | Configuration abstraction exposed by the plugin API. |
Information | Shared metadata contract for extensions shown in menus or managers. |
PermissibleUnit | Base contract for permission-aware, ordered units such as channel-style entries. |
PluginDependant | Contract for extensions that require external Bukkit plugins. |
Listener | Convenience base for registering and unregistering Bukkit listeners. |
PAPIExpansion | Base for PlaceholderAPI expansions shipped by an integration or addon. |
ExtensionFile | File helper for extension-owned resources. |
UserFormatter<T> | Formatter contract resolved through module or addon managers. |
ChatToggleable | Contract for user-level chat toggles. |
MenuToggleable | Contract for extension entries that can be toggled through SIR menus. |
ChatChannel | Deprecated compatibility bridge to com.bitaspire.sir.channel.ChatChannel. |
DelayLogger, JsonParser, SoundSection, SoundUtils, Timer | Utility types exposed for common plugin-side tasks. |
Addon package: com.bitaspire.sir.addon
| Type | Purpose |
|---|---|
SIRAddon | Base class for SIR+ addons. Extend this when building an addon jar. |
AddonManager | SIR+ manager for addon lookup, loading, unloading, enable state, GUI access, and formatter lookup. |
AddonInformation | Parsed addon metadata used by the runtime and menus. |
Channel package: com.bitaspire.sir.channel
| Type | Purpose |
|---|---|
ChatChannel | Canonical channel contract. New code should import this package, not the deprecated root bridge. |
Access | Permission, group, and access behavior for a channel. |
Audience | Recipient and radius behavior. |
Style | Formatting and click-style behavior. |
Logging | Channel logging behavior. |
Click | Click-action contract used by channel style. |
Command package: com.bitaspire.sir.command
| Type | Purpose |
|---|---|
CommandProvider | Extension contract for addons or modules that expose SIR-aware commands. |
SIRCommand | Base command class with permission, language, parent-command, and completion helpers. |
StandaloneProvider | Base provider class for standalone command-provider jars. |
CommandManager | Manager for command loading, provider state, overrides, synchronization, menus, and lookup. |
SettingsService | Per-user command setting and toggle service. |
CommandFile | Parsed command metadata and options. |
ProviderInformation | Parsed provider metadata from commands.yml. |
Module package: com.bitaspire.sir.module
| Type | Purpose |
|---|---|
SIRModule | Base class for module jars and built-in module implementations. |
ModuleManager | Manager for module lookup, loading, unloading, enable state, menus, formatter lookup, and services. |
ModuleInformation | Parsed module metadata used by the runtime and menus. |
JoinQuitService | Service bridge for join and quit behavior when that module is present. |
DiscordService | Service bridge for Discord integration when that module is present. |
User package: com.bitaspire.sir.user
| Type | Purpose |
|---|---|
SIRUser | User wrapper for Bukkit player access, permissions, sounds, teleport helpers, nearby users, and user data. |
UserManager | User lookup, permission checks, and user-state manager access. |
ChannelData | User channel preferences and current channel state. |
ColorData | User chat color state. |
IgnoreData | Ignore-list state. |
ImmuneData | Immunity state. |
MuteData | Mute state. |
NickData | Nickname state. |
For addon-specific lifecycle, continue with SIR+ Addons API.
Last updated on