Skip to content

whereareiam/Intercept

Repository files navigation

Intercept

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.

Features

  • 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

Use cases

  • 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.

Platform coverage

  • 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
  • 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
  • Velocity:
    • PacketEvents:
      • Action bar
      • Chat/Commands
      • Kick/Disconnect
      • Boss bars
      • Motd
      • Scoreboard
      • Tab list
      • Titles

Planned features

  • Permission-based selection of translations

Developer

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>&lt;version&gt;</version>
    <scope>provided</scope>
</dependency>
</dependencies>

Credits

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages