PrismarineJS / bedrock-protocol

Minecraft Bedrock protocol library, with authentication and encryption
https://prismarinejs.github.io/minecraft-data/?v=bedrock_1.17.10&d=protocol
MIT License
308 stars 72 forks source link

Test and workflow updates #492

Closed extremeheat closed 3 months ago

extremeheat commented 6 months ago

Add data extraction and automatic update workflow

  1. index.js -- ran initially on CRON schedule to check for updates
  2. update1.js -- runs bedrock-protocol client against the updated server to collect data from server->client. Also runs a behavior pack to extract block data.
  3. disa.exe -- disassembly analysis for Minecraft bedrock edition server binary (combining data from both Linux/Win binaries). Has a basic x86 interpreter with some ugly string manipulation and state-tracking code.
    • x86 disassembly analysis for the server software with symbol information is similar to decompiling the Minecraft Java Edition and running various extractors on the decompiled code
    • Can be expanded to extract pretty much any desired data from the server software
  4. pdba.exe -- get symbol data from PDB file for Minecraft bedrock edition Windows server binary
  5. update3.js -- aggregate and finalize data, send to llm-services for further handling
socket-security[bot] commented 6 months ago

New dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/gh-helpers@0.2.2 environment, filesystem Transitive: eval, network, shell, unsafe +174 109 MB extremeheat
npm/minecraft-bedrock-server@1.4.1 environment, filesystem, network, shell +2 177 kB extremeheat

View full report↗︎

rom1504 commented 5 months ago

does it work?

extremeheat commented 5 months ago

It works right now for extracting data/updating creates GH issue with some additional information like the mc-data helper-bot, but I've not implemented the auto PR generation yet.

Since the code is pretty big here I think it may make more sense to move the helper-bot code (the extractor part) outside of the repo to a new repo that's called over a workflow dispatch.

Maybe to https://github.com/PrismarineJS/minecraft-data-auto-updater ?