LookAtMySuitBot/js/node_modules/protodef/example.js

83 lines
1.4 KiB
JavaScript
Raw Normal View History

2023-12-24 20:08:39 -05:00
const ProtoDef = require('protodef').ProtoDef
const Serializer = require('protodef').Serializer
const Parser = require('protodef').Parser
// the protocol can be in a separate json file
const exampleProtocol = {
container: 'native',
varint: 'native',
byte: 'native',
bool: 'native',
switch: 'native',
entity_look: [
'container',
[
{
name: 'entityId',
type: 'varint'
},
{
name: 'yaw',
type: 'i8'
},
{
name: 'pitch',
type: 'i8'
},
{
name: 'onGround',
type: 'bool'
}
]
],
packet: [
'container',
[
{
name: 'name',
type: [
'mapper',
{
type: 'varint',
mappings: {
22: 'entity_look'
}
}
]
},
{
name: 'params',
type: [
'switch',
{
compareTo: 'name',
fields: {
entity_look: 'entity_look'
}
}
]
}
]
]
}
const proto = new ProtoDef()
proto.addTypes(exampleProtocol)
const parser = new Parser(proto, 'packet')
const serializer = new Serializer(proto, 'packet')
serializer.write({
name: 'entity_look',
params: {
entityId: 1,
yaw: 1,
pitch: 1,
onGround: true
}
})
serializer.pipe(parser)
parser.on('data', function (chunk) {
console.log(JSON.stringify(chunk, null, 2))
})