Skip to content

Instantly share code, notes, and snippets.

@Blocksnmore
Created February 18, 2024 18:24
Show Gist options
  • Save Blocksnmore/da897ea40279aa6ff46f3447db546e0a to your computer and use it in GitHub Desktop.
Save Blocksnmore/da897ea40279aa6ff46f3447db546e0a to your computer and use it in GitHub Desktop.
import mc from "npm:minecraft-protocol";
import PrismarineChunk from "npm:prismarine-chunk";
import Vec3 from "npm:vec3";
import MCData from "npm:minecraft-data";
const mcData = MCData('1.16.5')
const Chunk = PrismarineChunk('1.16.5')
const server = mc.createServer({
'online-mode': true,
encryption: true,
host: '0.0.0.0',
port: 25565,
version: '1.16.5'
})
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('playerJoin', function (client) {
client.write('login', {
...loginPacket,
entityId: client.id,
isHardcore: false,
gameMode: 0,
previousGameMode: 1,
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
})
})
const mc = require("minecraft-protocol");
const PrismarineChunk = require("prismarine-chunk");
const Vec3 = require("vec3");
const MCData = require("minecraft-data");
const mcData = MCData("1.16.5");
const Chunk = PrismarineChunk("1.16.5");
const server = mc.createServer({
"online-mode": true,
encryption: true,
host: "0.0.0.0",
port: 25565,
version: "1.16.5",
});
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("playerJoin", function (client) {
client.write("login", {
...loginPacket,
entityId: client.id,
isHardcore: false,
gameMode: 0,
previousGameMode: 1,
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,
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment