5.5 KiB
Spigot <-> Telegram bridge plugin
This plugin will send chat messages from Minecraft to Telegram, and from Telegram to Minecraft.
How to use:
-
Download .jar file from releases page, and put it in
plugins/
directory on your server OR clone this repo and rungradle shadowJar
inside repo's directory. -
If you already have telegram bot, skip this step. Otherwise create it through BotFather. You'll go through step-by-step instructions, give a bot username and most importantly, obtain a bot token. Save this token for future use. Note: in order to make your bot hear raw text messages (not commands), you must disable privacy mode option which is on by default. Go through bot's settings: Bot Settings -> Group Privacy and click Turn Off.
-
Next, you need to tell plugin about your new bot. You can either:
- Run Spigot server, plugin will log
"No config file found! Saving default one."
. After that, stop server and proceed to 4th step. - Copy config.yml to
plugins/SpigotTGBridge/
in your server directory.
- Run Spigot server, plugin will log
-
A
config.yml
is just a valid YAML file, alternative for JSON, but more human-readable. Now, take bot's token which you got in 2nd step and paste them intoconfig.yml
, so it looks like this:botToken: abcdefghijklmnopq123123123 # other configuration values...
-
Run spigot server.
-
Add you bot to chats, where you plan to use it. In each of them, run
/chat_id
command. The bot should respond and give special value - chat id. Now, openconfig.yml
and paste this ID underchats
section, so it will look like this:botToken: abcdefghijklmnopq123123123 chats: # Note about doubling minus sign. This is not a mistake, first one means list element, the second one - actual minus - -123456789 - 987654321 # other chat id's...
-
You can extend
config.yml
with more tweaks, which are described in the table below, but it's not nesessary, plugin will use default values instead, if they're missing. Also, check out the example. -
Re-run server or type
tgbridge_reload
into server's console.
Plugin configuration:
Field | Description | Type | Required | Default |
---|---|---|---|---|
enable | If plugin should be enabled | boolean |
❌ | true |
botToken | Telegram bot token (How to create bot) | string |
✔️ | - |
chats | Chats, where bot will work (to prevent using bot by unknown chats) | number[] or string[] |
✔️ | [] |
serverStartMessage | What will be sent to chats when server starts | string |
❌ | 'Server started.' |
serverStopMessage | What will be sent to chats when server stops | string |
❌ | 'Server stopped.' |
logJoinLeave | If true, plugin will send corresponding messages to chats, when player joins or leaves server | boolean |
❌ | true |
logFromMCtoTG | If true, plugin will send messages from players on server, to Telegram chats | boolean |
❌ | true |
logFromTGtoMC | If true, plugin will send messages from chats, to Minecraft server | boolean |
❌ | true |
logPlayerDeath | If true, plugin will send message to Telegram if player died | boolean |
❌ | false |
logPlayerAsleep | If true, plugin will send message to Telegram if player fell asleep | boolean |
❌ | false |
strings | Dictionary of tokens - strings for plugin i18n | Map<string, string> |
❌ | See default config |
commands | Dictionary of command text used in Telegram bot | Map<string, string> |
✔️ | See below |
telegramMessageFormat | Format string for TGtoMC chat message | string |
❌ | See default config |
minecraftMessageFormat | Format string for MCtoTG chat message | string |
❌ | See default config |
Telegram bot commands:
Commands are customizeable through config. If command doesn't exist in config, it will be disabled
Command | Description |
---|---|
/online |
Get players, currently online |
/time |
Get time on server |
/chat_id |
Get current chat ID (in which command was run) for config.yml |
Format string:
+--------+ >--minecraftMessageFormat(message)-> +--------------+
| Spigot | | Telegram bot |
+--------+ <--telegramMessageFormat(message)--< +--------------+
Applies to telegramMessageFormat
and minecraftMessageFormat
configurations.
Must contain %username%
and %message%
inside.
You can customize message color with it (coloring works only for telegramMessageFormat
). You can customize bold/italics/stirethrough formatting (works only for minecraftMessageFormat
). See Minecraft message color codes and Telegram message formatting for more information.
This feature is related to this issue
Plugin commands:
Command | Description |
---|---|
tgbridge_reload |
Reload plugin configuration w/o need to stop the server. Works only through server console |