What's Changed
- Send every user event via webhook by @chaos-baum in https://github.com/fooooooooooooooo/VelocityDiscord/pull/59
- Add support for Discord role prefixes to in-game messages sent from Discord by @Kaludii in https://github.com/fooooooooooooooo/VelocityDiscord/pull/64
- Add discord username chat completion by @elliotnash in https://github.com/fooooooooooooooo/VelocityDiscord/pull/62
- fix raw discord pings bypassing filter by @coolguy284 in https://github.com/fooooooooooooooo/VelocityDiscord/pull/67
- Fix Server Discord Message Advancement Overrides Not Working by @coolguy284 in https://github.com/fooooooooooooooo/VelocityDiscord/pull/71
- fix: fix webhook configuration by @LunaSquee in https://github.com/fooooooooooooooo/VelocityDiscord/pull/78
Config changes
Version bumped
- config_version = "1.9"
+ config_version = "2.0"
Added server display names section
# Server display names
# If a server is not found in this list, the server name (from velocity.toml) will be used instead
[server_names]
# lobby = "Lobby"
Moved channel topic config under the discord.channel_topic section
# Channel topic config (if enabled)
+ [discord.channel_topic]
# Template for the channel topic
# Placeholders available:
# {players} - Total number of players online
# {player_list} - List of players (format is defined below)
# {servers} - Number of servers
# {server_list} - List of server names
# {hostname} - Server hostname
# {port} - Server port
# {motd} - Message of the Day (MOTD)
# {query_port} - Query port
# {max_players} - Maximum number of players
# {plugins} - Number of plugins
# {plugin_list} - List of plugin names
# {version} - Server version
# {software} - Software name
# {average_ping} - Average ping of all players
# {uptime} - Server uptime in hours and minutes
# {server[SERVERNAME]} - Dynamic placeholder for each server's name and status (e.g., {server[MyServer]}, {server[AnotherServer]}, {server[Lobby]}, etc.)
- topic = """{players}/{max_players}
+ format = """{players}/{max_players}
{player_list}
{hostname}:{port}
Uptime: {uptime}"""
# Template for server[SERVERNAME] placeholder in the channel topic
# Placeholders available: {name}, {players}, {max_players}, {motd}, {version}, {protocol}
- topic_server = "{name}: {players}/{max_players}"
+ server = "{name}: {players}/{max_players}"
# Template for server[SERVERNAME] placeholder in the channel topic when the server is offline
# Placeholders available: {name}
- topic_server_offline = "{name}: Offline"
+ server_offline = "{name}: Offline"
# Can be disabled with "" or false to hide the list completely when no players are online
- topic_player_list_no_players_header = "No players online"
+ player_list_no_players_header = "No players online"
# Can be disabled with "" or false to hide the header and only show the player list
- topic_player_list_header = "Players: "
+ player_list_header = "Players: "
# Placeholders available: {username}, {ping}
- topic_player_list_player = "{username}"
+ player_list_player = "{username}"
# Separator between players in the list, \n can be used for new line
- topic_player_list_separator = ", "
+ player_list_separator = ", "
# Maximum number of players to show in the topic
# Set to 0 to show all players
- topic_player_list_max_count = 10
+ player_list_max_count = 10
Removed webook_ prefix from webhook config options
[discord.webhook]
# Full webhook URL to send chat messages to
- webhook_url = ""
+ url = ""
# Full URL of an avatar service to get the player's avatar from
# Placeholders available: {uuid}, {username}
avatar_url = "https://visage.surgeplay.com/face/96/{uuid}"
# The format of the webhook's username
# Placeholders available: {username}, {server}
- webhook_username = "{username}"
+ username = "{username}"
Moved chat message formats into their own sections
- [discord.chat]
+ [discord.chat.message]
- message = "{username}: {message}"
+ format = "{username}: {message}"
- message_type = "text"
+ type = "text"
- message_embed_color = ""
+ embed_color = ""
+ [discord.chat.join]
- join_message = "**{username} joined the game**"
+ format = "**{username} joined the game**"
- join_message_type = "text"
+ type = "text"
- join_message_embed_color = "#40bf4f"
+ embed_color = "#40bf4f"
+ [discord.chat.leave]
- leave_message = "**{username} left the game**"
+ format = "**{username} left the game**"
- leave_message_type = "text"
+ type = "text"
- leave_message_embed_color = "#bf4040"
+ embed_color = "#bf4040"
+ [discord.chat.disconnect]
- disconnect_message = "**{username} disconnected**"
+ format = "**{username} disconnected**"
- disconnect_message_type = "text"
+ type = "text"
- disconnect_message_embed_color = "#bf4040"
+ embed_color = "#bf4040"
+ [discord.chat.server_switch]
- server_switch_message = "**{username} moved to {current} from {previous}**"
+ format = "**{username} moved to {current} from {previous}**"
- server_switch_message_type = "text"
+ type = "text"
- server_switch_message_embed_color = "#40bf4f"
+ embed_color = "#40bf4f"
+ [discord.chat.death]
- death_message = "**{death_message}**"
+ format = "**{death_message}**"
- death_message_type = "text"
+ type = "text"
- death_message_embed_color = "#bf4040"
+ embed_color = "#bf4040"
+ [discord.chat.advancement]
- advancement_message = "**{username} has made the advancement __{advancement_title}__**\n_{advancement_description}_"
+ format = "**{username} has made the advancement __{advancement_title}__**\n_{advancement_description}_"
- advancement_message_type = "text"
+ type = "text"
- advancement_message_embed_color = "#40bf4f"
+ embed_color = "#40bf4f"
+ [discord.chat.proxy_start]
- proxy_start_message = "**Proxy started**"
+ format = "**Proxy started**"
- proxy_start_message_type = "text"
+ type = "text"
- proxy_start_message_embed_color = "#40bf4f"
+ embed_color = "#40bf4f"
+ [discord.chat.proxy_stop]
- proxy_stop_message = "**Proxy stopped**"
+ format = "**Proxy stopped**"
- proxy_stop_message_type = "text"
+ type = "text"
- proxy_stop_message_embed_color = "#bf4040"
+ embed_color = "#bf4040"
+ [discord.chat.server_start]
- server_start_message = "**{server} has started**"
+ format = "**{server} has started**"
- server_start_message_type = "text"
+ type = "text"
- server_start_message_embed_color = "#40bf4f"
+ embed_color = "#40bf4f"
+ [discord.chat.server_stop]
- server_stop_message = "**{server} has stopped**"
+ format = "**{server} has stopped**"
- server_stop_message_type = "text"
+ type = "text"
- server_stop_message_embed_color = "#bf4040"
+ embed_color = "#bf4040"
Added plugin command name config
[minecraft]
# Ingame command for plugin
# Not server overridable
# e.g., /discord, /discord reload, /discord topic preview
plugin_command = "discord"
Added role prefix config
[minecraft]
# ...
- message = "{discord_chunk} {username_chunk}<dark_gray>: <reset>{message} {attachments}"
+ message = "{discord_chunk} {role_prefix} {username_chunk}<dark_gray>: <reset>{message} {attachments}"
# Role prefix configuration
# Format: "role_id" = "prefix format using MiniMessage"
+ [minecraft.role_prefixes]
# "123456789" = "<dark_gray>[</dark_gray><red><b>OWNER</b></red><dark_gray>]</dark_gray>"
# "987654321" = "<dark_gray>[</dark_gray><blue>ADMIN</blue><dark_gray>]</dark_gray>"
# "456789123" = "<dark_gray>[</dark_gray><green>MOD</green><dark_gray>]</dark_gray>"
# "789123456" = "<dark_gray>[</dark_gray><aqua>HELPER</aqua><dark_gray>]</dark_gray>"
Added link detection and formatting config
[minecraft]
# ...
# Placeholders available: {url}, {link_color}
# Can be disabled with "" or false
links = "<click:open_url:\"{url}\"><hover:show_text:\"Click to open {url}\"><dark_gray>[</dark_gray><{link_color}>Link<dark_gray>]</hover></click>"
# ...
link_color = "#4abdff"
Added ability to override most config options per server
Options that are not overridden will inherit the global config values
For example, to override ingame message format and the channel messages are sent to for a server named lobby:
[override.lobby.minecraft]
message = "different format {username}: {message}"
[override.lobby.discord]
channel_id = "123456789012345678"
[!NOTE] Config sections (e.g.,
[minecraft],[discord]) need to be preifxed withoverride.server_name.:
[override.lobby.minecraft][override.lobby.discord][override.lobby.discord.chat.message]
New Contributors
- @Kaludii made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/64
- @elliotnash made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/62
- @coolguy284 made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/67
- @LunaSquee made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/78
Full Changelog: https://github.com/fooooooooooooooo/VelocityDiscord/compare/1.9.0...2.0.0
What's Changed
- Fix Discord webhooks from other bots not being mirrored to Minecraft by @jackmawer in https://github.com/fooooooooooooooo/VelocityDiscord/pull/43
- Use YepLib for advancements / death messages by @unilock in https://github.com/fooooooooooooooo/VelocityDiscord/pull/44
- Exclude disabled servers from Yep events by @unilock in https://github.com/fooooooooooooooo/VelocityDiscord/pull/45
- Add channel topic by @Ceddicedced in https://github.com/fooooooooooooooo/VelocityDiscord/pull/48
- Refactor code and add missing scheduler by @Ceddicedced in https://github.com/fooooooooooooooo/VelocityDiscord/pull/50
- chore: Add missing variables from config by @Ceddicedced in https://github.com/fooooooooooooooo/VelocityDiscord/pull/52
- Add LuckPerms prefix to discord message templates
- Queue messages while plugin is starting so they are not lost
- Add config reload command ingame - requires
discord.reloadpermission node - Add command to preview topic ingame - requires
discord.topic.previewpermission node - Update dependencies
Config changes
Version bumped
- config_version = "1.8"
+ config_version = "1.9"
Added server online ping interval
# How often to ping all servers to check for online status (seconds)
# Set to 0 to disable
# Excluded servers will not be pinged
ping_interval = 30
Added channel topic update interval
# OPTIONAL - Configuration for updating the Discord channel topic
# Set the interval (in minutes) for updating the channel topic.
# Use a value less than 10 to disable this feature.
update_channel_topic_interval = -1
Added channel topic options
# Template for the channel topic.
# Placeholders available:
# {players} - Total number of players online
# {player_list} - List of players (format is defined below)
# {servers} - Number of servers
# {server_list} - List of server names
# {hostname} - Server hostname
# {port} - Server port
# {motd} - Message of the Day (MOTD)
# {query_port} - Query port
# {max_players} - Maximum number of players
# {plugins} - Number of plugins
# {plugin_list} - List of plugin names
# {version} - Server version
# {software} - Software name
# {average_ping} - Average ping of all players
# {uptime} - Server uptime in hours and minutes
# {server[SERVERNAME]} - Dynamic placeholder for each server's name and status (e.g., {server[MyServer]}, {server[AnotherServer]}, {server[Lobby]}, etc.)
topic = """{players}/{max_players}
{player_list}
{hostname}:{port}
Uptime: {uptime}"""
# Template for server[SERVERNAME] placeholder in the channel topic.
# Placeholders available: {name}, {players}, {max_players}, {motd}, {version}, {protocol}
topic_server = "{name}: {players}/{max_players}"
# Template for server[SERVERNAME] placeholder in the channel topic when the server is offline.
# Placeholders available: {name}
topic_server_offline = "{name}: Offline"
# Can be disabled to hide the list completely when no players are online
topic_player_list_no_players_header = "No players online"
# Can be disabled to hide the header and only show the player list
topic_player_list_header = "Players: "
# Placeholders available: {username}, {ping}
topic_player_list_player = "{username}"
# Separator between players in the list, \n can be used for new line
topic_player_list_separator = ", "
# Maximum number of players to show in the topic
# Set to < 1 to show all players
topic_player_list_max_count = 10
Update default webhook avatar url
[discord.webhook]
# Full webhook URL to send more fancy Minecraft chat messages to
webhook_url = ""
# Full URL of an avatar service to get the player's avatar from
# Placeholders available: {uuid}, {username}
-avatar_url = "https://crafatar.com/avatars/{uuid}?overlay"
+avatar_url = "https://visage.surgeplay.com/face/96/{uuid}"
Added message_type and message_embed_color
# for user messages, the following types can be used
# "text" - Normal text only message with the above
#
# "webhook" - Use a Discord webhook to have the bot use the player's username and avatar when sending messages
# Requires a webhook URL to be set below
# Ignores the above message format, and just sends the message as the content of the webhook
#
# "embed" - Discord embed with the above format as the description field
message_type = "text"
# Can be disabled
message_embed_color = ""
Added join_message_type and join_message_embed_color
join_message_type = "text"
# Can be disabled
join_message_embed_color = "#40bf4f"
Added leave_message_type and leave_message_embed_color
leave_message_type = "text"
# Can be disabled
leave_message_embed_color = "#bf4040"
Added disconnect_message_type and disconnect_message_embed_color
disconnect_message_type = "text"
# Can be disabled
disconnect_message_embed_color = "#bf4040"
Added server_switch_message_type and server_switch_message_embed_color
server_switch_message_type = "text"
# Can be disabled
server_switch_message_embed_color = "#40bf4f"
Added death_message_type and death_message_embed_color, changed default death_message
# Placeholders available: {username}, {death_message}
# death_message includes the username just as it is shown ingame
# Can be disabled
-death_message = "**{username} {death_message}**"
+death_message = "**{death_message}**"
death_message_type = "text"
# Can be disabled
death_message_embed_color = "#bf4040"
Added advancement_message_type and advancement_message_embed_color
advancement_message_type = "text"
# Can be disabled
advancement_message_embed_color = "#40bf4f"
Added proxy_start, proxy_stop, server_start, and server_stop messages
# Can be disabled
proxy_start_message = "**Proxy started**"
proxy_start_message_type = "text"
# Can be disabled
proxy_start_message_embed_color = "#40bf4f"
# Can be disabled
proxy_stop_message = "**Proxy stopped**"
proxy_stop_message_type = "text"
# Can be disabled
proxy_stop_message_embed_color = "#bf4040"
# Placeholders available: {server}
# Can be disabled
server_start_message = "**{server} has started**"
server_start_message_type = "text"
# Can be disabled
server_start_message_embed_color = "#40bf4f"
# Placeholders available: {server}
# Can be disabled
server_stop_message = "**{server} has stopped**"
server_stop_message_type = "text"
# Can be disabled
server_stop_message_embed_color = "#bf4040"
Updated minecraft.username_chunk
[minecraft]
# Placeholders available: {role_color}, {display_name}, {username}, {nickname}
# <insert> tag allows you to shift right-click the username to insert @{username} in the chat
-username_chunk = "<{role_color}><hover:show_text:{username}>{nickname}</hover><reset>"
+username_chunk = "<{role_color}><insert:@{username}><hover:show_text:{display_name}>{nickname}</hover></insert><reset>"
New Contributors
- @jackmawer made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/43
- @Ceddicedced made their first contribution in https://github.com/fooooooooooooooo/VelocityDiscord/pull/48
Full Changelog: https://github.com/fooooooooooooooo/VelocityDiscord/compare/1.8.2...1.9.0
What's Changed
- Excluded servers no longer receive messages from discord by default, the old behavior can be enabled by setting
excluded_servers_receive_messages = true
Full Changelog: https://github.com/fooooooooooooooo/VelocityDiscord/compare/1.8.1...1.8.2
What's Changed
- Update JDA + use its new webhooks API by unilock
- Buildscript fixes by unilock
- Prevent disabled servers being included in the output of /list by unilock
Full Changelog: https://github.com/fooooooooooooooo/VelocityDiscord/compare/1.8.0...1.8.1
What's Changed
- Added ability to exclude servers by name from join/leave/ingame messages
- Properly shutdown JDA on plugin exit
- Added more information to default config
- Removed deprecated discriminator placeholder
- This is in the
username_chunkof your config under the[minecraft]category - Before:
username_chunk = "<{role_color}><hover:show_text:{username}#{discriminator}>{nickname}</hover><reset>"- After:
username_chunk = "<{role_color}><hover:show_text:{username}>{nickname}</hover><reset>" - This is in the
Full Changelog: https://github.com/fooooooooooooooo/VelocityDiscord/compare/1.7.0...1.8.0
- Added ability to disable some messages by setting their template value to
falseor"":discord.chat.messagediscord.chat.join_messagediscord.chat.leave_messagediscord.chat.disconnect_messagediscord.chat.server_switch_messagediscord.chat.death_messagediscord.chat.advancement_messagediscord.commands.list.no_playersdiscord.commands.list.server_offline
- Improvements in the list command and configuration loading by 4drian3d
- Add
enable_everyone_and_hereconfig option:
# Enable @everyone and @here pings from Minecraft chat
enable_everyone_and_here = false
- Add Discord webhook by @voruti
- Allow customization of webhook username by @unilock
- Reduce used permissions by @voruti
- Make /list command ephemeral by @voruti
- Show player count as activity by @voruti
- Allow configuring list command ephemeral by @voruti
- Don't ignore timing out players by @voruti
- /list: Detect if backend server is unreachable by @unilock

