use of com.minecolonies.coremod.colony.Colony in project minecolonies by Minecolonies.
the class WarehouseRequestResolver method canResolve.
@Override
public boolean canResolve(@NotNull final IRequestManager manager, final IRequest<? extends IDeliverable> requestToCheck) {
if (!manager.getColony().getWorld().isRemote) {
final Colony colony = (Colony) manager.getColony();
final Set<TileEntityWareHouse> wareHouses = getWareHousesInColony(colony);
wareHouses.removeIf(Objects::isNull);
try {
return wareHouses.stream().anyMatch(wareHouse -> wareHouse.hasMatchinItemStackInWarehouse(itemStack -> requestToCheck.getRequest().matches(itemStack)));
} catch (Exception e) {
Log.getLogger().error(e);
}
}
return false;
}
use of com.minecolonies.coremod.colony.Colony in project minecolonies by Minecolonies.
the class WarehouseRequestResolver method attemptResolve.
@Nullable
@Override
@SuppressWarnings("squid:LeftCurlyBraceStartLineCheck")
public /**
* Moving the curly braces really makes the code hard to read.
*/
List<IToken<?>> attemptResolve(@NotNull final IRequestManager manager, @NotNull final IRequest<? extends IDeliverable> request) {
if (manager.getColony().getWorld().isRemote) {
return null;
}
final Colony colony = (Colony) manager.getColony();
final Set<TileEntityWareHouse> wareHouses = getWareHousesInColony(colony);
for (final TileEntityWareHouse wareHouse : wareHouses) {
ItemStack matchingStack = wareHouse.getFirstMatchingItemStackInWarehouse(itemStack -> request.getRequest().matches(itemStack));
if (ItemStackUtils.isEmpty(matchingStack)) {
continue;
}
matchingStack = matchingStack.copy();
matchingStack.setCount(Math.min(request.getRequest().getCount(), matchingStack.getCount()));
final ItemStack deliveryStack = matchingStack.copy();
request.setDelivery(deliveryStack.copy());
final BlockPos itemStackPos = wareHouse.getPositionOfChestWithItemStack(itemStack -> ItemStack.areItemsEqual(itemStack, deliveryStack));
final ILocation itemStackLocation = manager.getFactoryController().getNewInstance(TypeConstants.ILOCATION, itemStackPos, wareHouse.getWorld().provider.getDimension());
final Delivery delivery = new Delivery(itemStackLocation, request.getRequester().getRequesterLocation(), deliveryStack.copy());
final IToken<?> requestToken = manager.createRequest(new WarehouseRequestResolver(request.getRequester().getRequesterLocation(), request.getToken()), delivery);
return ImmutableList.of(requestToken);
}
return Lists.newArrayList();
}
use of com.minecolonies.coremod.colony.Colony in project minecolonies by Minecolonies.
the class DeleteColonyCommand method execute.
@Override
public void execute(@NotNull final MinecraftServer server, @NotNull final ICommandSender sender, @NotNull final String... args) throws CommandException {
final int colonyId;
boolean canDestroy = true;
boolean confirmDelete = false;
if (args.length == 0) {
IColony colony = null;
if (sender instanceof EntityPlayer) {
colony = ColonyManager.getIColonyByOwner(CompatibilityUtils.getWorld((EntityPlayer) sender), (EntityPlayer) sender);
}
if (colony == null) {
sender.sendMessage(new TextComponentString(NO_COLONY_MESSAGE));
return;
}
colonyId = colony.getID();
} else {
colonyId = getIthArgument(args, 0, -1);
if (args.length > 1) {
canDestroy = Boolean.parseBoolean(args[1]);
}
if (args.length > 2) {
confirmDelete = Boolean.parseBoolean(args[2]);
}
}
final Colony colony = ColonyManager.getColony(colonyId);
if (colony == null) {
final String noColonyFoundMessage = String.format(COLONY_X_NULL, colonyId);
sender.sendMessage(new TextComponentString(noColonyFoundMessage));
return;
}
executeShared(server, sender, colony, canDestroy, confirmDelete);
}
use of com.minecolonies.coremod.colony.Colony in project minecolonies by Minecolonies.
the class DeleteColonyCommand method execute.
@Override
public void execute(@NotNull final MinecraftServer server, @NotNull final ICommandSender sender, @NotNull final ActionMenu actionMenu) throws CommandException {
final Colony colony = actionMenu.getColonyForArgument("colony");
final boolean canDestroy = actionMenu.getBooleanValueForArgument("canDestroy", false);
final boolean confirmDelete = actionMenu.getBooleanValueForArgument("confirmDelete", false);
if (colony == null) {
final String noColonyFoundMessage = String.format(NO_COLONY_MESSAGE);
sender.sendMessage(new TextComponentString(noColonyFoundMessage));
return;
}
executeShared(server, sender, colony, canDestroy, confirmDelete);
}
use of com.minecolonies.coremod.colony.Colony in project minecolonies by Minecolonies.
the class DisableBarbarianSpawnsCommand method execute.
@Override
public void execute(@NotNull final MinecraftServer server, @NotNull final ICommandSender sender, @NotNull final String... args) throws CommandException {
if (args.length == 0) {
sender.sendMessage(new TextComponentString(NO_ARGUMENTS));
}
final int colonyId;
colonyId = getIthArgument(args, 0, -1);
final Colony colony = ColonyManager.getColony(colonyId);
if (colony == null) {
final String noColonyFoundMessage = String.format(NO_COLONY_WITH_ID_FOUND_MESSAGE, colonyId);
sender.sendMessage(new TextComponentString(noColonyFoundMessage));
return;
}
final boolean canHaveBarbEvents = Boolean.parseBoolean(args[1]);
executeShared(server, sender, colony, canHaveBarbEvents);
}
Aggregations