aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author alemi <me@alemi.dev>2023-11-26 00:07:22 +0100
committer alemi <me@alemi.dev>2023-11-26 00:07:22 +0100
commit63cfbaa56ccf67da7b65cf058a68a4b843af5748 (patch)
tree521310097a50e50e883af8d9da113f79590d2a00
parentaebd63ac13f2e613a6d5a13ee9aff8740bf43c9e (diff)
feat[containercleaner]: throw whole stacks
-rw-r--r--src/main/java/ftbsc/bscv/modules/self/ContainerCleaner.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/ftbsc/bscv/modules/self/ContainerCleaner.java b/src/main/java/ftbsc/bscv/modules/self/ContainerCleaner.java
index 059c4bb..c53fed0 100644
--- a/src/main/java/ftbsc/bscv/modules/self/ContainerCleaner.java
+++ b/src/main/java/ftbsc/bscv/modules/self/ContainerCleaner.java
@@ -24,6 +24,7 @@ public class ContainerCleaner extends AbstractModule {
public final ForgeConfigSpec.ConfigValue<Integer> cooldown;
public final ForgeConfigSpec.ConfigValue<Boolean> limit;
+ public final ForgeConfigSpec.ConfigValue<Boolean> all;
public final ForgeConfigSpec.ConfigValue<List<? extends Integer>> blacklist;
private int counter;
@@ -43,6 +44,12 @@ public class ContainerCleaner extends AbstractModule {
.comment("limit to one action per tick")
.build(this);
+ this.all = Setting.Bool.builder()
+ .fallback(true)
+ .name("all")
+ .comment("throw whole stacks instead of single items")
+ .build(this);
+
this.blacklist = new Setting.Many<ItemInput, Integer>(ItemArgument.item(), ItemInput.class)
.writer(x -> Item.getId(x.getItem()))
.fallback(new ArrayList<Integer>())
@@ -62,7 +69,8 @@ public class ContainerCleaner extends AbstractModule {
ContainerScreen<?> screen = (ContainerScreen<?>) MC.screen;
for (Slot slot : screen.getMenu().slots) {
if (this.blacklist.get().contains(Item.getId(slot.getItem().getItem()))) {
- Inventory.clickSlot(screen.getMenu().containerId, slot.index, ClickType.THROW);
+ int button = this.all.get() ? 1 : 0;
+ Inventory.clickSlot(screen.getMenu().containerId, slot.index, button, ClickType.THROW);
this.counter = this.cooldown.get();
if (this.limit.get()) return; // only throw one item per tick
}