feat: add mc console client package
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
53
packages/client/src/index.ts
Normal file
53
packages/client/src/index.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { createInterface } from 'readline'
|
||||
import { createClient } from 'minecraft-protocol'
|
||||
|
||||
import { $ } from './color'
|
||||
import { attachForge } from './forge'
|
||||
|
||||
let client = createClient({
|
||||
version: '1.12.2',
|
||||
host: '192.168.2.5',
|
||||
port: 25577,
|
||||
username: process.argv[2] || 'Mr_jtb',
|
||||
skipValidation: true
|
||||
})
|
||||
|
||||
attachForge(client)
|
||||
|
||||
client.on('chat', (packet) => {
|
||||
// Listen for chat messages and echo them back.
|
||||
var jsonMsg = JSON.parse(packet.message);
|
||||
console.log($(jsonMsg))
|
||||
})
|
||||
|
||||
client.on('state', (newState, oldState) => {
|
||||
console.log('Client Change State', oldState, 'to', newState)
|
||||
let targetServer = process.argv[3]
|
||||
if (newState == "play" && targetServer) {
|
||||
setTimeout(() => {
|
||||
client.write('chat', {
|
||||
message: '/server ' + targetServer
|
||||
})
|
||||
}, 3000)
|
||||
}
|
||||
})
|
||||
|
||||
const rl = createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
terminal: false
|
||||
})
|
||||
|
||||
rl.on('line', function(line) {
|
||||
if (line === '') {
|
||||
return
|
||||
} else if (line === '/quit') {
|
||||
console.info('Disconnected')
|
||||
client.end("")
|
||||
return
|
||||
} else if (line === '/end') {
|
||||
console.info('Forcibly ended client')
|
||||
process.exit(0)
|
||||
}
|
||||
client.write('chat', { message: line })
|
||||
})
|
||||
Reference in New Issue
Block a user