Tags
Creators
Details
1.3.0
Compatibility
Changes
Bots now work on 1.21 through 1.21.8, and there is one runner jar instead of one per protocol.
Added
Six protocols, one bot-runner.jar.
| Minecraft | Protocol |
|---|---|
| 1.21, 1.21.1 | 767 |
| 1.21.2, 1.21.3 | 768 |
| 1.21.4 | 769 |
| 1.21.5 | 770 |
| 1.21.6 | 771 |
| 1.21.7, 1.21.8 | 772 |
You no longer choose a runner. The jar carries a backend per protocol and picks one at startup by asking the server what it speaks — a server list ping, before any bot connects. Point it at 1.21.1 or at 1.21.8 and the same file does the right thing.
Two MCProtocolLib builds still cannot share a class path; every build occupies the same package names. They can share a process, which is what changed: the selected backend is loaded in a class loader of its own. The runner is still a child process, so it is still the crash boundary and still the whole cleanup.
The agent floor moved to 1.21, down from 1.21.8. It compiles against the floor now, so a call to API those older servers do not have is a compile error rather than a NoSuchMethodError on your server.
Fixed
A menu the bot closed was still reported as open. The server acts on a client-requested close without echoing it, so nothing was ever going to clear the client's own record. bot_inspect and menu() kept describing a screen the player had already left.
Bot commands were refused on a server with enforce-secure-profile on — its default. A bot has no Mojang signing key, so /say, /me and anything else carrying a signable argument came back as chat.disabled.invalid_command_signature, delivered to the player and nowhere else. Servers the orchestrator starts now set it off; if you run your own test server, do the same.
Upgrading
The runner is now bot-runner.jar, not bot-runner-772.jar.
If your session_start names runnerJar, either update the path or delete the field — omitting it makes mcp-server find the runner beside itself, which is where dist and the release both put it. Deleting it is the better fix: there is nothing left to choose.
{
"host": "127.0.0.1",
"port": 25565,
"mcpPort": 25585,
"token": "auth-token from config.yml"
}
Nothing else changed for callers. The MCP tools, their arguments and their responses are the same.
bot-runner.jar is 89 MB, because six protocol libraries live inside it. That is the cost of not having to pick one; it is downloaded once and unpacks only the backend it needs.
Verified
Every version in the table was started for real and driven through seventeen features — join, break, move, chat, commands, containers, menu contents, item model data, boss bars, the sidebar scoreboard, entity right-clicks, three bots at once — with the server's exception log checked for linkage errors afterwards. The full matrix runs all seven versions in one pass.
Setup and usage: README
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:6M4ubAZ5:Z7QJRKhQ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:6M4ubAZ5:Z7QJRKhQ"
}
