package module.command.character; import module.character.Group; import module.character.api.ICharacter; import module.command.CommandServer; import module.command.api.ICommand; import module.item.api.IItem; import module.server.PlayerServer; import module.utility.HelpUtil; public class Drop implements ICommand { private String[] name; public Drop() { name = new String[2]; name[0] = "drop"; name[1] = "dr"; } @Override public String[] getName() { return name; } @Override public boolean action(ICharacter c, String[] command) { Group g = c.getMyGroup(); synchronized (g.getAtRoom()) { if (command.length == 2) { CommandServer.informGroup(g, "�A�Q��" + c.getChiName() + "��U����O?\n"); return false; } if (g.getInBattle()) { if (command[2].equals("all")) { CommandServer.informGroup(g, "�A���b�԰����A�L�k�@����U�h�Ӫ��~�C\n"); return false; } IItem obj = g.getInventory().findItem(command[2]); if (obj != null) { dropSingleItem(c, g, obj); return true; } else CommandServer.informGroup(g, "�A���W�S���Q�᪺�F��C\n"); } else { IItem obj = null; if (command[2].equals("all")) { while (g.getInventory().itemList.size() > 0) { obj = g.getInventory().itemList.get(0).findItem(0); dropSingleItem(c, g, obj); } CommandServer.informGroup(g, "OK.\n"); return false; } obj = g.getInventory().findItem(command[2]); if (obj != null) { dropSingleItem(c, g, obj); } else CommandServer.informGroup(g, "�A���W�S���Q�᪺�F��C\n"); } return false; } } @Override public String getHelp() { String output = HelpUtil.getHelp("resources/help/drop.help"); output += "\n"; output += HelpUtil.getHelp("resources/help/chooseTeammate.help"); return output; } private void dropSingleItem(ICharacter c, Group g, IItem obj) { g.getInventory().removeItem(obj); g.getAtRoom().getItemList().addItem(obj); g.getAtRoom().informRoom( c.getChiName() + "��U�F" + obj.getChiName() + "�C\n"); obj.setTTL(0); obj.setAtRoom(g.getAtRoom()); PlayerServer.getSystemTime().addItem(obj); } }