90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Velocity Carbon Discord
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.
Features
- 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
Installation
- Create a discord bot application here
- Click
Add application
and then go to theBot
tab
- Click
- Enable the
SERVER MEMBERS INTENT
andMESSAGE CONTENT INTENT
underPrivileged Gateway Intents
- Go to the
OAuth2
tab and copy theCLIENT ID
- Create an invite link for your new bot here
- Enable permissions:
View Channels
,Send Messages
andRead Message History
- Paste the copied
CLIENT ID
into the field on the page - Click the generated link to invite your bot to your discord server
- Enable permissions:
- Go to the
Bot
tab and copy the bot token, you may need to clickReset Token
first - 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
TOKEN
with 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
Support for Carbon and Velocity Carbon Discord can be obtained in the Carbon discord server. For Velocity Carbon Discord issues, please ping @Jarva
Configuration
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'
Credits
- 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
Details
Licensed LGPL-2.1-only
Published a year ago
Updated a month ago