PrismarineJS / PrismarineJS/node-minecraft-protocol
Example doesn't work on 1.18.2
Open
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.4k
- Forks
- 290
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 7
Description
[ ] The FAQ doesn't contain a resolution to my issue
Versions
- minecraft-protocol: 1.32.1
- server: Vanilla 1.18.2
- node:16.14.2
Detailed description of a problem
Example code doesn't work on 1.18.2
Current code
const mc = require('minecraft-protocol')
const Chunk = require('prismarine-chunk')('1.18.2')
const Vec3 = require('vec3')
const server = mc.createServer({
'online-mode': true,
encryption: true,
host: '0.0.0.0',
port: 25565,
version: '1.18.2'
})
const mcData = require('minecraft-data')(server.version)
const loginPacket = mcData.loginPacket
const chunk = new Chunk()
for (let x = 0; x < 16; x++) {
for (let z = 0; z < 16; z++) {
chunk.setBlockType(new Vec3(x, 100, z), mcData.blocksByName.grass_block.id)
chunk.setBlockData(new Vec3(x, 100, z), 1)
for (let y = 0; y < 256; y++) {
chunk.setSkyLight(new Vec3(x, y, z), 15)
}
}
}
server.on('login', function (client) {
client.write('login', {
entityId: client.id,
isHardcore: false,
gameMode: 0,
previousGameMode: 1,
worldNames: loginPacket.worldNames,
dimensionCodec: loginPacket.dimensionCodec,
dimension: loginPacket.dimension,
worldName: 'minecraft:overworld',
hashedSeed: [0, 0],
maxPlayers: server.maxPlayers,
viewDistance: 10,
reducedDebugInfo: false,
enableRespawnScreen: true,
isDebug: false,
isFlat: false
})
client.write('map_chunk', {
x: 0,
z: 0,
groundUp: true,
biomes: chunk.dumpBiomes !== undefined ? chunk.dumpBiomes() : undefined,
heightmaps: {
type: 'compound',
name: '',
value: {} // Client will accept fake heightmap
},
bitMap: chunk.getMask(),
chunkData: chunk.dump(),
blockEntities: []
})
client.write('position', {
x: 15,
y: 101,
z: 15,
yaw: 137,
pitch: 0,
flags: 0x00
})
})
Expected behavior
When joining the server, blocks / chunk will be visible
Additional context
None
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with docs/FAQ.md, then run the reported JavaScript server example with Minecraft 1.18.2 and the listed package and Node versions. Inspect the login and map_chunk packets, especially the generated chunk data and heightmaps. Done means a client joining the server can see the generated blocks and chunk.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100