Bridging Carbon chat channels to Discord.
Carbon must be installed on the proxy to use this plugin. If you use Carbon on your backend servers, please use their DiscordSRV compatibility.
- Highly configurable
- Webhooks or bot messages for chat
- Display player count in bot status
- Ping discord users from in-game
- Reply to in-game messages from Discord
- Handle separate chat channel mappings (E.g. one channel for global chat, one channel for staff chat)
- Customisable Minecraft Avatar display
- Link discord attachments in-game
- Status messages on server start and shutdown, as well as player join, leave or change server
- Formats Xaero's Minimap shared waypoints in Discord
- Create a discord bot application here
- Click
Add applicationand then go to theBottab
- Click
- Enable the
SERVER MEMBERS INTENTandMESSAGE CONTENT INTENTunderPrivileged Gateway Intents - Go to the
OAuth2tab and copy theCLIENT ID - Create an invite link for your new bot here
- Enable permissions:
View Channels,Send MessagesandRead Message History - Paste the copied
CLIENT IDinto the field on the page - Click the generated link to invite your bot to your discord server
- Enable permissions:
- Go to the
Bottab and copy the bot token, you may need to clickReset Tokenfirst - Install the plugin on your server, start the server once to generate the config and stop the server again.
- Open the plugin config files at
plugins/velocitycarbondiscord/config.yaml - Replace where it says
TOKENwith the bot token you copied previously - Edit the channel mapping to include the carbon channels and discord channels IDs you want to link
- Set any additional config options you want
- Start the server
Support for Carbon and Velocity Carbon Discord can be obtained in the Carbon discord server. For Velocity Carbon Discord issues, please ping @Jarva
Default config generated on startup:
discord:
token: 'TOKEN'
# Available placeholders: <username>
messages:
# Additional placeholders: <displayname> <message>
chat_message: '<username>: <message>'
# Additional placeholders: <server>
join_message: '**<username> joined <server>**'
leave_message: '**<username> left <server>**'
# Additional placeholders: N/A
disconnect_message: '**<username> was disconnected**'
# Additional placeholders: <server>
disconnect_server_message: '**<username> was disconnected from <server>**'
# Additional placeholders: <previous_server> <server>
server_switch_message: '**<username> moved from <previous_server> to <server>**'
# Available placeholders: N/A
shutdown_message: '**Proxy shutting down**'
start_message: '**Ready for connections**'
# Additional placeholders: <displayname> <title> <description>
advancement_default_message: "**<username>** has just earned the achievement [<title>]** _(<description>)_"
advancement_challenge_message: "**<username>** has completed the challenge [<title>]** _(<description>)_"
advancement_goal_message: "**<username>** has reached the goal [<title>]** _(<description>)_"
advancement_task_message: "**<username>** has made the advancement [<title>]** _(<description>)_"
# Additional placeholders: <displayname> <message>
death_message: "**<message>**"
webhook:
# Available placeholders: <displayname> <username> <uuid>
avatar_url: 'https://crafatar.com/renders/head/<uuid>?overlay'
username: '<username>'
# Available placeholders: <message>
message: '<message>'
show_bot_messages: false
show_attachments_ingame: true
show_activity: true
# Available placeholders: <amount>
activity_text: 'with <amount> players online'
enable_mentions: true
enable_everyone_and_here: false
prefer_webhook: true
# Available placeholders: <message> <nickname> <role_color> <username>
minecraft:
# Additional placeholders: <attachments> <discord_format> <reply_format> <username_format>
format: '<discord_format> <reply_format><username_format> <dark_gray>» <reset><message><attachments>'
discord_format: '<dark_gray>(<color:#7289da>discord<dark_gray>)<reset>'
username_format: '<color:<role_color>><hover:show_text:<username>><nickname></hover><reset>'
mention_format: '<color:<role_color>><underlined>@<nickname></underlined></color>'
# Additional placeholders: <reply_message> <reply_nickname> <reply_role_color> <reply_url> <reply_username>
reply_format: '<dark_gray><click:open_url:<reply_url>>[<color:#4abdff>←<color:<reply_role_color>><hover:show_text:<reply_username>><reply_nickname></hover><dark_gray>]</click><reset> '
# Additional placeholders: <attachment_url>
attachment_format: '<dark_gray><click:open_url:<attachment_url>>[<color:#4abdff>Attachment<dark_gray>]</click><reset>'
channels:
- name: 'carbon:global'
enabled: true
broadcast_events: true
discord:
webhook:
url: 'WEBHOOK_URL'
channel_id: 'CHANNEL_ID'
- name: 'carbon:staff'
enabled: true
minecraft:
format: '<discord_format> <gray>✦</gray> <username_format> <dark_gray>» <aqua><message><attachments>'
discord:
webhook:
url: 'WEBHOOK_URL'
channel_id: 'CHANNEL_ID'- fooooooooooooooo: Creation of Velocity Discord which heavily inspired the features, and this README
- Draycia: Creator of Carbon, as well as provided lots of help figuring out implementation details