Parabéns pelo macro Jimmy!
Fiz uma pequena alteração no código para resolver o meu problema e de outras pessoas que possam ter o mesmo.
Meu macro ia ate o final e travava na terra, nao dava /home repinicio.
Então adicionei um bloco de lã no final do tunel, assim quando ele bate nele e verifica que é uma lã, automaticamente volta para o início recomeçando o processo.
Código:
$${
if(repjimmy);log("&4[%PLAYER%] &6Reparação &2OFF");unset(repjimmy);keyup(forward);keyup(back);keyup(right);keyup(sneak);stop();
else;set(repjimmy);log(&3[%PLAYER%] &6Reparação &4ON);#nslot=1;slot(1);#status=0;endif;
PROMPT(#delay,$$?,"quantos segundos de espera para ir a home? (somente numeros)");
//#delay = 5;
}$$/sethome repinicio$${
&ff = %DIRECTION%;
ifmatches(%&ff%,N);&ff=NORTH;&fa=SOUTH;&fd=EAST;&fe=WEST;#xf=0;#zf=-1;endif;
ifmatches(%&ff%,S);&fa=NORTH;&ff=SOUTH;&fe=EAST;&fd=WEST;#xf=0;#zf=1;endif;
ifmatches(%&ff%,E);&fe=NORTH;&fd=SOUTH;&ff=EAST;&fa=WEST;#xf=1;#zf=0;endif;
ifmatches(%&ff%,W);&fd=NORTH;&fe=SOUTH;&fa=EAST;&ff=WEST;#xf=-1;#zf=0;endif;
do;
//reparar
if(%DURABILITY%<10);logto(debug,%#nslot%);
if(%#nslot%=9);keyup(forward);keyup(back);}$$/sethome reptemp$${wait(1t);}$$/home rep$${wait(%#delay%);
//selecionando enxadas
slot(1);do(4);key(use);wait(250ms);loop;
slot(2);do(4);key(use);wait(250ms);loop;
slot(3);do(4);key(use);wait(250ms);loop;
slot(4);do(4);key(use);wait(250ms);loop;
slot(5);do(4);key(use);wait(250ms);loop;
slot(6);do(4);key(use);wait(250ms);loop;
slot(7);do(4);key(use);wait(250ms);loop;
slot(8);do(4);key(use);wait(250ms);loop;
slot(9);do(4);key(use);wait(250ms);loop;
#nslot=1;slot(1);}$$/home reptemp$${wait(%#delay%);
else;INC(#nslot,1);logto(debug,agora no slot: %#nslot%);slot(%#nslot%);
endif;
endif;
if(%DURABILITY%>8);
//usar
look(%&ff%);look(,90);wait(1t);key(use);wait(1t);
look(%&fd%);look(,50);wait(1t);key(use);wait(1t);
look(%&fd%);wait(1t);key(use);wait(1t);
look(%&fd%);look(,-50);wait(1t);key(use);wait(1t);
look(%&fe%);look(,50);wait(1t);key(use);wait(1t);
look(%&fe%);wait(1t);key(use);wait(1t);
look(%&fe%);look(,-50);wait(1t);key(use);wait(1t);
//verificar bloco
getidrel(%#xf%,0,%#zf%,&bloco);ifmatches(%&bloco%,wool);#status=1;else;#status=0;endif;
if(%#status%=0);
//andar
#px=%XPOS%;#pz=%ZPOS%;look(%&ff%);
do;keydown(forward);until((%XPOS%=%#px%+1)|(%XPOS%=%#px%-1)|(%ZPOS%=%#pz%+1)|(%ZPOS%=%#pz%-1));keyup(forward);
else;
//voltar
}$$/home repinicio$${wait(%#delay%);
endif;endif;endif;
loop;
}$$