{"id":119300,"date":"2026-06-07T03:24:13","date_gmt":"2026-06-07T00:24:13","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/"},"modified":"2026-06-07T03:24:13","modified_gmt":"2026-06-07T00:24:13","slug":"paper-telegram-bridge","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/","title":{"rendered":"paper-telegram-bridge"},"content":{"rendered":"<p># Paper Telegram Bridge<\/p>\n<p>A fork from spigot-tg-bridge with some new features.<\/p>\n<p>![image](https:\/\/raw.githubusercontent.com\/pbl0\/paper-telegram-bridge\/refs\/heads\/master\/img\/paper-telegram-bridge.png)<\/p>\n<p>### This plugin will send chat messages from Minecraft to Telegram, and from Telegram to Minecraft.<\/p>\n<p>## How to use:<\/p>\n<p>1. Download .jar file and put it in<br \/>\n   `plugins\/` directory on your server **OR** clone this repo and run `gradle` inside repo&#8217;s directory.<\/p>\n<p>2. If you already have telegram bot, skip this step. Otherwise, create it through BotFather.<br \/>\n   You&#8217;ll go through step-by-step instructions, give a bot **username** and most importantly, obtain a bot **token**.<br \/>\n   Save this token for future use. **Note:** in order to make your bot hear raw text messages (not commands), you must<br \/>\n   disable privacy mode option which is on by default. Go through bot&#8217;s<br \/>\n   settings: **Bot Settings -> Group Privacy** and click **Turn Off**.<\/p>\n<p>3. Next, you need to tell plugin about your new bot. You can either:<\/p>\n<p>   &#8211; Run Paper server, plugin will log `&#8221;No config file found! Saving default one.&#8221;`. After that, stop server and<br \/>\n     proceed to 4th step.<br \/>\n   &#8211; Copy config.yml<br \/>\n     to `plugins\/PaperTelegramBridge\/` in your server directory.<\/p>\n<p>4. A `config.yml` is just a valid YAML file, alternative for JSON, but more<br \/>\n   human-readable.<br \/>\n   Now, take bot&#8217;s **token** which you got in 2nd step and paste them into `config.yml`, so it looks like this:<\/p>\n<p>   &#8220;`yaml<br \/>\n   botToken: abcdefghijklmnopq123123123<br \/>\n   # other configuration values&#8230;<br \/>\n   &#8220;`<\/p>\n<p>5. Run Paper server.<\/p>\n<p>6. Add you bot to chats, where you plan to use it. In each of them, run `\/chat_id` command. The bot should respond and<br \/>\n   give special value &#8211; **chat id**. Now, open `config.yml` and paste this ID under `chats` section, so it will look<br \/>\n   like this:<\/p>\n<p>   &#8220;`yaml<br \/>\n   botToken: abcdefghijklmnopq123123123<br \/>\n   chats: [<br \/>\n       -123456789,<br \/>\n       987654321,<br \/>\n       # other chat id&#8217;s&#8230;<br \/>\n     ]<br \/>\n   &#8220;`<\/p>\n<p>7. (Optional) To enable admin commands like `\/whitelist`, you need to add Telegram user IDs to the `admins` list in `config.yml`.<\/p>\n<p>   &#8220;`yaml<br \/>\n   admins: [<br \/>\n       123456789,<br \/>\n       987654321,<br \/>\n       # other admin user ids&#8230;<br \/>\n     ]<br \/>\n   &#8220;`<\/p>\n<p>8. You can extend `config.yml` with more tweaks, which are described in the table below, but it&#8217;s not necessary, plugin<br \/>\n   will use default values instead, if they&#8217;re missing. Also, check out the [example](src\/main\/resources\/config.yml).<\/p>\n<p>9. Re-run server or type `tgbridge_reload` into server&#8217;s console.<\/p>\n<p>## Plugin configuration:<\/p>\n<p>|         Field          | Description                                                                                      |          Type          |      Required      |         Default          |<br \/>\n| :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;: | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;: | :&#8212;&#8212;&#8212;&#8212;&#8212;-: | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-: |<br \/>\n|         enable         | If plugin should be enabled                                                                      |       `boolean`        |        :x:         |          `true`          |<br \/>\n|        botToken        | Telegram bot token (How to create bot) |        `string`        | :heavy_check_mark: |            &#8211;             |<br \/>\n|         chats          | Chats, where bot will work (to prevent using bot by unknown chats)                               | `number[] or string[]` | :heavy_check_mark: |           `[]`           |<br \/>\n|         admins         | List of Telegram user IDs authorized to use admin commands like `\/whitelist`                     | `number[] or string[]` |        :x:         |           `[]`           |<br \/>\n|   serverStartMessage   | What will be sent to chats when server starts                                                    |        `string`        |        :x:         |   `&#8217;Server started.&#8217;`    |<br \/>\n|   serverStopMessage    | What will be sent to chats when server stops                                                     |        `string`        |        :x:         |   `&#8217;Server stopped.&#8217;`    |<br \/>\n|      logJoinLeave      | If true, plugin will send corresponding messages to chats, when player joins or leaves server    |       `boolean`        |        :x:         |          `true`          |<br \/>\n|     logFromMCtoTG      | If true, plugin will send messages from players on server, to Telegram chats                     |       `boolean`        |        :x:         |          `true`          |<br \/>\n|     logFromTGtoMC      | If true, plugin will send messages from chats, to Minecraft server                               |       `boolean`        |        :x:         |          `true`          |<br \/>\n|     logPlayerDeath     | If true, plugin will send message to Telegram if player died                                     |       `boolean`        |        :x:         |         `false`          |<br \/>\n|    logPlayerAsleep     | If true, plugin will send message to Telegram if player fell asleep                              |       `boolean`        |        :x:         |         `false`          |<br \/>\n|  logPlayerAdvancement  | If true, plugin will send message to Telegram if player gets an advancement                      |       `boolean`        |        :x:         |          `true`          |<br \/>\n|      logInventory      | If true, plugin will send image of inventory, item or ender chest [Read more](#Inventory)        |       `boolean`        |        :x:         |          `true`          |<br \/>\n|    logWhitelistKick    | If true, plugin will send notification when a player is kicked due to not being whitelisted      |       `boolean`        |        :x:         |          `true`          |<br \/>\n|        strings         | Dictionary of tokens &#8211; strings for plugin i18n                                                   | `Map<string, string>`  |        :x:         |    See default config    |<br \/>\n|        commands        | Dictionary of command text used in Telegram bot                                                  | `Map<string, string>`  | :heavy_check_mark: |        See below         |<br \/>\n| telegramMessageFormat  | Format string for TGtoMC chat message                                                            |        `string`        |        :x:         |    See default config    |<br \/>\n| minecraftMessageFormat | Format string for MCtoTG chat message                                                            |        `string`        |        :x:         |    See default config    |<br \/>\n|     silentMessages     | Disable notification in Telegram chats                                                           |       `boolean`        |        :x:         |          false           |<br \/>\n|       apiOrigin        | Use different API endpoint for the bot                                                           |        `string`        |        :x:         | https:\/\/api.telegram.org |<br \/>\n|   disableConfigWatch   | Do not watch the config for changes                                                              |        `string`        |        :x:         |          false           |<\/p>\n<p>## Telegram bot commands:<\/p>\n<p>Commands are customizable through config. If command doesn&#8217;t exist in config, it will be disabled<\/p>\n<p>|   Command    | Description                                                                            |<br \/>\n| :&#8212;&#8212;&#8212;-: | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- |<br \/>\n|  `\/online`   | Get players, currently online                                                          |<br \/>\n|   `\/time`    | Get time on server                  |<br \/>\n|  `\/chat_id`  | Get current chat ID (in which command was run) for config.yml                          |<br \/>\n| `\/whitelist` | (Admin only) Manage server whitelist &#8211; list whitelisted players or add\/remove a player |<\/p>\n<p>## Format string:<\/p>\n<p>&#8220;`<br \/>\n+&#8212;&#8212;&#8211;+ >&#8211;minecraftMessageFormat(message)-> +&#8212;&#8212;&#8212;&#8212;&#8211;+<br \/>\n| Paper |                                      | Telegram bot |<br \/>\n+&#8212;&#8212;&#8211;+ <--telegramMessageFormat(message)--< +--------------+\n```\n\nApplies to `telegramMessageFormat` and `minecraftMessageFormat` configurations.\nMust contain `%username%` and `%message%` inside.\nYou can customize message color with it (coloring works only for `telegramMessageFormat`). You can customize\nbold\/italics\/strikethrough formatting (works only for `minecraftMessageFormat`).\nSee Minecraft message color codes\nand Telegram message formatting for more information.\nThis feature is related to this issue\n\n## Plugin commands:\n\n|      Command      | Description                                                                                |\n| :---------------: | :----------------------------------------------------------------------------------------- |\n| `tgbridge_reload` | Reload plugin configuration w\/o need to stop the server. Works only through server console |\n\n## Permissions\n\n|         Permission          | Description                                                                                                                           |\n| :-------------------------: | :------------------------------------------------------------------------------------------------------------------------------------ |\n| `tg-bridge.silentjoinleave` | When set to **true** the bot won't send join and leave messages for that player. It will also be hidden from the **\/online** command. |\n\n## Inventory\n\nSimilar behavior as InteractiveChat plugin (not a dependency!).\nCommands implemented:\n\n- [inv]\n- [item]\n- [ender]\n\n## Whitelist Management\n\nServer admins can manage the whitelist directly from Telegram using the `\/whitelist` command:\n\n- `\/whitelist` - List all whitelisted players\n- `\/whitelist <player_name>` &#8211; Toggle whitelist status for a player (add if not whitelisted, remove if already whitelisted)<\/p>\n<p>This command is only available to users listed in the `admins` configuration field. The plugin will also send notifications when players try to join but are kicked due to not being whitelisted (configurable via `logWhitelistKick`).<\/p>\n<p>## Minecraft assets<\/p>\n<p>In this repository won&#8217;t include the minecraft icons required to build the plugin for the inventory and advancements rendering features.<br \/>\nThis icons can be generated using the mod IconExporter and running in-game this command:<\/p>\n<p>&#8220;`<br \/>\n\/iconexporter export 64<br \/>\n&#8220;`<\/p>\n<p>Some icons, like potions, require renaming. The resulting .png files need to be placed `src\/main\/resources\/textures`.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Connect Telegram chats and Minecraft servers seamlessly.<\/p>\n","protected":false},"featured_media":119301,"template":"","meta":{"_minecraft_slug":"paper-telegram-bridge","_minecraft_project_id":"HhD6VFrX","_minecraft_author":"pbl0","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":537,"_minecraft_follows":5,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"paper-telegram-bridge.zip","_minecraft_size_bytes":83532066,"_minecraft_version_count":12,"_minecraft_updated_at":"2026-05-16T10:30:47.424742Z","_minecraft_date_created":"2025-02-04T23:23:26.202836Z","_minecraft_date_modified":"2025-10-25T15:04:05.766049Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/paper-telegram-bridge","_minecraft_icon_attachment_id":119301,"_minecraft_imported_at":"2026-06-07T00:24:14+00:00","_minecraft_import_hash":"09fdf3f3384598b2c8896d5917648bf3","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[126,127,867,92],"mod_loader":[132],"minecraft_version":[40,41,38,78,79,80,81,82],"class_list":["post-119300","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-management","mod_category-paper","mod_category-social","mod_category-utility","mod_loader-paper","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>paper-telegram-bridge - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"paper-telegram-bridge - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Connect Telegram chats and Minecraft servers seamlessly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/\",\"name\":\"paper-telegram-bridge - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png\",\"datePublished\":\"2026-06-07T00:24:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png\",\"width\":80,\"height\":80},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/paper-telegram-bridge\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"paper-telegram-bridge\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"paper-telegram-bridge - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/","og_locale":"en_US","og_type":"article","og_title":"paper-telegram-bridge - Minecraft","og_description":"Connect Telegram chats and Minecraft servers seamlessly.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/","name":"paper-telegram-bridge - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png","datePublished":"2026-06-07T00:24:13+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/paper-telegram-bridge-icon-8c48677b3e7a54226b8e0fbfd5fcb9e6d3ac942a.png","width":80,"height":80},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/paper-telegram-bridge\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"paper-telegram-bridge"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/119300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/119301"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=119300"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=119300"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=119300"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=119300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}