Перейти к содержимому
Mineforgian

Matrix Bridge

Bridge Minecraft and Matrix chats together!

Загрузки
2K
Подписчики
12
Обновлён
6 ноября 2025 г.
Лицензия
GPL-3.0-only

Опубликован 11 июля 2023 г.

👉 If you need any assistance, please reach out in our Matrix Room

🔥 Need a version for Forge? Check out MC Matrix Bridge!

⚠️ Bridge versions v1.4 and prior are incompatible with Fabric Language Kotlin (FLK) versions newer than 1.13.3+kotlin.2.1.21, throwing a 'NoClassDefFoundError'. FLK is not required starting with v1.4.1.

Bridge versions for 'Better Than Adventure' require Java 11 or newer, and will crash on Java 8. Additionally, a dependency override for Fabric Language Kotlin is necessary for bridge versions v1.4 and prior. More information available below.

Matrix Bridge

Matrix Bridge allows users to bridge a Minecraft server's chat with a Matrix room. This mod enables Matrix users to talk with Minecraft players, without logging into the Minecraft world.

This bridge will send server start, server stop, player join, player leave, player death and player chat messages. This bridge also includes bridge commands '!list', '!ping' and '!invite', which allows Matrix-side users to retrieve a player list, ping the server and whitelist a player respectively.

This mod uses password-based login, and supports encrypted rooms and session verification. Additionally, a YAML-based configuration file is available, alongside support for various databases including H2 (default), SQLite, MariaDB and PostgreSQL.

This mod will be ported to different game versions as requested. Should you wish to submit feedback, request a new port or otherwise need general assistance, please join our support room.

Matrix Bridge utilises the Trixnity Matrix SDK, and depends on the Fabric Language Kotlin mod.

Configuration

Spoiler

config.yaml

# +---------------------------------------------------+
# |                                                   |
# |            Matrix Bridge Configuration            |
# |                                                   |
# +---------------------------------------------------+
# Please ensure that all values follow the YAML standard.
# Indentation is important! Tabs are not allowed.
# Refer to "https://www.tutorialspoint.com/yaml/" for a detailed explanation.
# 
# Improperly set values will default. Integers -> 0, Booleans -> false, Verify Type -> DISABLED, Database Type -> H2.
# Please ensure your values are set properly!
# 
# This file is never modified. This file is only written to when it is being generated.
# This file is comment-safe. They will not disappear.
# 
# If you need assistance, please join our Matrix room "https://matrix.to/#/#sophie.projects:aenead.net".
# Thank you! <3

# DO NOT MODIFY. Used to detect when you need to update config.
version: 2

# Reveals Trixnity log messages. Useful for debugging.
verbose: false





# +---------------------------------------------------+
# |                                                   |
# |                      Account                      |
# |                                                   |
# +---------------------------------------------------+
# Settings used to sign in to the bot account.
account:
  
  # Synapse URL. Supports delegation.
  homeserver: "https://matrix.example.org"
  
  # Account login username. Localpart of user's MXID.
  username: "user"
  
  # Account login password. Does not support tokens or SSO.
  password: "pass"
  
  # Bridge session device name.
  device_name: "Matrix-Minecraft Bridge"
  
  # Internal ID of room to send messages to.
  room: "!sdfDsdfsA:matrix.example.org"





# +---------------------------------------------------+
# |                                                   |
# |                    Verification                   |
# |                                                   |
# +---------------------------------------------------+
# Settings used to enable session verification and encryption.
verification:
  
  # Either KEY, PASSPHRASE or DISABLED. All other values will be rejected.
  type: "KEY"
  
  # Token (either a key or passphrase) to verify bridge session.
  token: "AaAA aaAa AAaa..."





# +---------------------------------------------------+
# |                                                   |
# |                      Database                     |
# |                                                   |
# +---------------------------------------------------+
# Settings used for database configuration.
database:
  
  # Either H2, SQLITE, MARIADB or POSTGRESQL. All other values will be rejected. Default is H2.
  type: "H2"
  
  # Name of database. If type is H2 or SQLITE, represents file name. Otherwise, represents database to connect to.
  name: "database"
  
  # Host and port to connect to database.
  hostname: "localhost:3306"
  
  # Database login username. Only used with MARIADB and POSTGRESQL.
  username: "user"
  
  # Database login password. Only used with MARIADB and POSTGRESQL.
  password: "pass"





# +---------------------------------------------------+
# |                                                   |
# |                      Commands                     |
# |                                                   |
# +---------------------------------------------------+
# Settings for bridge commands.
commands:
  
  # '!list' command. Lists online players. Supported placeholders: %players%
  list:
    format: "📜 Online players: %players%"
    enabled: true
  
  # '!ping' command. Bridge prints message to ensure connection.
  ping:
    format: "🏓 Pong!"
    enabled: true
  
  # '!invite' command. Whitelists a player. Supported placeholders: %player%
  invite:
    format:
      success: "🔵 '%player%' has been whitelisted!"
      error: "🔵 '%player%' could not be found. Usage: !invite <username>"
      already: "🔵 '%player%' is already whitelisted!"
    enabled: false
  
  # Message sent to Matrix when a performed command is invalid. Supported placeholders: %commands%
  invalid_command: "⛔ Command not found! Available commands: %commands%"
  
  # Message sent to Matrix when a performed command is disabled.
  disabled_command: "⛔ Command disabled! Please contact an administrator."





# +---------------------------------------------------+
# |                                                   |
# |                      Messages                     |
# |                                                   |
# +---------------------------------------------------+
# Message formats! Some messages use placeholders. Available placeholders are stated in the comments.
# Available placeholders: %player%, %message%, %commands%
messages:
  
  # Message sent when the server starts.
  start:
    format: "❇ Server started"
    enabled: true
  
  # Message sent when the server stops.
  stop:
    format: "🛑 Server stopped"
    enabled: true
  
  # Chat message format as viewed in Minecraft. Supported placeholders: %player%
  chat_matrix_to_minecraft:
    format: "[§e%player%§r] "
    enabled: true
  
  # Chat message format as viewed on Matrix. Supported placeholders: %player%
  chat_minecraft_to_matrix:
    format: "<%player%> "
    enabled: true
  
  # Message sent to Matrix when a player joins the server. Supported placeholders: %player%
  player_join:
    format: "🔹 %player% joined the game"
    enabled: true
  
  # Message sent to Matrix when a player quits the server. Supported placeholders: %player%
  player_quit:
    format: "🔹 %player% left the game"
    enabled: true
  
  # Message sent to Matrix when a player dies. Supported placeholders: %message%
  player_death:
    format: "🪦 %message%"
    enabled: true
  
  # Message sent to Matrix when a player makes an advancement. Supported placeholders: %player%, %advancement%
  player_advancement:
    format: "🎉 %player% has made the advancement '%advancement%'!"
    enabled: true

Better Than Adventure

Please ensure that you are using Java 11 or newer, as this mod will crash on Java 8.

As of 2025-08-06, a dependency override for Fabric Language Kotlin (FLK) is necessary. FLK requires Fabric Loader 0.16.9+, which is unavailable for BTA Babric. Such a new version of FLK is required to support the most recent Matrix features (such as room v12).

Please place the following file in your server's config directory.

Spoiler

fabric_loader_dependencies.json

{
  "version": 1,
  "overrides": {
    "fabric-language-kotlin": {
      "-depends": {
        "fabricloader": "IGNORED"
      }
    }
  }
}

Ченджлог

1.4_01Релизb1.7.3 · 6 ноября 2025 г.

Bug Fixes

  • Player nicknames are now properly bridged.
  • Fixed death message for when a player was killed by a creeper.
1.4Релиз1.20.4, 1.20.5, 1.20.6 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • Advancements are now broadcast to Matrix.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.4Релиз1.20, 1.20.1 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • Advancements are now broadcast to Matrix.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.4Релиз1.19.2 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • Advancements are now broadcast to Matrix.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.4Релиз1.18.2 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • Advancements are now broadcast to Matrix.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.4Релизb1.7.3 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.4Релиз1.21.6, 1.21.7, 1.21.8 · 6 августа 2025 г.

Existing configs are incompatible. Please run the bridge once to generate the new 'config.yaml'.


New Features

  • Migrated config file to YAML and added comments.
  • Expanded configuration options. Each bridge command can be disabled.
  • Added management commands. '/matrixbridge'.
    • 'reload', reloads config.
    • 'setname <name>', sets bridge bot user name.
    • 'room [join|leave] <roomid>', join or leave a room.
  • Support for additional databases. Bridge supports H2, SQLite, MariaDB and PostgreSQL.
  • Advancements are now broadcast to Matrix.
  • All message events can be individually disabled.
  • Added error message if bot is unable to send messages in configured room.
  • Added error message if configured room does not exist.
  • Added error message if bot has not been invited to configured room.
  • Added error message when connection to homeserver is lost, and when it is restored.

Changes

  • Update dependencies. Supports room version 12.
  • Invite bridge command is now disabled by default.
  • Config options 'player_join' & 'player_leave' default emoji changed to '🔹'.
  • Config option 'invalid_command' now supports '%commands%' tag.
  • Config option 'whitelist_error' default changed to include usage example.
  • Config option 'list' now supports '%players%' tag
  • Config options for command toggles/messages amalgamated
  • Reduced console spam when verbose is disabled.

Bug Fixes

  • Merged fix-broadcast-exception (Kira, @daxvena) to fix null server race condition.
  • Private messages are no longer bridged.
  • First run restart requirement has been removed.
  • Server no longer freezes if homeserver URL is improperly configured. Timeout after 10s.
  • Messages from previous server run sessions are no longer sent.
  • Session is recreated if refresh token is invalid.
1.3Релиз1.20.4, 1.20.5, 1.20.6 · 12 февраля 2025 г.
  • Update to 1.20.2. Confirmed to be compatible with all versions 1.20.2-1.20.6
  • Bot login is now password-based
  • Encrypted room support
  • Session verification support (using key or passphrase)
  • Sessions are now stored to speed up start time and allow encryption/verification support
  • Bot automatically joins rooms it's invited to
  • Delegation support. E.g., can use only 'https://example.net' instead of 'https://synapse.example.net'
  • First implementation of useful error messages

Комментарии

Загружаем…