Skip to content

Latest commit

ย 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

McBotConsole

Minecraft Java ็‰ˆๆœๅŠกๅ™จๆ‰น้‡็™ปๅฝ•ๅฎขๆˆท็ซฏ๏ผŒ็”จไบŽๆต‹่ฏ•่‡ชๅทฑๆ‹ฅๆœ‰ๆˆ–ๅทฒ่Žทไนฆ้ขๆŽˆๆƒ็š„ๆœๅŠกๅ™จ็š„ๆ‰ฟ่ฝฝ่ƒฝๅŠ›ใ€‚

ๅ›พๅฝขๅŒ–็•Œ้ข๏ผˆC# WinForms๏ผ‰+ Node.js ๅŽ็ซฏ๏ผˆmineflayer๏ผ‰๏ผŒๆ”ฏๆŒๆ‰น้‡็™ปๅฝ•ใ€็œŸๅนถๅ‘ใ€ไปฃ็†ๆฑ ใ€็Žฉๅฎถๆฑ ใ€ๆ’ไปถ็ณป็ปŸใ€็ƒญ่กฅไธใ€‚

ๅฝ“ๅ‰็‰ˆๆœฌ๏ผš26H2 ๏ฝœ ๆœ€ๆ–ฐๅ‘ๅธƒ๏ผšReleases


โš ๏ธ ๅ…่ดฃๅฃฐๆ˜Ž

ๆœฌ้กน็›ฎไป…ไพ›ๆต‹่ฏ•่‡ชๅทฑๆ‹ฅๆœ‰ๆˆ–ๅทฒ่Žทๅพ—ไนฆ้ขๆŽˆๆƒ็š„ๆœๅŠกๅ™จใ€‚

  • โŒ ็ฆๆญข็”จไบŽๆ”ปๅ‡ปใ€ๅŽ‹ๆต‹ใ€้ชšๆ‰ฐไป–ไบบๆœๅŠกๅ™จ
  • โŒ ็ฆๆญข็”จไบŽ็ป•่ฟ‡ๆœๅŠกๅ™จๅๆœบๅ™จไบบๆœบๅˆถ
  • โŒ ็ฆๆญข็”จไบŽไปปไฝ•่ฟๅๅฝ“ๅœฐๆณ•ๅพ‹ๆณ•่ง„็š„็”จ้€”

ๅ› ไฝฟ็”จๆœฌๅทฅๅ…ทไบง็”Ÿ็š„ไปปไฝ•ๅŽๆžœ๏ผŒ็”ฑไฝฟ็”จ่€…่‡ช่กŒๆ‰ฟๆ‹…ใ€‚ไฝœ่€…ไธๅฏนไปปไฝ•ๆปฅ็”จ่กŒไธบ่ดŸ่ดฃใ€‚


โœจ ๅŠŸ่ƒฝ็‰นๆ€ง

ๆ ธๅฟƒ่ƒฝๅŠ›

  • ๆ‰น้‡็™ปๅฝ•๏ผšๅŸบไบŽ mineflayer ๅฎž็Žฐ MC ๅ่ฎฎ
  • ็œŸๅนถๅ‘๏ผšๆฏไธชๅ‡ไบบ็‹ฌ็ซ‹ๅŽๅฐ่ฟ่กŒ๏ผŒไธๅ†ไธฒ่กŒ้˜ปๅกž
  • ไปฃ็†ๆฑ ๏ผšๆ”ฏๆŒ SOCKS4 / SOCKS5 / HTTP / HTTPS๏ผŒ่‡ชๅŠจๅฅๅบท่ฟฝ่ธชไธŽ่ฝฎๆข
  • ็Žฉๅฎถๆฑ ๏ผšไปŽๆ–‡ไปถๆŒ‰้กบๅบๅ–ๅๅญ—๏ผŒๆฏไธช็”จไธ€ๆฌก๏ผŒๅฏ้…็ฝฎ่€—ๅฐฝๅŽๅœๆญขๆˆ–ๅพช็Žฏ
  • ่‹ฑๆ–‡ๅๅญ—ๅ…ธ๏ผšๅ†…็ฝฎๅธธ่ง่‹ฑๆ–‡ๅ๏ผŒๅฏ่‡ชๅฎšไน‰ names.txt
  • ่‡ชๅŠจ้‡่ฟž๏ผšๆމ็บฟๅŽ่‡ชๅŠจ้‡่ฟž๏ผˆๅฏ้…็ฝฎๆœ€ๅคงๆฌกๆ•ฐ๏ผ‰
  • ๅคšๅผ€ๆ”ฏๆŒ๏ผš็”จ่ฟ›็จ‹ PID ้š”็ฆปๆ—ฅๅฟ—ๅ’ŒๆˆๅŠŸ่ฎฐๅฝ•

ๆœๅŠกๅ™จ่ฏŠๆ–ญ

  • DNS ็บฏ่งฃๆž๏ผšไธไพ่ต– ICMP๏ผŒๆœๅŠกๅ™จ็ฆ ping ไนŸ่ƒฝ็”จ
  • ๆœๅŠกๅ™จ่งฃๆžๅ™จ๏ผšDNS / Ping / TCP / SLP / Query / ๆ’ไปถๆŽขๆต‹
  • ๆ’ไปถๆŽขๆต‹๏ผš้€š่ฟ‡ Tab ่กฅๅ…จๆ‰ซๆๆœๅŠกๅ™จๆ’ไปถๅˆ—่กจ
  • ่ฐƒ่ฏ•ๅ‘ฝไปค่กŒ๏ผšhelp / status / bots / kick / proxies / memory ็ญ‰

ๆ’ไปถ็ณป็ปŸ

  • ๅŒ่ฏญ่จ€ๆ”ฏๆŒ๏ผšNode.js ๆ’ไปถ + Python ๆ’ไปถ
  • ๆƒ้™ๅˆ†็บง๏ผš0 ๅช่ฏป / 1 ๅฏ่Šๅคฉ / 2 ๅฏๆŽงๅˆถ / 3 ็ณป็ปŸ็บง
  • ็ƒญ้‡่ฝฝ๏ผšๆ— ้œ€้‡ๅฏ็จ‹ๅบๅณๅฏๅŠ ่ฝฝ / ๅธ่ฝฝ / ้‡่ฝฝๆ’ไปถ
  • ็”Ÿๅ‘ฝๅ‘จๆœŸ้’ฉๅญ๏ผšbeforeConnect / afterConnect / onLogin / onKick / onError / onDisconnect / connectionResult

่กฅไธ็ณป็ปŸ

  • ็ƒญ่กฅไธ๏ผš.mcpatch ๆ ผๅผ๏ผŒไธ็”จ้‡ๆ–ฐไธ‹่ฝฝๅฎŒๆ•ดๅŒ…
  • RSA-2048 ็ญพๅ๏ผšๅชๆœ‰ๅฎ˜ๆ–น็ง้’ฅ็ญพๅ็š„่กฅไธๆ‰่ƒฝๅบ”็”จ
  • ้˜ฒ็ฏกๆ”น๏ผšmanifest SHA256 ๆ ก้ชŒ
  • ้˜ฒ้‡ๆ”พ๏ผšnonce ไธ€ๆฌกๆ€ง
  • ๅฎ˜ๆ–น้ชŒ่ฏ๏ผš่กฅไธ ID ๅฟ…้กปๅœจๅฎ˜ๆ–น GitHub tag ๅˆ—่กจไธญ
  • ่‡ชๅŠจๅค‡ไปฝ๏ผšๆ›ฟๆขๅ‰ๅค‡ไปฝ๏ผŒๅฏไธ€้”ฎๅ›žๆปš
  • ่ทฏๅพ„็ฉฟ่ถŠ้˜ฒๆŠค๏ผš่กฅไธๆ— ๆณ•ๅ†™ๅ…ฅ็จ‹ๅบ็›ฎๅฝ•ไน‹ๅค–็š„่ทฏๅพ„
  • ๅคฑ่ดฅ่‡ชๅŠจๅ›žๆปš๏ผšๆ›ฟๆขไธญ้€”ๅ‡บ้”™๏ผŒ่‡ชๅŠจๆขๅค

ๆ›ดๆ–ฐๆฃ€ๆŸฅ

  • ๅฏๅŠจๆ—ถ้™้ป˜ๆฃ€ๆŸฅๆœ€ๆ–ฐ็‰ˆๆœฌ
  • ่œๅ•ใ€ๅธฎๅŠฉ โ†’ ๆฃ€ๆŸฅๆ›ดๆ–ฐใ€‘ๅฏๆ‰‹ๅŠจๆฃ€ๆŸฅ
  • ๆ˜พ็คบๆ›ดๆ–ฐ่ฏดๆ˜Žใ€ๅ‘ๅธƒๆ—ถ้—ดใ€ไธ‹่ฝฝ้“พๆŽฅ
  • ๆฃ€ๆต‹ๅˆฐๅทฒๅบ”็”จ่กฅไธๆ—ถๆ็คบ"ๆ—ง่กฅไธๅฏ่ƒฝๅคฑๆ•ˆ"
  • 10 ๅˆ†้’Ÿๅ†…ๅญ˜็ผ“ๅญ˜๏ผŒ้ฟๅ…ๅˆท็ˆ† GitHub API

๐Ÿ–ผ ๆˆชๅ›พ

5 4

๐Ÿ–ฅ ็ณป็ปŸ่ฆๆฑ‚

| ้กน | ่ฆๆฑ‚ |

|---|---| | ๆ“ไฝœ็ณป็ปŸ | Windows 10 / 11๏ผˆ64 ไฝ๏ผ‰ | | .NET Framework | 4.8 ๆˆ–ๆ›ด้ซ˜๏ผˆWin10 1903+ ่‡ชๅธฆ๏ผ‰ | | ็ฃ็›˜็ฉบ้—ด | ่‡ณๅฐ‘ 500 MB ๅฏ็”จ | | ็ฝ‘็ปœ | ๆฃ€ๆŸฅๆ›ดๆ–ฐ้œ€่ฎฟ้—ฎ api.github.com |

ไธ้œ€่ฆๅ•็‹ฌๅฎ‰่ฃ… Node.jsโ€”โ€”ๅŽ็ซฏๅทฒ็”จ pkg ๆ‰“ๅŒ…ๆˆ็‹ฌ็ซ‹ exeใ€‚


๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

1. ไธ‹่ฝฝ

ไปŽ Releases ้กต้ขไธ‹่ฝฝๆœ€ๆ–ฐ็‰ˆๆœฌ็š„ McBotConsole-26H2.zipใ€‚

ๆ ก้ชŒ SHA256๏ผˆPowerShell๏ผ‰๏ผš

Get-FileHash .\McBotConsole-26H2.zip -Algorithm SHA256

ไธŽ Release ้กต้ขๅ…ฌๅธƒ็š„ๅ“ˆๅธŒๅฏนๆฏ”ใ€‚ไธไธ€่‡ด่ฏทๅ‹ฟไฝฟ็”จใ€‚

2. ่งฃๅŽ‹

่งฃๅŽ‹ๅˆฐไปปๆ„็›ฎๅฝ•ใ€‚ไธ่ฆๆ”พๅœจไธญๆ–‡่ทฏๅพ„ๆˆ–ๅซๆœ‰็ฉบๆ ผ็š„่ทฏๅพ„ใ€‚

3. ๅฏๅŠจ

ๅŒๅ‡ป JBSS261A.exeใ€‚

4. ้…็ฝฎ

ๅœจ้กถ้ƒจ่พ“ๅ…ฅๆก†ๅกซๅ…ฅ๏ผš

  • ๆœๅŠกๅ™จๅœฐๅ€๏ผˆIP ๆˆ–ๅŸŸๅ๏ผ‰
  • ็ซฏๅฃ๏ผˆ้ป˜่ฎค 25565๏ผ‰
  • ๆธธๆˆ็‰ˆๆœฌ๏ผˆ้œ€ไธŽๆœๅŠกๅ™จไธ€่‡ด๏ผ‰
  • ๅฐ่ฏ•ๆฌกๆ•ฐ / ๅนถๅ‘ๆ•ฐ

็‚นใ€โš™ ่ฎพ็ฝฎใ€‘ๅฏ้…็ฝฎ่ฟžๆŽฅๅ‚ๆ•ฐใ€ไปฃ็†ใ€็Žฉๅฎถๅๆจกๅผ็ญ‰ใ€‚

5. ่ฟ่กŒ

็‚นใ€โ–ถ ๅผ€ๅง‹ใ€‘ๅฏๅŠจไปปๅŠกใ€‚


๐Ÿ“… ็‰ˆๆœฌ่ง„ๅˆ™

้‡‡็”จ ๅŠๅนด็‰ˆๆœฌ + ่กฅไธ ็š„็ผ–ๅทๆ–นๅผ๏ผš

็ฑปๅž‹ ๆ ผๅผ ็คบไพ‹
ไธป็‰ˆๆœฌ YYHn 26H1๏ผˆ2026 ไธŠๅŠๅนด๏ผ‰ใ€26H2๏ผˆ2026 ไธ‹ๅŠๅนด๏ผ‰
่กฅไธ YYHnuN 26H1u1ใ€26H2u3

่กฅไธๅ…ผๅฎน่ง„ๅˆ™๏ผš

  • 26H2 ๅฏๅŠ ่ฝฝ 26H1 / 26H2 ็š„่กฅไธ๏ผˆๅŒ H ๅทๅ‘ไธ‹ๅ…ผๅฎน๏ผ‰
  • ่ทจๅนด่กฅไธไธๅ…ผๅฎน๏ผˆๅฆ‚ 25H2 ็š„่กฅไธไธ่ƒฝๅœจ 26H2 ไธŠ็”จ๏ผ‰
  • ๅฆ‚ๆžœๆ–ฐ็‰ˆๆœฌไฟฎๆ”นไบ†่กฅไธ่ฆๆ”น็š„ๆ–‡ไปถ๏ผŒ่กฅไธไผšๆ็คบ"็›ฎๆ ‡ๅทฒไฟฎๆ”น"๏ผŒ้œ€่ฆ็กฎ่ฎคๅŽๅบ”็”จ

๐Ÿงฉ ่กฅไธ็ณป็ปŸ

ๅบ”็”จ่กฅไธ

  1. ไปŽๅฎ˜ๆ–นๆธ ้“ไธ‹่ฝฝ .mcpatch ๆ–‡ไปถ
  2. ๆ”พๅ…ฅ็จ‹ๅบ็›ฎๅฝ•็š„ patches/ ๆ–‡ไปถๅคน
  3. ๆ‰“ๅผ€็จ‹ๅบ โ†’ ็‚นใ€๐Ÿงฉ ่กฅไธใ€‘
  4. ้€‰ไธญ่กฅไธ โ†’ ็‚นใ€ๅบ”็”จใ€‘
  5. ็จ‹ๅบไผš่‡ชๅŠจ้‡ๅฏ๏ผˆrequiresRestart: true ๆ—ถ๏ผ‰

ๅ›žๆปš่กฅไธ

  1. ๆ‰“ๅผ€็จ‹ๅบ โ†’ ็‚นใ€๐Ÿงฉ ่กฅไธใ€‘
  2. ๆ‰พๅˆฐๅทฒๅบ”็”จ็š„่กฅไธ โ†’ ็‚นใ€ๅ›žๆปšใ€‘

ๆณจๆ„๏ผšๅ›žๆปšๅชไผšๆขๅค่ขซ่ฆ†็›–็š„ๆ–‡ไปถๅ†…ๅฎน๏ผŒไธไผšๅˆ ้™ค่กฅไธๆ–ฐๅขž็š„ๆ–‡ไปถใ€‚

ๅฎ‰ๅ…จๆœบๅˆถ

  • ่กฅไธๅฟ…้กป็”ฑๅฎ˜ๆ–น็ง้’ฅ็ญพๅ
  • ่กฅไธ ID ๅฟ…้กปๅญ˜ๅœจไบŽๅฎ˜ๆ–น GitHub tag ๅˆ—่กจ
  • ่กฅไธๅ†…ๅฎนๅ— SHA256 ไฟๆŠค
  • ๆฏไธช่กฅไธๅช่ƒฝๅบ”็”จไธ€ๆฌก๏ผˆnonce ้˜ฒ้‡ๆ”พ๏ผ‰

๐Ÿ”„ ๆ›ดๆ–ฐๆฃ€ๆŸฅ

็จ‹ๅบๅฏๅŠจๅŽ 3 ็ง’ไผš้™้ป˜ๆฃ€ๆŸฅๆœ€ๆ–ฐ็‰ˆๆœฌ๏ผš

  • ๆœ‰ๆ–ฐ็‰ˆๆœฌๆ—ถ๏ผŒ็Šถๆ€ๆ ๅณไพงๅ‡บ็Žฐ ๐Ÿ”” ๅ‘็Žฐๆ–ฐ็‰ˆๆœฌ 26H2๏ผŒ็‚นๅ‡ปๆŸฅ็œ‹
  • ็‚นๅ‡ปๅฏๅœจๅฏน่ฏๆก†ไธญๆŸฅ็œ‹ๆ›ดๆ–ฐ่ฏดๆ˜Žใ€ๆ‰“ๅผ€ไธ‹่ฝฝ้กต

ไนŸๅฏไปฅ้šๆ—ถ้€š่ฟ‡่œๅ•ใ€ๅธฎๅŠฉ โ†’ ๆฃ€ๆŸฅๆ›ดๆ–ฐใ€‘ๆ‰‹ๅŠจ่งฆๅ‘ใ€‚


๐Ÿ”Œ ๆ’ไปถๅผ€ๅ‘

Node.js ๆ’ไปถ

็›ฎๅฝ•็ป“ๆž„๏ผš

backend/plugins/<ๆ’ไปถๅ>/
โ”œโ”€โ”€ <ๆ’ไปถๅ>.js      # ไธปๆ–‡ไปถ
โ”œโ”€โ”€ config/
โ”‚   โ””โ”€โ”€ <ๆ’ไปถๅ>.json
โ””โ”€โ”€ log/

<ๆ’ไปถๅ>.js ็คบไพ‹๏ผš

module.exports = {
    name: 'my-plugin',
    version: '1.0.0',
    author: 'YourName',
    description: 'ๆ’ไปถ่ฏดๆ˜Ž',
    requiredPermission: 0,

    init(config, hooks, logger, api) {
        hooks.register('onLogin', (bot, ctx) => {
            logger.info(`Bot ${ctx.botId} ็™ปๅฝ•ๆˆๅŠŸ`);
        });
    },

    unload(reason, logger) {
        logger.info(`ๆ’ไปถๅธ่ฝฝ๏ผš${reason}`);
    }
};

Python ๆ’ไปถ

็›ฎๅฝ•็ป“ๆž„๏ผš

backend/plugins_py/<ๆ’ไปถๅ>/
โ”œโ”€โ”€ plugin.json
โ”œโ”€โ”€ main.py
โ””โ”€โ”€ config.json

plugin.json๏ผš

{
    "name": "my-plugin",
    "version": "1.0.0",
    "author": "YourName",
    "description": "ๆ’ไปถ่ฏดๆ˜Ž",
    "usage": "ไฝฟ็”จ่ฏดๆ˜Ž",
    "main": "main.py"
}

่ฏฆ็ป†ๅผ€ๅ‘ๆŒ‡ๅ—่ง PLUGIN_DEVELOPMENT.mdใ€‚


๐Ÿ“ ็›ฎๅฝ•็ป“ๆž„๏ผˆๅ‘ๅธƒๅŒ…๏ผ‰

McBotConsole-26H2/
โ”œโ”€โ”€ JBSS261A.exe                          โ† ไธป็จ‹ๅบ
โ”œโ”€โ”€ JBSS261A.exe.config
โ”œโ”€โ”€ System.Text.Json.dll
โ”œโ”€โ”€ System.Threading.Tasks.Extensions.dll
โ”œโ”€โ”€ System.Memory.dll
โ”œโ”€โ”€ System.Buffers.dll
โ”œโ”€โ”€ System.Numerics.Vectors.dll
โ”œโ”€โ”€ System.IO.Pipelines.dll
โ”œโ”€โ”€ System.Runtime.CompilerServices.Unsafe.dll
โ”œโ”€โ”€ System.Text.Encodings.Web.dll
โ”œโ”€โ”€ Microsoft.Bcl.AsyncInterfaces.dll
โ”œโ”€โ”€ updater.exe                           โ† ่กฅไธๆ›ดๆ–ฐๅ™จ
โ”œโ”€โ”€ README.txt
โ””โ”€โ”€ backend/
    โ”œโ”€โ”€ mc-bot-backend.exe                โ† Node ๅŽ็ซฏ๏ผˆpkg ๆ‰“ๅŒ…๏ผ‰
    โ”œโ”€โ”€ names.txt                         โ† ่‹ฑๆ–‡ๅๅญ—ๅ…ธ
    โ””โ”€โ”€ config.json                       โ† ้ป˜่ฎค้…็ฝฎ

่ฟ่กŒๆ—ถ่‡ชๅŠจ็”Ÿๆˆ๏ผˆไธ็”จๆ‰‹ๅŠจๅˆ›ๅปบ๏ผ‰๏ผš

  • backend/player_pool.txt๏ผˆ้ฆ–ๆฌกๅฏ็”จ็Žฉๅฎถๆฑ ๆ—ถ็”Ÿๆˆ๏ผ‰
  • backend/logs/๏ผˆๆ—ฅๅฟ—็›ฎๅฝ•๏ผ‰
  • patches/๏ผˆ่กฅไธ็›ฎๅฝ•๏ผ‰
  • patches/applied.jsonl๏ผˆ่กฅไธๅบ”็”จ่ฎฐๅฝ•๏ผ‰

๐Ÿ›  ไปŽๆบ็ ๆž„ๅปบ

็Žฏๅขƒ่ฆๆฑ‚

  • Visual Studio 2022๏ผˆๅซ .NET Framework 4.8 SDK๏ผ‰
  • Node.js 18 ๆˆ– 20๏ผˆ็”จไบŽๆ‰“ๅŒ…ๅŽ็ซฏ๏ผ‰
  • MinGW-w64๏ผˆ็”จไบŽ็ผ–่ฏ‘ updater๏ผ‰
  • pkg ๆˆ– @yao-pkg/pkg๏ผˆNode ๆ‰“ๅŒ…ๅทฅๅ…ท๏ผ‰

็ผ–่ฏ‘ C# ไธป็จ‹ๅบ

ๆ‰“ๅผ€ JBSS261A.sln
โ†’ ้€‰ๆ‹ฉ Release ้…็ฝฎ
โ†’ ็”Ÿๆˆ่งฃๅ†ณๆ–นๆกˆ
่พ“ๅ‡บ๏ผšbin\Release\JBSS261A.exe

ๆ‰“ๅŒ… Node ๅŽ็ซฏ

cd backend
npm install
pkg index.js --target node18-win-x64 --output mc-bot-backend.exe

็ผ–่ฏ‘ updater

cd updater
g++ updater.cpp -o updater.exe -std=c++11 -static -mwindows -lshell32

็ป„่ฃ…ๅ‘ๅธƒๅŒ…

ๅ‚็…ง"็›ฎๅฝ•็ป“ๆž„"็ซ ่Š‚ใ€‚


โ“ ๅธธ่ง้—ฎ้ข˜

Q๏ผš็จ‹ๅบๅฏๅŠจๅŽๆ—ฅๅฟ—ไธ€็›ดๆ˜พ็คบ "ๅŽๅฐ่ฟ˜ๆœชๅฐฑ็ปช"

A๏ผšๆฃ€ๆŸฅ backend/mc-bot-backend.exe ๆ˜ฏๅฆๅญ˜ๅœจใ€‚ๅฆ‚ๆžœ็ผบๅคฑ๏ผŒ่ฏดๆ˜Žๅ‘ๅธƒๅŒ…ไธๅฎŒๆ•ดใ€‚

Q๏ผš็™ปๅฝ•ๅ…จ้ƒจๅคฑ่ดฅ๏ผŒๆ—ฅๅฟ—ๆ˜พ็คบ Connection throttled

A๏ผšๆœๅŠกๅ™จๅฏ็”จไบ†่ฟžๆŽฅ้™ๆตใ€‚่งฃๅ†ณๆ–นๅผ๏ผš

  1. ่ฐƒๅคงใ€่ฎพ็ฝฎ โ†’ ่ฟžๆŽฅๅ‚ๆ•ฐ โ†’ ่ฟžๆŽฅ้—ด้š”ใ€‘
  2. ไฝฟ็”จไปฃ็†ๆฑ 
  3. ๆฃ€ๆŸฅๆœๅŠกๅ™จ spigot.yml ็š„ connection-throttle ้…็ฝฎ

Q๏ผš่ฟžๆŽฅๆ•ฐๆ˜Žๆ˜Ž่ฎพ็ฝฎไบ† 6๏ผŒๅฎž้™…ๅนถๅ‘่ฟœไฝŽไบŽ 6

A๏ผš26H2 ๅทฒไฟฎๅคๆญค้—ฎ้ข˜ใ€‚ๅฆ‚ๆžœไปๅ‡บ็Žฐ๏ผŒๆฃ€ๆŸฅๆ˜ฏๅฆๆœ‰ๅคง้‡้‡่ฏ•ๅ ็”จไบ†ๅนถๅ‘ๆงฝใ€‚

Q๏ผš่กฅไธๅบ”็”จๅŽ็จ‹ๅบๆ— ๆณ•ๅฏๅŠจ

A๏ผšไปŽ patches/backup/<่กฅไธID>/ ๆ‰‹ๅŠจๆขๅคๆ–‡ไปถ๏ผŒๆˆ–้€š่ฟ‡็จ‹ๅบ็š„ใ€๐Ÿงฉ ่กฅไธ โ†’ ๅ›žๆปšใ€‘ๅŠŸ่ƒฝๆขๅคใ€‚

Q๏ผšๆ›ดๆ–ฐๆฃ€ๆŸฅๅคฑ่ดฅ

A๏ผšๅฏ่ƒฝๆ˜ฏ GitHub API ้€Ÿ็އ้™ๅˆถ๏ผˆๆœช่ฎค่ฏ็”จๆˆทๆฏๅฐๆ—ถ 60 ๆฌก๏ผ‰ใ€‚็จๅŽ้‡่ฏ•๏ผŒๆˆ–้…็ฝฎไปฃ็†ใ€‚

Q๏ผš่ƒฝไธ่ƒฝ็ ด่งฃๆœๅŠกๅ™จ็š„ๅๆœบๅ™จไบบๆœบๅˆถ

A๏ผšไธ่ƒฝ๏ผŒไนŸไธๅบ”่ฏฅใ€‚ ็จ‹ๅบๅชไผš่ฎฐๅฝ•้™ๆตไฟกๆฏ๏ผŒไธไผš็ป•่ฟ‡ใ€‚่ฏท่‡ช่กŒ่ฐƒๆ•ด่ฟžๆŽฅ่Š‚ๅฅใ€‚


๐Ÿ“œ License

MIT License


๐Ÿ™ ่‡ด่ฐข

  • mineflayer โ€”โ€” MC ๅ่ฎฎๅฎž็Žฐ
  • PrismarineJS โ€”โ€” ็›ธๅ…ณๅทฅๅ…ท้“พ
  • ๆ‰€ๆœ‰ๆไบค Issues ๅ’Œ PR ็š„็”จๆˆท

McBotConsole

A batch login client for Minecraft Java Edition servers, used to test the capacity of servers you own or have written authorization to test.

GUI (C# WinForms) + Node.js backend (mineflayer). Supports batch login, true concurrency, proxy pools, player pools, plugin system, and hot patching.

Current version: 26H2 | Latest release: Releases


โš ๏ธ Disclaimer

This project is intended only for testing servers you own or have written authorization to test.

  • โŒ Do not use for attacking, stress-testing, or harassing servers you don't own
  • โŒ Do not use to bypass server anti-bot mechanisms
  • โŒ Do not use for any purpose that violates local laws or regulations

Any consequences arising from the use of this tool are the sole responsibility of the user. The author is not liable for any misuse.


โœจ Features

Core Capabilities

  • Batch login: Minecraft protocol implementation based on mineflayer
  • True concurrency: Each bot runs independently in the background, no longer serialized
  • Proxy pool: Supports SOCKS4 / SOCKS5 / HTTP / HTTPS with automatic health tracking and rotation
  • Player pool: Reads names from a file in order, each used once; configurable stop-or-loop on exhaustion
  • English name dictionary: Built-in common English names, customizable via names.txt
  • Auto-reconnect: Reconnects after disconnect (max retries configurable)
  • Multi-instance support: Logs and success records isolated by process PID

Server Diagnostics

  • Pure DNS resolution: No ICMP dependency; works even when the server blocks ping
  • Server analyzer: DNS / Ping / TCP / SLP / Query / plugin probing
  • Plugin detection: Scans server plugin list via Tab completion
  • Debug console: help / status / bots / kick / proxies / memory, etc.

Plugin System

  • Dual-language support: Node.js plugins + Python plugins
  • Permission levels: 0 read-only / 1 chat / 2 control / 3 system-level
  • Hot reload: Load / unload / reload plugins without restarting
  • Lifecycle hooks: beforeConnect / afterConnect / onLogin / onKick / onError / onDisconnect / connectionResult

Patch System

  • Hot patches: .mcpatch format, no need to redownload the full package
  • RSA-2048 signature: Only patches signed with the official private key can be applied
  • Tamper-proof: manifest SHA256 verification
  • Replay protection: One-time nonce
  • Official verification: Patch ID must exist in the official GitHub tag list
  • Auto backup: Backup before replacement, one-click rollback
  • Path traversal protection: Patches cannot write outside the program directory
  • Auto rollback on failure: Automatically restores if replacement fails midway

Update Check

  • Silent check for the latest version on startup
  • Manual check via menu: Help โ†’ Check for Updates
  • Shows release notes, publish time, and download link
  • Warns "old patches may become invalid" when applied patches are detected
  • 10-minute in-memory cache to avoid hitting the GitHub API rate limit

๐Ÿ–ผ Screenshots

5 4

๐Ÿ–ฅ System Requirements

Item Requirement
OS Windows 10 / 11 (64-bit)
.NET Framework 4.8 or higher (bundled with Win10 1903+)
Disk space At least 500 MB free
Network api.github.com accessible for update checks

Node.js is not required โ€” the backend is packaged into a standalone exe via pkg.


๐Ÿš€ Quick Start

1. Download

Download the latest McBotConsole-26H2.zip from the Releases page.

Verify SHA256 (PowerShell):

Get-FileHash .\McBotConsole-26H2.zip -Algorithm SHA256

Compare with the hash published on the release page. Do not use if they don't match.

2. Extract

Extract to any directory. Do not use a path containing Chinese characters or spaces.

3. Launch

Double-click JBSS261A.exe.

4. Configure

Fill in the top bar:

  • Server address (IP or domain)
  • Port (default 25565)
  • Game version (must match the server)
  • Attempt count / concurrency

Click โš™ Settings to configure connection parameters, proxy, player name mode, etc.

5. Run

Click โ–ถ Start to begin the task.


๐Ÿ“… Versioning

The project uses a half-year version + patch numbering scheme:

Type Format Example
Major version YYHn 26H1 (2026 H1), 26H2 (2026 H2)
Patch YYHnuN 26H1u1, 26H2u3

Patch compatibility rules:

  • 26H2 can load patches for 26H1 / 26H2 (same H number, backwards compatible)
  • Cross-year patches are incompatible (e.g., a 25H2 patch cannot be used on 26H2)
  • If a new version modified a file targeted by the patch, the patch will warn "target modified" and require confirmation

๐Ÿงฉ Patch System

Applying a Patch

  1. Download the .mcpatch file from an official source
  2. Place it in the patches/ folder in the program directory
  3. Open the program โ†’ click ๐Ÿงฉ Patches
  4. Select the patch โ†’ click Apply
  5. The program will restart automatically (when requiresRestart: true)

Rolling Back a Patch

  1. Open the program โ†’ click ๐Ÿงฉ Patches
  2. Find the applied patch โ†’ click Rollback

Note: Rollback only restores the contents of overwritten files; it does not delete files added by the patch.

Security Mechanisms

  • Patches must be signed with the official private key
  • Patch ID must exist in the official GitHub tag list
  • Patch contents are protected by SHA256
  • Each patch can only be applied once (nonce replay protection)

๐Ÿ”„ Update Check

The program silently checks for new versions 3 seconds after startup:

  • When a new version is available, ๐Ÿ”” New version 26H2 available, click to view appears in the status bar
  • Clicking opens a dialog with release notes and a download link

You can also trigger a manual check anytime via Help โ†’ Check for Updates.


๐Ÿ”Œ Plugin Development

Node.js Plugins

Directory structure:

backend/plugins/<plugin-name>/
โ”œโ”€โ”€ <plugin-name>.js      # Main file
โ”œโ”€โ”€ config/
โ”‚   โ””โ”€โ”€ <plugin-name>.json
โ””โ”€โ”€ log/

<plugin-name>.js example:

module.exports = {
    name: 'my-plugin',
    version: '1.0.0',
    author: 'YourName',
    description: 'Plugin description',
    requiredPermission: 0,

    init(config, hooks, logger, api) {
        hooks.register('onLogin', (bot, ctx) => {
            logger.info(`Bot ${ctx.botId} logged in`);
        });
    },

    unload(reason, logger) {
        logger.info(`Plugin unloaded: ${reason}`);
    }
};

Python Plugins

Directory structure:

backend/plugins_py/<plugin-name>/
โ”œโ”€โ”€ plugin.json
โ”œโ”€โ”€ main.py
โ””โ”€โ”€ config.json

plugin.json:

{
    "name": "my-plugin",
    "version": "1.0.0",
    "author": "YourName",
    "description": "Plugin description",
    "usage": "Usage instructions",
    "main": "main.py"
}

For detailed development guide, see PLUGIN_DEVELOPMENT.md.


๐Ÿ“ Directory Structure (Release Package)

McBotConsole-26H2/
โ”œโ”€โ”€ JBSS261A.exe                          โ† Main program
โ”œโ”€โ”€ JBSS261A.exe.config
โ”œโ”€โ”€ System.Text.Json.dll
โ”œโ”€โ”€ System.Threading.Tasks.Extensions.dll
โ”œโ”€โ”€ System.Memory.dll
โ”œโ”€โ”€ System.Buffers.dll
โ”œโ”€โ”€ System.Numerics.Vectors.dll
โ”œโ”€โ”€ System.IO.Pipelines.dll
โ”œโ”€โ”€ System.Runtime.CompilerServices.Unsafe.dll
โ”œโ”€โ”€ System.Text.Encodings.Web.dll
โ”œโ”€โ”€ Microsoft.Bcl.AsyncInterfaces.dll
โ”œโ”€โ”€ updater.exe                           โ† Patch updater
โ”œโ”€โ”€ README.txt
โ””โ”€โ”€ backend/
    โ”œโ”€โ”€ mc-bot-backend.exe                โ† Node backend (pkg-packaged)
    โ”œโ”€โ”€ names.txt                         โ† English name dictionary
    โ””โ”€โ”€ config.json                       โ† Default config

Auto-generated at runtime (no need to create manually):

  • backend/player_pool.txt (created when player pool is first enabled)
  • backend/logs/ (log directory)
  • patches/ (patch directory)
  • patches/applied.jsonl (patch application record)

๐Ÿ›  Building from Source

Prerequisites

  • Visual Studio 2022 (with .NET Framework 4.8 SDK)
  • Node.js 18 or 20 (for packaging the backend)
  • MinGW-w64 (for compiling the updater)
  • pkg or @yao-pkg/pkg (Node packaging tool)

Building the C# Main Program

Open JBSS261A.sln
โ†’ Select Release configuration
โ†’ Build Solution
Output: bin\Release\JBSS261A.exe

Packaging the Node Backend

cd backend
npm install
pkg index.js --target node18-win-x64 --output mc-bot-backend.exe

Compiling the Updater

cd updater
g++ updater.cpp -o updater.exe -std=c++11 -static -mwindows -lshell32

Assembling the Release Package

Refer to the "Directory Structure" section.


โ“ FAQ

Q: The log keeps showing "Backend not ready" after startup

A: Check whether backend/mc-bot-backend.exe exists. If missing, the release package is incomplete.

Q: All logins fail, the log shows Connection throttled

A: The server has connection throttling enabled. Solutions:

  1. Increase Settings โ†’ Connection โ†’ Connection Interval
  2. Use a proxy pool
  3. Check the server's spigot.yml connection-throttle setting

Q: Concurrency is set to 6, but actual concurrency is far below 6

A: Fixed in 26H2. If it still occurs, check whether many retries are occupying concurrency slots.

Q: The program won't start after applying a patch

A: Manually restore files from patches/backup/<patch-id>/, or use the program's ๐Ÿงฉ Patches โ†’ Rollback feature.

Q: Update check fails

A: Possibly hit the GitHub API rate limit (60 requests/hour for unauthenticated users). Retry later, or configure a proxy.

Q: Can it bypass a server's anti-bot mechanism?

A: No, and it shouldn't. The program only logs throttling information; it does not bypass anything. Adjust your connection pace yourself.


๐Ÿ™ Acknowledgments

  • mineflayer โ€” Minecraft protocol implementation
  • PrismarineJS โ€” Related toolchain
  • All users who submitted issues and PRs

Project Home: https://github.com/Lx934/McBotConsole Issues: https://github.com/Lx934/McBotConsole/issues Latest Release: https://github.com/Lx934/McBotConsole/releases

้กน็›ฎไธป้กต๏ผšhttps://github.com/Lx934/McBotConsole ้—ฎ้ข˜ๅ้ฆˆ๏ผšhttps://github.com/Lx934/McBotConsole/issues ๆœ€ๆ–ฐๅ‘ๅธƒ๏ผšhttps://github.com/Lx934/McBotConsole/releases