public interface Listener
{
public boolean listen(String command, RealObject actor);
/* Where in the list to add listeners */
public static final int HEAD = 0;
public static final int TAIL = 1;
}
public class GoListener implements Listener {
public boolean listen(String command, RealObject actor)
{
try
{
actor.wanderVia (actor.roomOf().findPassageByDirection (command),
"Dutifully heads " + command + " to @");
return true;
}
catch (CantFindObjectException e)
{
return false;
}
}
}
public class DefaultListener implements Listener
{
private String dunno;
DefaultListener(String dunno)
{
this.dunno = dunno;
}
public boolean listen(String command, RealObject actor)
{
actor.announce(Utility.replace (dunno, "@", command));
return true;
}
}
public class FirstWordListener implements Listener
{
private String firstWord;
private Listener sub;
FirstWordListener(String firstWord, Listener sub)
{
this.firstWord = firstWord + " ";
this.sub = sub;
}
public boolean listen(String message, RealObject actor)
{
int length = firstWord.length();
if (message.length () > length &&
message.substring(0, length).equalsIgnoreCase(firstWord))
{
return sub.listen(message.substring(length), actor);
}
return false;
}
}
}
Last updated: 24 Jan 01