Releases: fooooooooooooooo/VelocityDiscord
2.0.0
What's Changed
- Send every user event via webhook by @chaos-baum in #59
- Add support for Discord role prefixes to in-game messages sent from Discord by @Kaludii in #64
- Add discord username chat completion by @elliotnash in #62
- fix raw discord pings bypassing filter by @coolguy284 in #67
- Fix Server Discord Message Advancement Overrides Not Working by @coolguy284 in #71
- fix: fix webhook configuration by @LunaSquee in #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 = 10Removed 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 with override.server_name.:
[override.lobby.minecraft][override.lobby.discord][override.lobby.discord.chat.message]
New Contributors
- @Kaludii made their first contribution in #64
- @elliotnash made their first contribution in #62
- @coolguy284 made their first contribution in #67
- @LunaSquee made their first contribution in #78
Full Changelog: 1.9.0...2.0.0
1.9.0
What's Changed
- Fix Discord webhooks from other bots not being mirrored to Minecraft by @jackmawer in #43
- Use YepLib for advancements / death messages by @unilock in #44
- Exclude disabled servers from Yep events by @unilock in #45
- Add channel topic by @Ceddicedced in #48
- Refactor code and add missing scheduler by @Ceddicedced in #50
- chore: Add missing variables from config by @Ceddicedced in #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 = 30Added 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 = -1Added 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 = 10Update 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 #43
- @Ceddicedced made their first contribution in #48
Full Changelog: 1.8.2...1.9.0
1.9.0-pre.1
Warning
This version has lots of changes and is not thoroughly tested, bugs may happen
What's Changed
- Fixed crash when LuckPerms plugin is not loaded
Full Changelog: 1.9.0-pre...1.9.0-pre.1
Release 1.9.0-pre
Warning
This version has lots of changes and is not thoroughly tested, bugs may happen
What's Changed
- Fix Discord webhooks from other bots not being mirrored to Minecraft by @jackmawer in #43
- Use YepLib for advancements / death messages by @unilock in #44
- Exclude disabled servers from Yep events by @unilock in #45
- Add channel topic by @Ceddicedced in #48
- Refactor code and add missing scheduler by @Ceddicedced in #50
- 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
New Contributors
- @jackmawer made their first contribution in #43
- @Ceddicedced made their first contribution in #48
Full Changelog: 1.8.2...1.9.0-pre
Release 1.8.2
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 = trueFull Changelog: 1.8.1...1.8.2
Release 1.8.1
Release 1.8.0
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: 1.7.0...1.8.0
Release 1.7.0
What's Changed
- 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
Full Changelog: 1.6.0...1.7.0
VelocityDiscord 1.6.1 Fabric
- Fixed startup crash due to transitive dependencies not being bundled in jar
- Fixed default config generating with no content
- Changed jar name from
velocity-discord-{version}.jartovelocity_discord-fabric-{minecraft_version}-{version}.jar
Full Changelog: 1.6.0-fabric...1.6.1-fabric
VelocityDiscord 1.6.0 Fabric
Ported plugin to a standalone Fabric mod
Full Changelog: 1.6.0...1.6.0-fabric