$${
#homes = 3;
&prefixo = "/home h";
#quantas_colunas = 17;
&delay = 200ms;
&teleporte = 5000ms;
&mkb = "/home mkb";
if(@rep);
log("&f&l[&e&lMA&f&lCRO] &f&lDu&e&lCacau &c&lOFF");
unset(@rep);
stop();
endif;
else;
log("&f&l[&e&lMA&f&lCRO] &f&lDu&e&lCacau &a&lON");
set(@rep);
unset(@armazem);
do();
FOR(#i,1,%#homes%);
echo(%&prefixo%%#i%);
wait(6000ms);
do(%#quantas_colunas%);
do(1);
wait(%&delay%);
LOOK(0,44);
wait(%&delay%);
IF(%HIT_AGE% == 2);
pick("diamond_axe");
wait(%&delay%);
key(attack);
wait(%&delay%);
pick("dye");
key(use);
wait(%&delay%);
elseif(%HITID% == "log");
pick("dye");
key(use);
wait(%&delay%);
endif;
wait(%&delay%);
LOOK(0,28);
wait(%&delay%);
IF(%HIT_AGE% == 2);
pick("diamond_axe");
wait(%&delay%);
key(attack);
wait(%&delay%);
pick("dye");
key(use);
wait(%&delay%);
elseif(%HITID% == "log");
pick("dye");
key(use);
wait(%&delay%);
endif;
wait(%&delay%);
LOOK(0,0);
wait(%&delay%);
IF(%HIT_AGE% == 2);
pick("diamond_axe");
wait(%&delay%);
key(attack);
wait(%&delay%);
pick("dye");
key(use);
wait(%&delay%);
elseif(%HITID% == "log");
pick("dye");
key(use);
wait(%&delay%);
endif;
wait(%&delay%);
LOOK(0,-23);
wait(%&delay%);
IF(%HIT_AGE% == 2);
pick("diamond_axe");
wait(%&delay%);
key(attack);
wait(%&delay%);
pick("dye");
key(use);
wait(%&delay%);
elseif(%HITID% == "log");
pick("dye");
key(use);
wait(%&delay%);
endif;
wait(%&delay%);
LOOK(0,-15);
wait(%&delay%);
IF(%HIT_AGE% == 2);
pick("diamond_axe");
wait(%&delay%);
key(attack);
wait(%&delay%);
pick("dye");
key(use);
wait(%&delay%);
elseif(%HITID% == "log");
pick("dye");
key(use);
wait(%&delay%);
endif;
loop;
wait(%&delay%);
look(0,0);
wait(%&delay%);
IF(%DIRECTION%=="N");
LOOK(450,0);
ELSEIF(%DIRECTION%=="W");
LOOK(360,0);
ELSEIF(%DIRECTION%=="S");
LOOK(270,0);
ELSEIF(%DIRECTION%=="E");
LOOK(180,0);
ENDIF;
IF(%DIRECTION%=="N");
SET(#looky44a1cc, 360);
SET(#lookp44a1cc, 0);
ELSEIF(%DIRECTION%=="W");
SET(#looky44a1cc, 270);
SET(#lookp44a1cc, 0);
ELSEIF(%DIRECTION%=="S");
SET(#looky44a1cc, 180);
SET(#lookp44a1cc, 0);
ELSEIF(%DIRECTION%=="E");
SET(#looky44a1cc, 450);
SET(#lookp44a1cc, 0);
ENDIF;
IF(%DIRECTION%=="E");
#xpos244a1cd=%XPOS%+1;
#zpos244a1ce=0;
ELSEIF(%DIRECTION%=="N");
#zpos244a1ce=%ZPOS%-1;
#xpos244a1cd=0;
ELSEIF(%DIRECTION%=="W");
#xpos244a1cd=%XPOS%-1;
#zpos244a1ce=0;
ELSEIF(%DIRECTION%=="S");
#zpos244a1ce=%ZPOS%+1;
#xpos244a1cd=0;
ENDIF;
IF((%DIRECTION%=="N")||(%DIRECTION%=="S"));
DO();
KEYDOWN(forward);
IF(%ZPOS%==%#zpos244a1ce%);
LOOK(%#looky44a1cc%,%#lookp44a1cc%);
KEYUP(forward);
BREAK;
ENDIF;
LOOP;
ELSEIF((%DIRECTION%=="E")||(%DIRECTION%=="W"));
DO();
KEYDOWN(forward);
IF(%XPOS%==%#xpos244a1cd%);
LOOK(%#looky44a1cc%,%#lookp44a1cc%);
KEYUP(forward);
BREAK;
ENDIF;
LOOP;
ENDIF;
IF(%DIRECTION%=="N");
LOOK(270,0);
ELSEIF(%DIRECTION%=="W");
LOOK(180,0);
ELSEIF(%DIRECTION%=="S");
LOOK(450,0);
ELSEIF(%DIRECTION%=="E");
LOOK(360);
ENDIF;
log("&f&l[&e&lMA&f&lCRO] &f&lPassinho pro lado");
wait(100ms);
loop;
wait(3000ms);
gui(inventory);
wait(500ms);
GETSLOTITEM(35,&idvar,#stacks);
IF(%&idvar% == "dye");
IF(%#stacks%==64);
log("&f&l[&e&lMA&f&lCRO] &f&lIniciando Armazenamento");
set(@armazem);
break();
endif;
ENDIF;
gui();
NEXT;
IF(@armazem);
wait(500ms);
echo(%&mkb%);
wait(6000ms);
SET(#bau44a1d6,0);
SET(#distancia44a1d6,0);
UNSET(#coluna44a1d6);
UNSET(#baus_verificados44a1d6);
UNSET(#quantidade_movidos);
DO;
#distancia44a1d6=#distancia44a1d6*1;
if(%DIRECTION%=="N");
#dir44a1d7=0;
#variacaoz44a1d7=0;
#variacaox44a1d7=1;
SET(andar_direita44a1d7);
SET(distancia_positiva44a1d7);
elseif(%DIRECTION%=="S");
#dir44a1d7=180;
#variacaoz44a1d7=0;
#variacaox44a1d7=-1;
SET(andar_direita44a1d7);
UNSET(distancia_positiva44a1d7);
elseif(%DIRECTION%=="E");
#dir44a1d7=90;
#variacaox44a1d7=0;
#variacaoz44a1d7=1;
SET(andar_direita44a1d7);
SET(distancia_positiva44a1d7);
elseif(%DIRECTION%=="W");
#dir44a1d7=270;
#variacaox44a1d7=0;
#variacaoz44a1d7=-1;
SET(andar_direita44a1d7);
UNSET(distancia_positiva44a1d7);
endif;
#destinox44a1d7=XPOS+(%#distancia44a1d6%*#variacaox44a1d7);
#destinoz44a1d7=ZPOS+(%#distancia44a1d6%*#variacaoz44a1d7);
SET(#pitch_congelado44a1d7,%PITCH%);
CENTEROVERBLOCK();
WAIT(3t);
do;
look(%#dir44a1d7%,%#pitch_congelado44a1d7%);
GETIDREL(%#variacaox44a1d7%,-1,%#variacaoz44a1d7%,&bloco_lado44a1d7);
GETIDREL(%#variacaox44a1d7%,0,%#variacaoz44a1d7%,&bloco_lado044a1d7);
GETIDREL(%#variacaox44a1d7%,1,%#variacaoz44a1d7%,&bloco_lado144a1d7);
#diferenca_eixo44a1d7=(#destinox44a1d7-XPOS)+(#destinoz44a1d7-ZPOS);
#abs_diferenca_eixo44a1d7=#diferenca_eixo44a1d7;
IF(#diferenca_eixo44a1d7<0);
#abs_diferenca_eixo44a1d7=#diferenca_eixo44a1d7*-1;
ENDIF;
IF(((#diferenca_eixo44a1d7>0)&&(!distancia_positiva44a1d7))||((#diferenca_eixo44a1d7<0)&&(distancia_positiva44a1d7)));
TOGGLE(andar_direita44a1d7);
TOGGLE(distancia_positiva44a1d7);
#variacaox44a1d7=#variacaox44a1d7*-1;
#variacaoz44a1d7=#variacaoz44a1d7*-1;
LOG("§e✘ §8woops");
KEYUP("right");
KEYUP("left");
WAIT(1t);
ELSEIF(#diferenca_eixo44a1d7==0);
SET(success44a1cf);
BREAK;
ENDIF;
IFMATCHES("%&bloco_lado44a1d7%","^0$|^air$|^31$|^grass$|^6$|^sapling$|^37$|^flower$|^38$|^rose$|^39$|^40$|^torch$|^50$");
UNSET(success44a1cf);
BREAK;
ENDIF;
IFMATCHES("{%&bloco_lado044a1d7%}{%&bloco_lado144a1d7%}","^(?!\s*$)(?:\{(0|air|31|grass|6|sapling|37|flower|38|rose|39|40|torch|50)\})+$");
SET(success44a1cf);
ELSE;
UNSET(success44a1cf);
BREAK;
ENDIF;
IF(andar_direita44a1d7);
KEYDOWN("right");
ELSE;
KEYDOWN("left");
ENDIF;
WAIT(1t);
LOOP;
KEYUP("right");
KEYUP("left");
WAIT(3t);
CENTEROVERBLOCK();
INC(#coluna44a1d6,%#distancia44a1d6%);
IF(success44a1cf);
#front44a1d6=2;
#right44a1d6=0;
#up44a1d6=3-#bau44a1d6;
#x44a1d6=(((DIRECTION=="E")-(DIRECTION=="W"))*(#front44a1d6))+(((DIRECTION=="N")-(DIRECTION=="S"))*(#right44a1d6))+XPOS;
#y44a1d6=YPOS+#up44a1d6;
#z44a1d6=(((DIRECTION=="S")-(DIRECTION=="N"))*(#front44a1d6))+(((DIRECTION=="E")-(DIRECTION=="W"))*(#right44a1d6))+ZPOS;
GETID(%#x44a1d6%,%#y44a1d6%,%#z44a1d6%,&id_bloco44a1d6);
UNSET(abriu44a1d6);
IFMATCHES("%&id_bloco44a1d6%","^54$|^chest$|^146$|^trapped_chest$|^130$|^ender_chest$");
#yaw44a1d8=((DIRECTION=="N")*360)+((DIRECTION=="S")*180)+((DIRECTION=="E")*90)+((DIRECTION=="W")*270);
INC(#yaw44a1d8,5);
if(%#bau44a1d6%==0);
look(%#yaw44a1d8%,310);
elseif(%#bau44a1d6%==1);
look(%#yaw44a1d8%,335);
elseif(%#bau44a1d6%==2);
look(%#yaw44a1d8%,0);
elseif(%#bau44a1d6%==3);
look(%#yaw44a1d8%,35);
elseif(%#bau44a1d6%==4);
look(%#yaw44a1d8%,50);
endif;
WAIT(1t);
UNSET(abriu44a1d6);
IFMATCHES(%HITID%,"^54$|^chest$|^146$|^trapped_chest$|^130$|^ender_chest$");
IFMATCHES(%HITSIDE%,"^N$|^S$|^E$|^W$");
#distancex44a1cf=XPOS-HITX;
#distancez44a1cf=ZPOS-HITZ;
#distancesum44a1cf=#distancex44a1cf+#distancez44a1cf;
MATCH("%#distancesum44a1cf%","-?([0-9]+)",#distance44a1cf,1);
IF(#distance44a1cf==2);
DO;
INC(#count44a1cfabrir,1);
IFMATCHES(%GUI%,CHEST);
SET(abriu44a1d6);
BREAK;
ELSE;
IF(#count44a1cfabrir>50);
BREAK;
ENDIF;
KEYUP(SNEAK);
KEY(USE);
WAIT(10t);
ENDIF;
LOOP;
UNSET(#count44a1cfabrir);
ELSE;
LOG("§e✘ §8baú na distância incorreta");
ENDIF;
ELSE;
LOG("§e✘ §8baú mal colocado");
ENDIF;
ELSE;
LOG("§e✘ §8não é báu");
ENDIF;
endif;
IF(abriu44a1d6);
IF(!%#baus_verificados44a1d6%);
SET(#quantidade_faltando44a1d9,0);
ENDIF;
UNSET(#quantidade44a1d9);
#yaw44a1da=((DIRECTION=="N")*360)+((DIRECTION=="S")*180)+((DIRECTION=="E")*90)+((DIRECTION=="W")*270);
INC(#yaw44a1da,5);
if(%#bau44a1d6%==0);
look(%#yaw44a1da%,310);
elseif(%#bau44a1d6%==1);
look(%#yaw44a1da%,335);
elseif(%#bau44a1d6%==2);
look(%#yaw44a1da%,0);
elseif(%#bau44a1d6%==3);
look(%#yaw44a1da%,35);
elseif(%#bau44a1d6%==4);
look(%#yaw44a1da%,50);
endif;
WAIT(1t);
UNSET(#quantidade44a1d9);
UNSET(obstrucao44a1d9);
FOR(#slot44a1db,54,89);
IFMATCHES("%ITEM%","^[0-9]+$");
GETSLOTITEM(%#slot44a1db%,#id44a1db,#stacksizevar44a1db,#datavar44a1db);
MATCH("%#id44a1db%:%#datavar44a1db%","([0-9]+)

[0-9]+)",{&id44a1db,&datavar44a1db});
ELSE;
GETSLOTITEM(%#slot44a1db%,&id44a1db,#stacksizevar44a1db,&datavar44a1db);
ENDIF;
IF(%#slot44a1db%==54);
UNSET(#quant44a1dc);
ENDIF;
UNSET(obstrucao44a1d9);
IF(%#stacksizevar44a1db%>1);
IFMATCHES("%&id44a1db%","^dye$");
GETSLOTITEM(%#slot44a1db%,#id44a1dc,#stack44a1dc);
SLOTCLICK(%#slot44a1db%,l,true);
WAIT(1t);
GETSLOTITEM(%#slot44a1db%,#i44a1dc,#newstack44a1dc);
IF(#stack44a1dc>#newstack44a1dc);
INC(#quant44a1dc,1);
ENDIF;
SET(#quantidade44a1d9,%#quant44a1dc%);
IF(#newstack44a1dc!=0);
SET(obstrucao44a1d9);
BREAK;
ENDIF;
SET(#posicao_d44a1dc,-1);
UNSET(#posicao_d44a1dc);
FOR(#slot44a1dd,0,53);
IFMATCHES("%ITEM%","^[0-9]+$");
GETSLOTITEM(%#slot44a1dd%,#id44a1dd,#stacksizevar44a1dd,#datavar44a1dd);
MATCH("%#id44a1dd%:%#datavar44a1dd%","([0-9]+)

[0-9]+)",{&id44a1dd,&datavar44a1dd});
ELSE;
GETSLOTITEM(%#slot44a1dd%,&id44a1dd,#stacksizevar44a1dd,&datavar44a1dd);
ENDIF;
ifmatches("%&id44a1dd%","^%#id44a1dc%$");
IF(%#stacksizevar44a1dd%>1);
set(#posicao_d44a1dc,%#slot44a1dd%);
break;
ENDIF;
endif;
NEXT;
SLOTCLICK(%#posicao_d44a1dc%,l,false);
WAIT(1t);
SLOTCLICK(%#slot44a1db%,r,false);
WAIT(1t);
SLOTCLICK(%#posicao_d44a1dc%,l,false);
WAIT(1t);
IF((%#quantidade_faltando44a1d9%>0)&&(#quant44a1dc>=%#quantidade_faltando44a1d9%));
BREAK;
ENDIF;
ENDIF;
ENDIF;
NEXT;
INC(#quantidade_movidos,%#quantidade44a1d9%);
DEC(#quantidade_faltando44a1d9,%#quantidade44a1d9%);
IF((0!=0)&&(#quantidade_faltando44a1d9<=0));
BREAK;
ENDIF;
IF(!obstrucao44a1d9);
LOG("§a✓ §8não há mais itens para mover");
BREAK;
ELSE;
LOG("§e⚠ §8baú cheio");
ENDIF;
UNSET(fechou44a1d6);
DO;
IFMATCHES(%GUI%,NONE);
SET(fechou44a1d6);
BREAK;
ELSE;
GUI();
ENDIF;
WAIT(5t);
LOOP;
IF(!fechou44a1d6);
UNSET(success44a1cf);
BREAK;
ENDIF;
ENDIF;
UNSET(#distancia44a1d6);
UNSET(bottom_reached44a1d6);
INC(#bau44a1d6,1);
IF(#bau44a1d6>4);
SET(#bau44a1d6,4);
SET(bottom_reached44a1d6);
ENDIF;
INC(#baus_verificados44a1d6,1);
IF((0>0)&&(#baus_verificados44a1d6==0));
LOG("§a✓ §8limite de baús alcançado");
BREAK;
ENDIF;
IF(bottom_reached44a1d6);
UNSET(#bau44a1d6);
INC(#distancia44a1d6,1);
ENDIF;
ELSE;
LOG("§e✘ §8fim da passarela");
BREAK;
ENDIF;
LOOP;
UNSET(fechou44a1d6);
DO;
IFMATCHES(%GUI%,NONE);
SET(fechou44a1d6);
BREAK;
ELSE;
GUI();
ENDIF;
WAIT(5t);
LOOP;
IF((success44a1cf)&&(!fechou44a1d6));
UNSET(success44a1cf);
ENDIF;
SET(@#bau,%#bau44a1d6%);
SET(@#coluna,%#coluna44a1d6%);
log("&f&l[&e&lMA&f&lCRO] &f&lForam guardados "%#quantidade_movidos%);
gui();
ENDIF;
WHILE(!@concluido);
log("&f&l[&e&lMA&f&lCRO] &f&lDu&e&lCacau &c&lOFF");
unset(@rep);
stop();
endif;