Witchcraft/demos/v.sh

169 lines
4.2 KiB
Bash

#!/usr/bin/env bash
# v.sh - a valentine card for my gfs <3
palette+=("c10b") # red tulip
palette+=("c20b") # orange tulip
palette+=("c30b") # white tulip
palette+=("00") # air (for the random gen)
palette+=("00") # air
palette+=("00") # air
palette+=("e64b") # red concrete
palette+=("f98001") # polished blackstone bricks
palette+=("d84b") # white concrete
palette+=("ae0b") # red wool
spawn_pos=(8 -63 5)
gamemode=00
function hook_chunks() {
if [[ $nick != 'selfisekai' && $nick != 'MaeIsBadAtDev' && $nick != 'Domi_UwU' ]]; then
pkt_disconnect "§asomething something hmu if you wanna go in"
fi
rm -R $TEMP/world/* # regenerate chunks
mmm='
________________
________________
________________
________________
____^^____^^____
___^..^__^..^___
__^.,..__....^__
__^....^^....^__
__^..........^__
__^..........^__
___^........^___
____^......^____
_____^....^_____
______^..^______
______@^^@______
_____@@@@@@_____
________________'
mmmap="$(echo -n "$mmm" | chunkfix | sed -E 's/\./25/g;s/#/02/g;s/,/27/g;s/_/00/g;s/@/26/g;s/\^/28/g')"
chunk_header
for (( y=0; y<16; y++ )); do
if [[ $y == 0 ]]; then
chunk+="$(repeat 256 "02")"
elif [[ $y == 1 ]]; then
for (( i=0; i<$((256-16)); i++ )); do
chunk+=$(printf '%02x' $(((RANDOM%6)+31)))
done
b=''
for i in {1..5}; do b+=$(printf '%02x' $(((RANDOM%6)+31))); done
for i in {1..6}; do b+='26'; done
for i in {1..5}; do b+=$(printf '%02x' $(((RANDOM%6)+31))); done
chunk+="$(tr -d '\n' <<< "$b" | hexchunkfix)"
else
for (( x=0; x<16; x++ )); do
if [[ $x == 15 ]]; then
chunk+="$(echo -n "$mmmap" | tail -n $((y+1)) | head -n1)"
else
for (( z=0; z<16; z++ )); do
chunk+="00"
done
fi
done
fi
done
chunk_footer
echo "$chunk" > $TEMP/world/0000000000000000
chunk_header
chunk+="$(repeat 256 "02")"
for (( i=0; i<256; i++ )); do
chunk+="$(printf '%02x' $(((RANDOM%6)+31)))"
done
chunk+="$(repeat $((4096-512)) "00")"
chunk_footer
echo "$chunk" > $TEMP/world/FFFFFFFFFFFFFFFF
echo "$chunk" > $TEMP/world/FFFFFFFF00000000
echo "$chunk" > $TEMP/world/FFFFFFFF00000001
echo "$chunk" > $TEMP/world/00000000FFFFFFFF
echo "$chunk" > $TEMP/world/0000000000000001
echo "$chunk" > $TEMP/world/00000001FFFFFFFF
echo "$chunk" > $TEMP/world/0000000100000000
echo "$chunk" > $TEMP/world/0000000100000001
pkt_chunk FFFFFFFE FFFFFFFE 01
pkt_chunk FFFFFFFE FFFFFFFF 01
pkt_chunk FFFFFFFE 00000000 01
pkt_chunk FFFFFFFE 00000001 01
pkt_chunk FFFFFFFE 00000002 01
pkt_chunk FFFFFFFF FFFFFFFE 01
pkt_chunk FFFFFFFF FFFFFFFF
pkt_chunk FFFFFFFF 00000000
pkt_chunk FFFFFFFF 00000001
pkt_chunk FFFFFFFF 00000002
pkt_chunk 00000000 FFFFFFFE 01
pkt_chunk 00000000 FFFFFFFF
pkt_chunk 00000000 00000000
pkt_chunk 00000000 00000001
pkt_chunk 00000000 00000002
pkt_chunk 00000001 FFFFFFFE 01
pkt_chunk 00000001 FFFFFFFF
pkt_chunk 00000001 00000000
pkt_chunk 00000001 00000001
pkt_chunk 00000001 00000002
pkt_chunk 00000002 FFFFFFFE 01
pkt_chunk 00000002 FFFFFFFF
pkt_chunk 00000002 00000000
pkt_chunk 00000002 00000001
pkt_chunk 00000002 00000002
pkt_particle ${spawn_pos[0]} ${spawn_pos[1]} ${spawn_pos[2]} 33 100
}
function async_particles() {
while true; do
pkt_particle 4 -60 12 33 10
pkt_particle 12 -60 12 33 10
sleep 0.5
if [[ ! -a $TEMP/players/$nick ]]; then # die if disconnected
break
fi
done
}
function hook_swing() {
pkt_particle 4 -60 12 33 128
pkt_particle 12 -60 12 33 128
}
function hook_ping() {
json='{"version":{"name":"1.18.1","protocol":757},"players":{"max":1,"online":0,"sample":[]},"description":{"text":"§c♡♡♡§a h,,hi --><-- §c♡♡♡ §r \ncome see what I made?"},"favicon":"data:image/png;base64,'"$(base64 -w0 icon.png)"'"}'
res="$(str_len "$json")$(echo -n "$json" | xxd -p)"
send_packet "00" "$res"
}
function hook_start() {
pkt_particle ${spawn_pos[0]} ${spawn_pos[1]} ${spawn_pos[2]} 33 10
if [[ $nick == "selfisekai" ]]; then
pkt_title "§dLauren §c<3"
sleep 2
pkt_title "Thanks for being here ^^"
pkt_subtitle "You mean the world to me <3"
elif [[ $nick == "MaeIsBadAtDev" ]]; then
pkt_title "§aMaja §c<3"
sleep 2
pkt_title "Thanks for being awesome ^^"
pkt_subtitle "I love you <3"
fi
async_particles &
}