pages235/src/packetsReplay.ts
2024-07-07 01:31:33 +03:00

32 lines
962 B
TypeScript

import { proxy } from 'valtio'
import { PacketsLogger } from './packetsReplayBase'
export const packetsReplaceSessionState = proxy({
active: false,
})
const replayLogger = new PacketsLogger()
export default () => {
customEvents.on('mineflayerBotCreated', () => {
replayLogger.contents = ''
bot._client.on('packet', (data, { name, state }) => {
if (!packetsReplaceSessionState.active) {
return
}
replayLogger.log(true, { name, state }, data)
})
bot._client.on('writePacket' as any, (name, data) => {
if (!packetsReplaceSessionState.active) {
return
}
replayLogger.log(false, { name, state: bot._client.state }, data)
})
})
}
export const downloadPacketsReplay = async () => {
const a = document.createElement('a')
a.href = `data:text/plain;charset=utf-8,${encodeURIComponent(replayLogger.contents)}`
a.download = `packets-replay-${new Date().toISOString()}.txt`
a.click()
}