Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obstudio/mc-repeater
A chat relay between Minecraft server and IRC with no mods.
https://github.com/obstudio/mc-repeater
bot bot-server bridge chat chatbot docker docker-image koishi minecraft minecraft-server qq qqbot zulip zulip-bot
Last synced: 3 days ago
JSON representation
A chat relay between Minecraft server and IRC with no mods.
- Host: GitHub
- URL: https://github.com/obstudio/mc-repeater
- Owner: obstudio
- License: mit
- Created: 2019-11-22T06:44:48.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T13:21:59.000Z (about 2 years ago)
- Last Synced: 2025-02-16T18:38:05.938Z (4 days ago)
- Topics: bot, bot-server, bridge, chat, chatbot, docker, docker-image, koishi, minecraft, minecraft-server, qq, qqbot, zulip, zulip-bot
- Language: JavaScript
- Homepage:
- Size: 142 KB
- Stars: 8
- Watchers: 5
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MC-Repeater
A chat relay between Minecraft server and IRC with no mods.
## Features
+ No mods needed
+ Support Java and Bedrock servers, vanilla and modded servers
+ Can be run on Windows, Linux and macOS### Minecraft server support
Java Edition:
+ [Vanilla Server](https://www.minecraft.net/download/server)
+ [Paper](https://papermc.io/)Bedrock Edition:
+ [Bedrock Dedicated Server](https://www.minecraft.net/download/server/bedrock) (Only server start up / shutdown and player join / leave messages)### Chat bot support
+ [Zulip](https://zulipchat.com/)
+ [Koishi](https://koishi.js.org/) (for QQ)### Messages can be forwarded
+ Chat
+ `/say` message
+ Server start up / shutdown
+ Player join / leave
+ Player death
+ Achievement## Usage
1. Install [NodeJS](https://nodejs.org/).
2. Install MC-Repeater globally using `npm install -g mcrepeater`.
3. In your Minecraft server directory, create a bash / batch file (e.g. `start.sh` or `start.bat`), then write your Minecraft start command in it. For Java servers, it looks like:
```
java -Xmx1024M -Xms1024M -jar server.jar nogui
```
For Bedrock servers, it's usually:
```
LD_LIBRARY_PATH=. ./bedrock_server
```
4. Create `config.json` in the same directory and write [configurations](#configurations) in it.
5. Run MC-Repeater using the command `mcrepeater`. You don't need to start Minecraft server manually because it's automatically started by MC-Repeater.## Configurations
### Examples
Here's some simple `config.json` examples:
#### Zulip
```json
{
"serverStart": "start.sh",
"serverType": "java",
"bots": [
{
"botType": "zulip",
"botHost": "example-org.example.com",
"botName": "[email protected]",
"channel": "example-stream/example-topic",
"key": "your-bot-api-key"
}
],
"language": "en-us"
}
```#### Koishi
```json
{
"serverStart": "start.sh",
"serverType": "java",
"bots": [
{
"botType": "koishi",
"botHost": "bot.your-host.com",
"channel": "your-channel",
"key": "your-secret-key"
}
],
"language": "en-us"
}
```### Parameters
#### Minecraft server configurations:
+ **serverStart:** Path to your Minecraft server starting bash / batch file.
+ **serverType:** Type of your server. Can be `java`, `paper` or `bedrock`.
+ **autoRestart (optional):** A boolean value which determine whether the MC-Repeater will auto restart your server after your server crashed (default: `false`).#### Chat bot configurations:
An array for bot configurations:
+ **botType:** Your bot type which determines how the message will be sent. Can be `zulip` or `koishi` or `local` (for debugging).
+ **botHost:** Hostname of your bot server.
+ **botName:** User name of your bot. For Zulip, it's your bot e-mail address. It is not needed for Koishi.
+ **channel:** The channel you want to send information to. For Zulip, it's `"example-stream/example-topic"`.
+ **key:** The API key or secret key for your bot. Usually provided by your bot server.
+ **language:** Your language. Currently support `en-us` and `zh-cn`.#### Network optimization:
+ **throttleInterval (optional):** The minimum interval at which messages are sent (default: `0`).
+ **offlineTimeout (optional):** The minimum time to determine a player is offline (default: `0`).#### Custom messages:
+ **customMessage (optional):** Custom messages to override original messages
Example of `customMessage`:
```json
"customMessage": {
"join": "Ob $1 joined the game.",
"leave": "Ob $1 left the game.",
"advancements": {
"Diamonds!": "Diorites!"
},
"deathReasons": {
"magic": "$1 was killed by mogic!",
},
"mobs": {
"Ender Dragon": "Dragon Bro"
}
}
```#### Message mask:
+ **messageMask (optional):** Block certain type of messages.
| Message Type | Description |
|--------------|-------------------------------------------------|
| join | The message of a player joined the game |
| leave | The message of a player left the game |
| start | Server start message |
| stop | Server stop message |
| chat | Chat message from players |
| server | Chat message from the server |
| advancement | The message of a player achieved an advancement |
| death | Player death message |Example of `messageMask`:
```json
messageMask: ["join", "leave", "death"]
```## License
Licensed under the [MIT](https://github.com/obstudio/MC-Repeater/blob/master/LICENSE) License.