Skip to main content
synapse-banner

A powerful, modular placeholder translation system designed for dynamic text processing across multiple platforms.

⚡ Installation

The process is fairly simple:

  1. Download the latest synapse-PLATFORM-*.*.jar from the Releases.
  2. Place the JAR file in your server's plugins/ directory.
  3. Restart your server.
  4. Configure as needed.

✨ Features

Core Features

  • 🚀 High Performance: Optimized placeholder resolution with intelligent caching
  • 🔧 Modular Architecture: Clean separation between core logic and platform implementations
  • 🎯 Type Safety: Strongly typed generics ensure compile-time safety
  • ⚡ Async Processing: Non-blocking placeholder resolution with CompletableFuture support
  • 🏗️ Extensible Design: Easy to add new platforms and custom neurons
  • 📝 Rich API: Comprehensive API for both synchronous and asynchronous operations
  • 🏷️ Namespace Management: Organized placeholder categorization and conflict prevention
  • 🔄 Context-Aware Resolution: Placeholders resolved based on user context and environment

Advanced Features

  • 🔗 Relational Placeholders: Placeholders that resolve values based on relationships between 2 Users
  • 💾 Intelligent Caching: Built-in caching mechanisms with expiration support
  • 🧪 Comprehensive Testing: Extensive test suite ensuring reliability
  • 🔙 PAPI Backward-Compatibility: In Bukkit, you can simply call BukkitNeuron#hookToPAPI and we will do the rest

🏗️ Structure

Synapse is a collection of Neurons

A Neuron is what a plugin registers to add Placeholders

Every Neuron has it's own Namespace(s)

A namespace is what defines the name(s) of that Neuron!

The format of placeholders is ${namespace.placeholder:[args1]:[arg2]:etc..} These arguments can be surrounded by double quotes ("), single quotes (') and back quotes (`)

So if a Neuron with the namespace player is registered, and we register a health placeholder inside of it, this will be the placeholder format: ${player.health}

🛠️ For Developers

Synapse is hosted on maven-central, so no need to add any specific repository.

• First of all, we add it to our plugin.yml

name: "ExamplePlugin"
version: 1.0.0
main: com.example.Plugin
softdepend:
- Synapse

• And then to our build tool!

<dependency>
<groupId>studio.mevera</groupId>
<artifactId>synapse-bukkit</artifactId>
<version>loading...</version>
</dependency>

• The Synapse class in this is case is: BukkitSynapse

• And of course the Neuron class will be BukkitNeuron