{"id":17016973,"url":"https://github.com/fooooooooooooooo/velocitydiscord","last_synced_at":"2025-03-17T09:31:18.280Z","repository":{"id":104961573,"uuid":"449647849","full_name":"fooooooooooooooo/VelocityDiscord","owner":"fooooooooooooooo","description":"Velocity global chat/discord bridge","archived":false,"fork":false,"pushed_at":"2025-02-25T23:03:33.000Z","size":455,"stargazers_count":24,"open_issues_count":11,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-16T10:42:01.706Z","etag":null,"topics":["discord","minecraft","minecraft-plugin","velocity-plugin","velocitypowered"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fooooooooooooooo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-19T10:35:19.000Z","updated_at":"2025-03-01T11:00:56.000Z","dependencies_parsed_at":"2024-10-14T06:35:36.941Z","dependency_job_id":"1a60f4de-f5f6-49f1-8181-af3ff15b2791","html_url":"https://github.com/fooooooooooooooo/VelocityDiscord","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooooooooooooooo%2FVelocityDiscord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooooooooooooooo%2FVelocityDiscord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooooooooooooooo%2FVelocityDiscord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooooooooooooooo%2FVelocityDiscord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fooooooooooooooo","download_url":"https://codeload.github.com/fooooooooooooooo/VelocityDiscord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244009039,"owners_count":20382955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","minecraft","minecraft-plugin","velocity-plugin","velocitypowered"],"created_at":"2024-10-14T06:35:25.111Z","updated_at":"2025-03-17T09:31:17.841Z","avatar_url":"https://github.com/fooooooooooooooo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Velocity Discord\n\nChat from all servers gets bridged with a discord channel\n\n## Features\n\n- Configurable\n- Webhooks or embeds or normal text for messages\n- Player count in bot status\n- List command\n- Templating syntax for all messages\n- Death and Advancement messages shown\n- Server start/stop messages\n- Server status in channel topic\n- Reload command for config changes while the server is running\n\n\u003e **Note**\n\u003e This requires a [companion Velocity plugin](https://github.com/unilock/YepLib)\n\u003e and [companion backend mod/plugin](https://github.com/unilock/YepTwo) for advancement/death messages\n\n## Installation\n\n1. Create a bot application [here](https://discordapp.com/developers/applications/)\n    - Go to the `Bot` tab and click `Add bot`\n2. Enable the `SERVER MEMBERS INTENT` and `MESSAGE CONTENT INTENT` under `Privileged Gateway Intents`\n3. Copy the bot's token, you might have to click `Reset Token` first\n4. Install the plugin on your server, start the server once, then stop the server again\n5. Open the plugin config file at `plugins/discord/config.toml`\n6. Under `[discord]`, paste your token in place of `TOKEN`\n7. Under `[discord]`, paste the channel id you want to use\n    - To get a channel id, you have to enable developer mode in Discord\n    - Open Discord settings, go to `Advanced`, then turn on `Developer Mode`\n    - Now right-click the channel you want to use and click `Copy ID`\n8. Set any additional config options you want\n9. Start the server and check if it works\n\n### For Webhooks\n\n1. Create a webhook in the channel you want to use\n    - Right-click the channel, click `Edit Channel`, go to `Integrations`, click `Create Webhook`\n    - Copy the webhook URL\n2. Paste the webhook URL under `[discord.webhook]` in the config file\n\n### For advancements/deaths\n\n1. Install the [YepLib](https://github.com/unilock/YepLib) velocity plugin alongside this plugin\n2. Install the [YepTwo](https://github.com/unilock/YepTwo) backend mod/plugin on each of your backend servers that you want to\n   receive advancements/deaths from\n\n## Configuration\n\nDefault config generated on startup:\n\n```toml\n# Don't change this\nconfig_version = \"1.9\"\n\n# Comma separated list of server names to exclude from the bridge (defined under [servers] inside your velocity.toml)\n# e.g., exclude_servers = [\"lobby\", \"survival\"]\nexclude_servers = []\nexcluded_servers_receive_messages = false\n\n# How often to ping all servers to check for online status (seconds)\n# Set to 0 to disable\n# Excluded servers will not be pinged\nping_interval = 30\n\n[discord]\n# Bot token from https://discordapp.com/developers/applications/\ntoken = \"TOKEN\"\n# Channel ID to send Minecraft chat messages to\nchannel = \"000000000000000000\"\n\n# Show messages from bots in Minecraft chat\nshow_bot_messages = false\n# Show clickable links for attachments in Minecraft chat\nshow_attachments_ingame = true\n\n# Show a text as playing activity of the bot\nshow_activity = true\n# Activity text of the bot to show in Discord\n# Placeholders available: {amount}\nactivity_text = \"with {amount} players online\"\n\n# Enable mentioning Discord users from Minecraft chat\nenable_mentions = true\n# Enable @everyone and @here pings from Minecraft chat\nenable_everyone_and_here = false\n\n# OPTIONAL - Configuration for updating the Discord channel topic\n# Set the interval (in minutes) for updating the channel topic.\n# Use a value less than 10 to disable this feature.\nupdate_channel_topic_interval = -1\n\n# Template for the channel topic.\n# Placeholders available:\n# {players} - Total number of players online\n# {player_list} - List of players (format is defined below)\n# {servers} - Number of servers\n# {server_list} - List of server names\n# {hostname} - Server hostname\n# {port} - Server port\n# {motd} - Message of the Day (MOTD)\n# {query_port} - Query port\n# {max_players} - Maximum number of players\n# {plugins} - Number of plugins\n# {plugin_list} - List of plugin names\n# {version} - Server version\n# {software} - Software name\n# {average_ping} - Average ping of all players\n# {uptime} - Server uptime in hours and minutes\n# {server[SERVERNAME]} - Dynamic placeholder for each server's name and status (e.g., {server[MyServer]}, {server[AnotherServer]}, {server[Lobby]}, etc.)\ntopic = \"\"\"{players}/{max_players}\n{player_list}\n{hostname}:{port}\nUptime: {uptime}\"\"\"\n\n# Template for server[SERVERNAME] placeholder in the channel topic.\n# Placeholders available: {name}, {players}, {max_players}, {motd}, {version}, {protocol}\ntopic_server = \"{name}: {players}/{max_players}\"\n\n# Template for server[SERVERNAME] placeholder in the channel topic when the server is offline.\n# Placeholders available: {name}\ntopic_server_offline = \"{name}: Offline\"\n\n# Can be disabled to hide the list completely when no players are online\ntopic_player_list_no_players_header = \"No players online\"\n\n# Can be disabled to hide the header and only show the player list\ntopic_player_list_header = \"Players: \"\n\n# Placeholders available: {username}, {ping}\ntopic_player_list_player = \"{username}\"\n\n# Separator between players in the list, \\n can be used for new line\ntopic_player_list_separator = \", \"\n\n# Maximum number of players to show in the topic\n# Set to \u003c 1 to show all players\ntopic_player_list_max_count = 10\n\n[discord.webhook]\n# Full webhook URL to send more fancy Minecraft chat messages to\nwebhook_url = \"\"\n# Full URL of an avatar service to get the player's avatar from\n# Placeholders available: {uuid}, {username}\navatar_url = \"https://visage.surgeplay.com/face/96/{uuid}\"\n\n# The format of the webhook's username\n# Placeholders available: {username}, {server}\nwebhook_username = \"{username}\"\n\n# Minecraft \u003e Discord message formats\n# Uses the same formatting as the Discord client (a subset of markdown)\n# Messages can be disabled with empty string (\"\") or false\n#\n# x_message_type can be one of the following:\n# \"text\"  - Normal text only message with the associated x_message format\n# \"embed\" - Discord embed with the associated x_message format as the description field\n# Default for all is \"text\"\n#\n# x_message_embed_color is the color of the embed, in #RRGGBB format\n[discord.chat]\n\n# Placeholders available: {username}, {prefix}, {server}, {message}\n# Can be disabled\nmessage = \"{username}: {message}\"\n\n# for user messages, the following types can be used\n# \"text\"    - Normal text only message with the above\n#\n# \"webhook\" - Use a Discord webhook to have the bot use the player's username and avatar when sending messages\n#             Requires a webhook URL to be set below\n#             Ignores the above message format, and just sends the message as the content of the webhook\n#\n# \"embed\"   - Discord embed with the above format as the description field\nmessage_type = \"text\"\n# Can be disabled\nmessage_embed_color = \"\"\n\n# Placeholders available: {username}, {prefix}, {server}\n# Can be disabled\njoin_message = \"**{username} joined the game**\"\njoin_message_type = \"text\"\n# Can be disabled\njoin_message_embed_color = \"#40bf4f\"\n\nleave_message = \"**{username} left the game**\"\nleave_message_type = \"text\"\n# Can be disabled\nleave_message_embed_color = \"#bf4040\"\n\n# Possible different format for timeouts or other terminating connections\n# Placeholders available: {username}, {prefix}\n# Can be disabled\ndisconnect_message = \"**{username} disconnected**\"\ndisconnect_message_type = \"text\"\n# Can be disabled\ndisconnect_message_embed_color = \"#bf4040\"\n\n# Placeholders available: {username}, {prefix}, {current}, {previous}\n# Can be disabled\nserver_switch_message = \"**{username} moved to {current} from {previous}**\"\nserver_switch_message_type = \"text\"\n# Can be disabled\nserver_switch_message_embed_color = \"#40bf4f\"\n\n# Placeholders available: {username}, {death_message}\n# death_message includes the username just as it is shown ingame\n# Can be disabled\ndeath_message = \"**{death_message}**\"\ndeath_message_type = \"text\"\n# Can be disabled\ndeath_message_embed_color = \"#bf4040\"\n\n# Placeholders available: {username}, {advancement_title}, {advancement_description}\n# Can be disabled\nadvancement_message = \"**{username} has made the advancement __{advancement_title}__**\\n_{advancement_description}_\"\nadvancement_message_type = \"text\"\n# Can be disabled\nadvancement_message_embed_color = \"#40bf4f\"\n\n# Can be disabled\nproxy_start_message = \"**Proxy started**\"\nproxy_start_message_type = \"text\"\n# Can be disabled\nproxy_start_message_embed_color = \"#40bf4f\"\n\n# Can be disabled\nproxy_stop_message = \"**Proxy stopped**\"\nproxy_stop_message_type = \"text\"\n# Can be disabled\nproxy_stop_message_embed_color = \"#bf4040\"\n\n# Placeholders available: {server}\n# Can be disabled\nserver_start_message = \"**{server} has started**\"\nserver_start_message_type = \"text\"\n# Can be disabled\nserver_start_message_embed_color = \"#40bf4f\"\n\n# Placeholders available: {server}\n# Can be disabled\nserver_stop_message = \"**{server} has stopped**\"\nserver_stop_message_type = \"text\"\n# Can be disabled\nserver_stop_message_embed_color = \"#bf4040\"\n\n[discord.commands.list]\nenabled = true\n\n# Ephemeral messages are only visible to the user who sent the command\nephemeral = true\n\n# Placeholders available: {server_name}, {online_players}, {max_players}\nserver_format = \"[{server_name} {online_players}/{max_players}]\"\n\n# Placeholders available: {username}\nplayer_format = \"- {username}\"\n\n# Can be disabled\nno_players = \"No players online\"\n\n# Can be disabled\nserver_offline = \"Server offline\"\ncodeblock_lang = \"asciidoc\"\n\n# Discord \u003e Minecraft message formats\n# Uses XML-like formatting with https://docs.advntr.dev/minimessage/format.html\n[minecraft]\n# Placeholders available: {discord}\ndiscord_chunk = \"\u003cdark_gray\u003e[\u003c{discord_color}\u003eDiscord\u003cdark_gray\u003e]\u003creset\u003e\"\n\n# Placeholders available: {role_color}, {display_name}, {username}, {nickname}\n# \u003cinsert\u003e tag allows you to shift right-click the username to insert @{username} in the chat\nusername_chunk = \"\u003c{role_color}\u003e\u003cinsert:@{username}\u003e\u003chover:show_text:{display_name}\u003e{nickname}\u003c/hover\u003e\u003c/insert\u003e\u003creset\u003e\"\n\n# Placeholders available: {discord_chunk}, {username_chunk}, {attachments}, {message}\nmessage = \"{discord_chunk} {username_chunk}\u003cdark_gray\u003e: \u003creset\u003e{message} {attachments}\"\n\n# Placeholders available: {url}, {attachment_color}\nattachments = \"\u003cdark_gray\u003e\u003cclick:open_url:{url}\u003e[\u003c{attachment_color}\u003eAttachment\u003cdark_gray\u003e]\u003c/click\u003e\u003creset\u003e\"\n\n# Colors for the \u003c{discord_color}\u003e and \u003c{attachment_color}\u003e tags\ndiscord_color = \"#7289da\"\nattachment_color = \"#4abdff\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooooooooooooooo%2Fvelocitydiscord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffooooooooooooooo%2Fvelocitydiscord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooooooooooooooo%2Fvelocitydiscord/lists"}