Para el problema con capturar el "ir este" no tengo una respuesta ahora mismo, pero creo que sé lo que pasa con la piedra.
El ejemplo no busca un único objeto, sino cualquiera que tenga una determinada
propiedad con valor verdadero (de tipo bool, que el autor se ha encargado de asignar a los objetos que sean de tipo bebida). Por eso usa un bucle y tal...
documentacion del ejemplo escribió:
usamos una propiedad “bebida” para marcar esos objetos
Dentro del bucle:
Código:
Item cosa = inv.get(i);
if ( get ( cosa , "bebida" ) )
Este get() obtiene, del primer argumento, la propiedad indicada en el segundo argumento. Es decir, la propiedad "bebida" de lo que haya en
cosa en ese momento del bucle.
En tu caso, estás comprobando el valor de la propiedad "piedra". Entiendo que no es lo que quieres y que no existe una propiedad "piedra" en tus objetos.
victorcastanedose escribió:
no salga de una habitación a otra si no tiene un Item en específico
Te puedes ahorra el bucle y simplemente...
Código:
Inventory inv = jugador.getInventory();
if(inv.contains( item("piedra") )){}
Dicho esto, aunque el
contains ya se encarga de todo y es lo recomendable en este caso, por completar la respuesta... lo que creo que querías poner en el segundo
if es:
Código:
if( equals(cosa, item("piedra")) ){}