Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
68c3206
Drop 1.21.11 & add 26.1.2
0xar-ds Aug 20, 2026
dcc13c7
Bump gradle ver
0xar-ds Aug 22, 2026
0b45a08
Bump kotlin ver
0xar-ds Aug 22, 2026
17200b3
Add 26.1.2 vers
0xar-ds Aug 22, 2026
2423820
Bump loom & update build fn calls per the new api
0xar-ds Aug 22, 2026
88f9916
Bump fabric loader ver
0xar-ds Aug 22, 2026
3c07e03
Specify target jvm/runtimes & reorder tasks declarations
0xar-ds Aug 22, 2026
fce0391
Bump mod publish plugin
0xar-ds Aug 22, 2026
06c641f
Bump stonecutter
0xar-ds Aug 23, 2026
23e2824
Bump loombok
0xar-ds Aug 22, 2026
a796695
Bump apache vers
0xar-ds Aug 23, 2026
60f5808
Bump asm vers for java 25
0xar-ds Aug 23, 2026
f11aff7
Handle migrations
0xar-ds Aug 23, 2026
33d9caf
Yield onto ItemStackTemplates
0xar-ds Aug 23, 2026
114c05a
Move renderer registry' to module system
0xar-ds Sep 1, 2026
90d2ded
Use SkyblockAPI's CurrencyAPI for purse retrieving
0xar-ds May 22, 2026
b17bf74
Have each concrete SignInputHelper implement their AmountStrategy::Ma…
0xar-ds May 22, 2026
19f8808
Properly count amount of items fillable to the players inventory per …
0xar-ds May 22, 2026
b15f139
Fix copy pasted #getButtonItemText
0xar-ds May 22, 2026
48ca013
Memoize input resolution rather than to compute it for every consumin…
0xar-ds May 22, 2026
5bb8a8a
Reset state upon sign handled
0xar-ds May 22, 2026
a1aba4a
Standard event subscription for SignManagers' Queue Dispatcher
0xar-ds Sep 5, 2026
d53f804
Drop imports left unused by the helper refactor
mkram17 Sep 6, 2026
fcb27c1
Expire queued sign handlers instead of clearing them on container close
mkram17 Sep 6, 2026
7451946
Do not memoize an input resolution that failed
mkram17 Sep 6, 2026
0f92d54
Merge remote-tracking branch 'origin/v1.0.0' into refactor/input-help…
mkram17 Sep 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenMatcher;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenType;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarSlots;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.layouts.TransactionPageLayout;
import com.github.mkram17.bazaarutils.utils.bazaar.market.order.OrderUtil;
import com.github.mkram17.bazaarutils.utils.bazaar.market.price.PricingPosition;
import com.github.mkram17.bazaarutils.utils.minecraft.components.CustomDataComponents;
import com.github.mkram17.bazaarutils.utils.bazaar.market.order.TransactionType;
import com.github.mkram17.bazaarutils.utils.minecraft.gui.ScreenMatcher;
Expand All @@ -18,6 +21,8 @@
import lombok.Getter;
import net.minecraft.network.chat.Component;

import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.stream.IntStream;

@Getter
Expand Down Expand Up @@ -100,6 +105,20 @@ protected int computeFixedValue(TransactionState state) {
return getFixedAmount();
}

@Override
protected OptionalInt computeMaxValue(TransactionAmount.TransactionState state) {
OptionalDouble price = OrderUtil.getPriceForPositionOptional(state.productId(), PricingPosition.COMPETITIVE, getTransactionType());

// A missing or non-positive price divides into an amount that is nonsense rather than large.
if (price.isEmpty() || price.getAsDouble() <= 0) return OptionalInt.empty();

int amountCanAfford = (int) (state.purse() / price.getAsDouble());

return OptionalInt.of(TransactionPageLayout.findBuyOrderAmountLimit(state.inputSign().itemStack())
.map(limit -> Math.min(amountCanAfford, limit))
.orElse(amountCanAfford));
}

@Override
protected Component getButtonItemText(TransactionState state) {
return Component.nullToEmpty("Order " + getButtonItemStackSize(state) + " items.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
import com.github.mkram17.bazaarutils.config.util.api.SlotProviders;
import com.github.mkram17.bazaarutils.config.util.api.annotations.ContainerSlot;
import com.github.mkram17.bazaarutils.utils.bazaar.SignInputHelper;
import com.github.mkram17.bazaarutils.utils.bazaar.data.BazaarDataUtil;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenMatcher;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenType;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarSlots;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.layouts.TransactionPageLayout;
import com.github.mkram17.bazaarutils.utils.bazaar.market.order.TransactionType;
import com.github.mkram17.bazaarutils.utils.minecraft.ItemInfo;
import com.github.mkram17.bazaarutils.utils.minecraft.SlotLookup;
import com.github.mkram17.bazaarutils.utils.minecraft.components.CustomDataComponents;
import com.github.mkram17.bazaarutils.utils.minecraft.gui.ScreenMatcher;
import com.github.mkram17.bazaarutils.utils.minecraft.item.ItemRef;
Expand All @@ -18,6 +22,8 @@
import lombok.Getter;
import net.minecraft.network.chat.Component;

import java.util.Optional;
import java.util.OptionalInt;
import java.util.stream.IntStream;

@Getter
Expand Down Expand Up @@ -100,9 +106,34 @@ protected int computeFixedValue(TransactionState state) {
return getFixedAmount();
}

@Override
protected OptionalInt computeMaxValue(TransactionAmount.TransactionState state) {
return OptionalInt.of(SlotLookup.getInventoryItem(state.container(), BazaarSlots.INSTANT_BUY.INPUT_FILLING_AMOUNT.slot)
.map(ItemInfo::itemStack)
.flatMap(TransactionPageLayout::findOptionAmount)
.map(value -> (int) Math.floor(value))
.orElse(state.playerInventory()
.getNonEquipmentItems()
.stream()
.mapToInt(stack -> {
int maxStackSize = state.productItem().itemStack().getMaxStackSize();
if (stack.isEmpty()) return maxStackSize;

boolean isSameItem = Optional.ofNullable(stack.getCustomName())
.map(Component::getString)
.flatMap(BazaarDataUtil::findProductIdOptional)
.map(id -> id.equals(state.productId()))
.orElse(false);

return isSameItem ? maxStackSize - stack.getCount() : 0;
})
.sum()
));
}

@Override
protected Component getButtonItemText(TransactionState state) {
return Component.nullToEmpty("Offer " + getButtonItemStackSize(state) + " items.");
return Component.nullToEmpty("Purchase " + getButtonItemStackSize(state) + " items.");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.github.mkram17.bazaarutils.config.util.api.SlotProviders;
import com.github.mkram17.bazaarutils.config.util.api.annotations.ContainerSlot;
import com.github.mkram17.bazaarutils.utils.bazaar.SignInputHelper;
import com.github.mkram17.bazaarutils.utils.bazaar.data.BazaarDataUtil;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenMatcher;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarScreenType;
import com.github.mkram17.bazaarutils.utils.bazaar.gui.BazaarSlots;
Expand All @@ -17,7 +18,10 @@
import com.teamresourceful.resourcefulconfig.api.types.info.ListEntryInfoProvider;
import lombok.Getter;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;

import java.util.Optional;
import java.util.OptionalInt;
import java.util.stream.IntStream;

@Getter
Expand Down Expand Up @@ -100,6 +104,19 @@ protected int computeFixedValue(TransactionState state) {
return getFixedAmount();
}

@Override
protected OptionalInt computeMaxValue(TransactionState state) {
return OptionalInt.of(state.playerInventory().getNonEquipmentItems().stream()
.filter(stack -> !stack.isEmpty())
.filter(stack -> Optional.ofNullable(stack.getCustomName())
.map(Component::getString)
.flatMap(BazaarDataUtil::findProductIdOptional)
.map(productId -> productId.equals(state.productId()))
.orElse(false))
.mapToInt(ItemStack::getCount)
.sum());
}

@Override
protected Component getButtonItemText(TransactionState state) {
return Component.nullToEmpty("Offer " + getButtonItemStackSize(state) + " items.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ public Result onButtonClicked(int button) {

SoundUtil.playSound(BUTTON_SOUND, BUTTON_VOLUME);

handleAction(state.get());
resetState();
handleAction(state.get(), this::resetState);

return Result.CONSUMED;
}
Expand All @@ -94,5 +93,5 @@ public Result onButtonClicked(int button) {

// Action stuff

protected abstract void handleAction(T state);
protected abstract void handleAction(T state, Runnable callback);
}
Loading
Loading