package com.github.dtschust.zork.repl.actions; import com.github.dtschust.zork.ZorkGame; import com.github.dtschust.zork.objects.ZorkItem; import com.github.dtschust.zork.objects.ZorkRoom; import com.github.dtschust.zork.repl.Action; import java.util.List; import java.util.Optional; public class DropItemAction implements Action { @Override public boolean matchesInput(List arguments) { return arguments.get(0).equals("drop"); } @Override public int getMinimumArgCount() { return 2; } @Override public boolean run(ZorkGame game, List arguments) { final String whatName = arguments.get(1); final Optional what = game.getItem(whatName); if (game.inventory.contains(whatName) && what.isPresent()) { final ZorkRoom tempRoom = game.getCurrentRoom(); game.inventory.remove(whatName); tempRoom.addObject(what.get()); game.stream.println(whatName + " dropped."); return true; } else { return false; } } }