Skip to content

Releases: fooooooooooooooo/VelocityDiscord

2.0.0

10 Nov 06:13

Choose a tag to compare

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 = 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 with override.server_name.:

  • [override.lobby.minecraft]
  • [override.lobby.discord]
  • [override.lobby.discord.chat.message]

New Contributors

Full Changelog: 1.9.0...2.0.0

1.9.0

23 Aug 21:40

Choose a tag to compare

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.reload permission node
  • Add command to preview topic ingame - requires discord.topic.preview permission 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 #43
  • @Ceddicedced made their first contribution in #48

Full Changelog: 1.8.2...1.9.0

1.9.0-pre.1

31 Jul 15:47

Choose a tag to compare

1.9.0-pre.1 Pre-release
Pre-release

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

28 Jul 18:51

Choose a tag to compare

Release 1.9.0-pre Pre-release
Pre-release

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.reload permission node
  • Add command to preview topic ingame - requires discord.topic.preview permission 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

06 Dec 07:45

Choose a tag to compare

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: 1.8.1...1.8.2

Release 1.8.1

26 Oct 05:26

Choose a tag to compare

What's Changed

  • Update JDA + use its new webhooks API by @unilock in #37
  • Buildscript fixes by @unilock in #36
  • Prevent disabled servers being included in the output of /list by @unilock in #38

Full Changelog: 1.8.0...1.8.1

Release 1.8.0

14 Oct 21:22

Choose a tag to compare

Closed #34 and #35

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_chunk of 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>"

Full Changelog: 1.7.0...1.8.0

Release 1.7.0

21 Aug 03:19

Choose a tag to compare

What's Changed

  • Added ability to disable some messages by setting their template value to false or "":
    • discord.chat.message
    • discord.chat.join_message
    • discord.chat.leave_message
    • discord.chat.disconnect_message
    • discord.chat.server_switch_message
    • discord.chat.death_message
    • discord.chat.advancement_message
    • discord.commands.list.no_players
    • discord.commands.list.server_offline

Full Changelog: 1.6.0...1.7.0

VelocityDiscord 1.6.1 Fabric

25 May 18:10

Choose a tag to compare

Pre-release
  • 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}.jar to velocity_discord-fabric-{minecraft_version}-{version}.jar

Full Changelog: 1.6.0-fabric...1.6.1-fabric

VelocityDiscord 1.6.0 Fabric

24 May 21:58

Choose a tag to compare

Pre-release

Ported plugin to a standalone Fabric mod

Full Changelog: 1.6.0...1.6.0-fabric