Back to mods
QQBot project artwork

CurseForge · Minecraft mod

QQBot

Check the server status with the Tencent QQ bot

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which QQBot release should I use?

Updated last month
Latest stable file QQBot-1.0.0-1.20.1-forge.jar
Game version 1.20.2, 1.20.5, 1.20.1
Loader Forge

QQBot-1.0.0-1.20.1-forge.jar targets 1.20.2, 1.20.5, 1.20.1 with Forge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.

Where it goes

Is QQBot required on the client, server, or both?

The project page does not say whether this file belongs on the client, dedicated server, or both.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release Forge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does QQBot-1.0.0-1.20.1-forge.jar need?

QQBot-1.0.0-1.20.1-forge.jar. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add QQBot without breaking your instance.

Built for QQBot-1.0.0-1.20.1-forge.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use QQBot-1.0.0-1.20.1-forge.jar. It targets 1.20.2, 1.20.5, 1.20.1 with Forge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    The project page does not say whether this file belongs on the client, dedicated server, or both.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside QQBot-1.0.0-1.20.1-forge.jar. It opens that exact file at the source.

About this project

What does QQBot add?

QQBot — Minecraft QQBot Mod

A server-side mod based on Minecraft Forge 1.20.1. It connects to a QQBotProxy over WebSocket, enabling server info queries in QQ groups/private chats, secure game-account binding, and player login reminders.

  • Package: cn.citprobe
  • Mod ID: qqbot
  • Main class: QQBot
  • Server-side installation only

Table of Contents

  • Features
  • Requirements
  • Getting Started
  • QQ Commands
  • In-Game Commands
  • Binding Flow
  • Configuration
  • Language Files
  • Data Files
  • Project Structure
  • FAQ

Features

  • Server info queries: online player count, TPS/MSPT, and player latency.
  • QQ account binding: bind QQ to a game ID through a secure "8-character verification code + in-game confirmation" flow.
  • Login reminders: send a private message to the bound QQ when a bound player logs in.
  • Auto-reconnect: automatically reconnect to the Proxy at a configurable interval after disconnection.
  • Bilingual support: built-in Simplified Chinese and English language files.
  • Externalized configuration: connection URL, command prefix, server name, and other frequently changed options live in the config file.

Requirements

Item Requirement
Minecraft 1.20.1
Java 17+
Proxy QQBotProxy (WebSocket service, default port 18080)

Getting Started

1. Download

2. Deploy

  1. Put qqbot-<version>.jar into the server's mods/ folder.
  2. Start the server. qqbot.toml is generated under config/ on first start.
  3. Edit config/qqbot.toml and point wsUrl to your Proxy.
  4. Restart the server to apply changes.

Clients do not need to install this mod.

3. Verify

  • The server log showing 已连接QQ机器人中转站 means the connection is successful.
  • Send /help in a QQ group; receiving the help text means everything works.

QQ Commands

The default prefix is / (configurable). Available in both group and private chats.

Command Description
/list Show the online player count (current/max + player list)
/tps Show the server TPS and MSPT
/ping [gameID] Show latency; queries the bound game ID if omitted
/bind <gameID> Start binding (triggers the verification-code flow)
/unbind Unbind the current QQ from its game ID
/me Show your binding info and online status
/help Show help

In-Game Commands

Entered in the Minecraft chat (not QQ):

Command Description
/bind accept <code> Complete binding (code sent via QQ private message)
/unbind Unbind the current game ID from its QQ

Binding Flow

  1. The user sends /bind <gameID> in QQ.
  2. The bot sends an 8-character verification code (letters + digits, ambiguous characters like 0/O/1/I/L excluded) via private message, valid for 5 minutes.
  3. The player logs in with that game ID and enters /bind accept <code> in chat.
  4. The server validates the code (exists, not expired, and matches the current player name), then completes the binding.
  5. On success, the player gets an in-game message and the QQ user gets a private notification.

Re-binding with the same QQ overwrites the previous code; expired codes are invalidated and cleaned up automatically.


Configuration

File: config/qqbot.toml

Key Description Default
enabled Enable the bot true
wsUrl Proxy WebSocket URL ws://127.0.0.1:18080
reconnectDelaySeconds Reconnect interval (seconds) 5
commandPrefix QQ command prefix /
language Message language (zh_cn / en_us) zh_cn
serverName Server name (appended to query and reminder messages) 我的服务器

Example:

[qqbot]
enabled = true
wsUrl = "ws://127.0.0.1:18080"
reconnectDelaySeconds = 5
commandPrefix = "/"
language = "zh_cn"
serverName = "我的服务器"

Language Files

  • assets/qqbot/lang/zh_cn.json — Simplified Chinese
  • assets/qqbot/lang/en_us.json — English

Data Files

  • config/qqbot-bindings.json — binding records between openids and game IDs, persisted automatically and kept across restarts.
  • Verification codes are kept in memory only, not written to disk, and expired codes are cleaned up automatically.

Project Structure

qqbot/
├── build.gradle
├── gradle.properties
├── settings.gradle
└── src/main/
    ├── java/cn/citprobe/
    │   ├── QQBot.java                    # Main class
    │   ├── bind/
    │   │   ├── BindingManager.java       # Binding persistence
    │   │   └── VerificationManager.java  # Verification code management
    │   ├── bot/
    │   │   ├── CommandHandler.java       # QQ command handling
    │   │   └── MessageHandler.java       # WebSocket message dispatch
    │   ├── config/
    │   │   └── ModConfig.java            # Config entries
    │   ├── i18n/
    │   │   └── Lang.java                 # Translation loading
    │   ├── model/
    │   │   └── IncomingMessage.java      # Message DTO
    │   ├── util/
    │   │   └── TpsTracker.java           # TPS calculation
    │   └── websocket/
    │       └── BotWebSocketClient.java   # WebSocket client
    └── resources/
        ├── META-INF/mods.toml
        └── assets/qqbot/lang/
            ├── zh_cn.json
            └── en_us.json

FAQ

Q: Do clients need to install this mod? No, it is server-side only.

Q: I didn't receive the verification code? Make sure the Proxy's private messaging works, and check whether QQ security policies are blocking private messages.

Q: The verification code expired? Codes expire after 5 minutes. Send /bind <gameID> in QQ again.

Q: How do I switch languages? Set language = "en_us" in config/qqbot.toml and restart.

Q: Where are binding data stored? config/qqbot-bindings.json. Deleting this file clears all bindings.


License

This project is licensed under the [MIT License].

Project description from CurseForge.

Pick your setup

QQBot by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

6 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

QQBot versions and loaders

2 of 2 releases match

Looking for an older file? The official CurseForge project page is in Resources.