PrismarineJS / node-minecraft-protocol-forge

Plugin to add FML/Forge client support (including auto-versioning) to node-minecraft-protocol
54 stars 18 forks source link

mod list is now Encrypted | Encoded with special technique. #26

Closed Wondermine closed 1 year ago

Wondermine commented 1 year ago

I will just leave this issue here.

When you try to get the packet for the server_info. You will find some unfimiliar characters and some weird patterns. The normal packet is there, but an additional key is added, "d". And that key contains unknown binary information.

After some digging, it appears that the newer forge versions encrypt mod lists to avoid packet limit issues. which ends up breaking autoVersionForge. I've been trying to decrypt this data but with no success.

mineflayer will be able to join if mods are able to be played with vanilla, but game-changing mods will just break the bot. and the bot will assume no mods are present.

Example

{
  'forgeData': {
    'channels': [],
    'mods': [],
    'truncated': False,
    'fmlNetworkVersion': 3,
    'd': 'Ñ\x00\x00ࠌ㐤獋㙖⹌ᦘ̺⸱恤䒸⡑⛧沮婙㨹牥ఈㄵচ₀沮婙㨹牥ఈㄵচ䀀⺁Კス汢峊ᖑ䮓挰䘅ఋᢗ㔶ਈ㶘㮓㙖䠠ᙓ㨆敩㻤㷍⎓暗泭ీ᠗Ԁ惦▱ᮣ挐☥䂀や敬曰㶵ᬓၧ䗆ಌ᪗洌勂綹䌚昖ⷍ嬙ᢀ\x00䐚㶥⭫ญᥛ㨷\u0a79灢䂸ű勣䜦䂌ㆃ瑩䣂㆕ါ䋣䗆䌌ザ湩䚾֡獳䙖\u202d\x0c'
  },
  'description': {
    'text': 'A Minecraft Server'
  },
  'players': {
    'max': 20,
    'online': 0},
    'version': {
      'name': '1.20.1',
      'protocol': 763
    }
}