+ map demo WIP

This commit is contained in:
Dominika 2022-02-09 05:31:45 +01:00
parent b67a984085
commit 13779a8a47
3 changed files with 53 additions and 19 deletions

27
demos/map.sh Normal file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env bash
function hook_chunks() {
log "hooking chunks"
echo "ffff081f00 01 09 0a 0e 0f 15 21 00 31 00 41 42 44 45 47 49 4d 9401 8402 8602 8702 8902 00 9602 00 00 00 00 00 f60a8004" > $TEMP/world/0000000000000000
map=""
for (( i=0; i<4097; i++ )); do
map+="$(printf '%02x' $((RANDOM%15)))"
done
echo "$map" >> $TEMP/world/0000000000000000
echo "000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001" >> $TEMP/world/0000000000000000
pkt_chunk FFFFFFFF FFFFFFFF
pkt_chunk FFFFFFFF 00000000
pkt_chunk FFFFFFFF 00000001
pkt_chunk 00000000 FFFFFFFF
pkt_chunk 00000000 00000000
pkt_chunk 00000000 00000001
pkt_chunk 00000001 FFFFFFFF
pkt_chunk 00000001 00000000
pkt_chunk 00000001 00000001
}

5
mc.sh
View file

@ -12,6 +12,11 @@ source src/int.sh
source src/packet.sh source src/packet.sh
source src/hooks.sh source src/hooks.sh
if [[ -f "$1" ]]; then
log "Loading plugin: $1"
source "$1"
fi
function keep_alive() { function keep_alive() {
while true; do while true; do
sleep 5 sleep 5

View file

@ -28,33 +28,35 @@ function pkt_chunk() {
# nbt tag MOTION_BLOCKING len light data for a superflat map # nbt tag MOTION_BLOCKING len light data for a superflat map
res+="0a00000c000f 4d4f54494f4e5f424c4f434b494e47 00000025 010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804 0000000020100804 00" res+="0a00000c000f 4d4f54494f4e5f424c4f434b494e47 00000025 010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804010080402010080401008040201008040100804020100804 0000000020100804 00"
chunk="ffff" # amount of blocks, doesnt matter if [[ -f $TEMP/world/$1$2 ]]; then
chunk+="08" # palette - bits per block chunk=$(cat $TEMP/world/$1$2)
#chunk+="04" # palette - bits per block else
chunk+="$(int2varint ${#palette[@]})" # palette - entries amount chunk="ffff" # amount of blocks, doesnt matter
#chunk+="04" chunk+="08" # palette - bits per block
#chunk+="04" # palette - bits per block
chunk+="$(int2varint ${#palette[@]})" # palette - entries amount
#chunk+="04"
chunk+="${palette[@]}" chunk+="${palette[@]}"
#chunk+="0f af0b 01 00" #chunk+="0f af0b 01 00"
chunk+="8004" # len of next array chunk+="8004" # len of next array
l=$(echo -n "8002" | xxd -p -r | varint2int) l=$(echo -n "8002" | xxd -p -r | varint2int)
for (( i=0; i<$((l*16)); i++ )); do for (( i=0; i<$((l*16)); i++ )); do
chunk+="01" # third entry of palette chunk+="01" # third entry of palette
done done
chunk+="0001" # biome palette chunk+="0001" # biome palette
for i in {1..26}; do for i in {1..26}; do
chunk+="0000000000000001" # set biome chunk+="0000000000000001" # set biome
done done
echo -n "$chunk" > $TEMP/world/$1$2
fi
warn $(hexstr_len "$chunk")
res+="$(hexstr_len "$chunk")" # Data len res+="$(hexstr_len "$chunk")" # Data len
res+="$chunk" # Chunk data itself res+="$chunk" # Chunk data itself
rhexlog "$res"
res+="00 01 00 00 00 00 00 00" # empty bitsets and light arrays res+="00 01 00 00 00 00 00 00" # empty bitsets and light arrays
echo -n "$(hexpacket_len "$res")22$res" | xxd -p -r echo -n "$(hexpacket_len "$res")22$res" | xxd -p -r