Carbon is a modern chat plugin built on channels, with just about every single setting and format configurable.
Java 21+ is required.
Features
- Message formatting with MiniMessage, which includes support for RGB, clicks, hovers, and everything else JSON chat supports.
- Chat channels, with join/leave commands, radius/world-specific channels, and more
- Chat clearing
- Cross server chat with Redis, NATS, or RabbitMQ.
- Mute and ignore other players
- Item linking with
<item>
and armor with placeholders like <hat>
and <feet>
- Basic party system and party chat
- EssentialsXDiscord and DiscordSRV support
@Username
pings with highlights and sounds
- Quick chat with configurable prefix and command
- Custom channels for mcMMO, FactionsUUID, and Towny
- Multi-language support. Automatically detects player locale and uses translations for their language if available.
Carbon requires LuckPerms on all platforms.
Example Channel Config
```hocon
# The channel's key, used to track the channel.
# You only need to change the second part of the key. "global" by default.
# The value is what's used in commands, this is probably what you want to change.
key="carbon:global"
# The chat formats for this channel.
format {
# Basic chat formats.
# The "default_format" format is the main one you want to edit.
# The "console" format is what's shown to console.
# The "discord" format is what's shown to supported discord integrations.
# The keys are group names, the values are chat formats (MiniMessage).
basic {
"default_format"=": "
discord=""
console="[] : "
}
# Per-Language chat formats.
locales {
"en_US" {}
}
}
# Messages will be sent in this channel if they start with this prefix. (Leave empty/blank to disable quick prefix for this channel)
quick-prefix=""
should-register-commands=true
command-aliases=[]
# The distance players must be within to see each other's messages.
# A value of '0' requires that both players are in the same world.
# On velocity, '0' requires that both players are in the same server.
radius=-1
# If true, players will be able to see if they're not sending messages to anyone
# because they're out of range from the radius.
empty-radius-recipients-message=true
cooldowns {}
cooldown=-1
```
Dependency Information
Releases and betas are published to Maven Central
Maven
```xml
de.hexaoxi
carbonchat-api
3.0.0-beta.28
provided
```
Gradle
```kotlin
repositories {
mavenCentral()
}
dependencies {
compileOnly("de.hexaoxi:carbonchat-api:3.0.0-beta.28")
}
```
## Javadocs
https://javadocs.dev/de.hexaoxi/carbonchat-api