Intercept watches the components your server emits (chat, action bar, kick screens, and more) and routes them through a translation-aware pipeline with tag and regex interception.
- Tag-based interception with configurable delimiters (default
<lang>) - Optional regex interception with safety limits and caching
- Per-component toggles for chat, action bar, and kick/disconnect
- Command suite for reload, inspection, locale switching, and DB sync
- Optional persistence via PostgreSQL/MariaDB with HikariCP tuning
- Ship a fully multilingual server experience even when upstream plugins only ship one locale.
- Translate plugins that expose no message configuration by intercepting their outbound components.
- Layer consistent formatting/prefixing across mixed plugin ecosystems without forking them.
- Paper 1.20+:
- PacketEvents:
- Action bar
- Chat/Commands
- Kick/Disconnect
- Boss bars
- Entity: Armor stand
- Entity: Display
- Inventories
- Motd
- Scoreboard
- Tab list
- Tags
- Titles
- ProtocolLib:
- Action bar
- Chat/Commands
- Kick/Disconnect
- Boss bars
- Entity: Armor stand
- Entity: Display
- Inventories
- Motd
- Scoreboard
- Tab list
- Tags
- Titles
- PacketEvents:
- Bukkit (legacy):
- PacketEvents:
- Action bar
- Chat/Commands
- Kick/Disconnect
- Boss bars
- Entity: Armor stand
- Entity: Display
- Inventories
- Motd
- Scoreboard
- Tab list
- Tags
- Titles
- ProtocolLib:
- Action bar
- Chat/Commands
- Kick/Disconnect
- Boss bars
- Entity: Armor stand
- Entity: Display
- Inventories
- Motd
- Scoreboard
- Tab list
- Tags
- Titles
- PacketEvents:
- Velocity:
- PacketEvents:
- Action bar
- Chat/Commands
- Kick/Disconnect
- Boss bars
- Motd
- Scoreboard
- Tab list
- Titles
- PacketEvents:
- Permission-based selection of translations
Add the API as compileOnly (runtime is provided by the platform jar).
Gradle (Kotlin DSL)
repositories {
maven("https://maven.whereareiam.me/release")
maven("https://maven.whereareiam.me/development")
}
dependencies {
compileOnly("me.whereareiam:intercept-api:<version>")
}Gradle (Groovy)
repositories {
maven { url "https://maven.whereareiam.me/release" }
maven { url "https://maven.whereareiam.me/development" }
}
dependencies {
compileOnly "me.whereareiam:intercept-api:<version>"
}Maven
<repositories>
<repository>
<id>whereareiam-release</id>
<url>https://maven.whereareiam.me/release</url>
</repository>
<repository>
<id>whereareiam-development</id>
<url>https://maven.whereareiam.me/development</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.whereareiam</groupId>
<artifactId>Intercept</artifactId>
<version><version></version>
<scope>provided</scope>
</dependency>
</dependencies>- Special thanks to the Triton project for blazing the trail on component interception; Intercept builds on those ideas to cover use cases Triton didn’t target.