/* * IDK Game Server by Steve Winfield * https://github.com/WinfieldSteve */ package org.stevewinfield.suja.idk.game.miscellaneous.commands; import org.magicwerk.brownies.collections.GapList; import org.stevewinfield.suja.idk.communication.inventory.writers.UpdatePlayerInventoryWriter; import org.stevewinfield.suja.idk.game.furnitures.FurnitureInteractor; import org.stevewinfield.suja.idk.game.miscellaneous.ChatCommandArguments; import org.stevewinfield.suja.idk.game.miscellaneous.IChatCommand; import org.stevewinfield.suja.idk.game.rooms.RoomInstance; import org.stevewinfield.suja.idk.game.rooms.RoomItem; import org.stevewinfield.suja.idk.game.rooms.RoomPlayer; import java.util.List; public class PickallChatCommand implements IChatCommand { @Override public String getPermissionCode() { return "command_pickall"; } @Override public boolean execute(final RoomPlayer player, final ChatCommandArguments arguments) { final RoomInstance room = player.getRoom(); if (room == null || !room.hasRights(player.getSession(), true)) { return false; } final List<RoomItem> items = new GapList<>(); for (final RoomItem item : room.getRoomItems().values()) { if (item.getInteractorId() == FurnitureInteractor.POST_IT) { continue; } room.removeItem(item, player.getSession()); items.add(item); } for (final RoomItem item : items) { player.getSession().getPlayerInstance().getInventory().addItem(item, null, room.itemHasToUpdate(item.getItemId())); } player.getSession().writeMessage(new UpdatePlayerInventoryWriter()); items.clear(); return true; } }