ms/packages/client/src/index.ts

54 lines
1.3 KiB
TypeScript
Raw Normal View History

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 })
})