Try long
This commit is contained in:
		@@ -6,7 +6,7 @@ minecraft_version=1.21.3
 | 
			
		||||
yarn_mappings=1.21.3+build.2
 | 
			
		||||
loader_version=0.16.9
 | 
			
		||||
# Mod Properties
 | 
			
		||||
mod_version=1.5.1
 | 
			
		||||
mod_version=1.5.2
 | 
			
		||||
maven_group=systems.brn
 | 
			
		||||
archives_base_name=servershop
 | 
			
		||||
# Dependencies
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,5 @@
 | 
			
		||||
package systems.brn.servershop;
 | 
			
		||||
 | 
			
		||||
import eu.pb4.placeholders.api.PlaceholderHandler;
 | 
			
		||||
import eu.pb4.placeholders.api.PlaceholderResult;
 | 
			
		||||
import eu.pb4.placeholders.api.Placeholders;
 | 
			
		||||
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
 | 
			
		||||
import net.fabricmc.api.ModInitializer;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package systems.brn.servershop.commands;
 | 
			
		||||
 | 
			
		||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
 | 
			
		||||
import com.mojang.brigadier.context.CommandContext;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.server.command.ServerCommandSource;
 | 
			
		||||
@@ -43,7 +43,7 @@ public class AuctionCommands {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static int createHand(CommandContext<ServerCommandSource> ctx) {
 | 
			
		||||
        int sellPrice = IntegerArgumentType.getInteger(ctx, "sellprice");
 | 
			
		||||
        double sellPrice = DoubleArgumentType.getDouble(ctx, "sellprice");
 | 
			
		||||
        ServerPlayerEntity player = ctx.getSource().getPlayer();
 | 
			
		||||
        if (player != null) {
 | 
			
		||||
            ItemStack itemStack = player.getMainHandStack();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package systems.brn.servershop.commands;
 | 
			
		||||
 | 
			
		||||
import com.mojang.brigadier.arguments.LongArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
 | 
			
		||||
import com.mojang.brigadier.context.CommandContext;
 | 
			
		||||
import net.minecraft.command.argument.EntityArgumentType;
 | 
			
		||||
import net.minecraft.server.command.ServerCommandSource;
 | 
			
		||||
@@ -17,7 +17,7 @@ public class BalanceCommand {
 | 
			
		||||
            ServerPlayerEntity player = ctx.getSource().getPlayer();
 | 
			
		||||
            ServerPlayerEntity target = EntityArgumentType.getPlayer(ctx, "target");
 | 
			
		||||
            if (player != null && target != null) {
 | 
			
		||||
                long senderBalance = balanceStorage.getBalance(target);
 | 
			
		||||
                double senderBalance = balanceStorage.getBalance(target);
 | 
			
		||||
                playerObj.sendFeedback(() -> Text.translatable("message.servershop.balance.other", target.getName(), senderBalance), false);
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception ignored) {
 | 
			
		||||
@@ -41,7 +41,7 @@ public class BalanceCommand {
 | 
			
		||||
            ServerCommandSource playerObj = ctx.getSource();
 | 
			
		||||
            ServerPlayerEntity player = ctx.getSource().getPlayer();
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
                long senderBalance = balanceStorage.getBalance(player);
 | 
			
		||||
                double senderBalance = balanceStorage.getBalance(player);
 | 
			
		||||
                playerObj.sendFeedback(() -> Text.translatable("message.servershop.balance.self", senderBalance), false);
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception ignored) {
 | 
			
		||||
@@ -53,7 +53,7 @@ public class BalanceCommand {
 | 
			
		||||
    public static int selfSet(CommandContext<ServerCommandSource> ctx) {
 | 
			
		||||
        try {
 | 
			
		||||
            ServerPlayerEntity player = ctx.getSource().getPlayer();
 | 
			
		||||
            long senderBalance = LongArgumentType.getLong(ctx, "balance");
 | 
			
		||||
            double senderBalance = DoubleArgumentType.getDouble(ctx, "balance");
 | 
			
		||||
            if (player != null) {
 | 
			
		||||
                balanceStorage.setBalance(player, senderBalance);
 | 
			
		||||
            }
 | 
			
		||||
@@ -67,7 +67,7 @@ public class BalanceCommand {
 | 
			
		||||
        try {
 | 
			
		||||
            ServerCommandSource playerObj = ctx.getSource();
 | 
			
		||||
            ServerPlayerEntity player = ctx.getSource().getPlayer();
 | 
			
		||||
            long senderBalance = LongArgumentType.getLong(ctx, "balance");
 | 
			
		||||
            double senderBalance = DoubleArgumentType.getDouble(ctx, "balance");
 | 
			
		||||
            ServerPlayerEntity target = EntityArgumentType.getPlayer(ctx, "recipient");
 | 
			
		||||
            if (player != null && target != null) {
 | 
			
		||||
                balanceStorage.setBalance(target, senderBalance);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package systems.brn.servershop.commands;
 | 
			
		||||
 | 
			
		||||
import com.mojang.brigadier.CommandDispatcher;
 | 
			
		||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.LongArgumentType;
 | 
			
		||||
import net.minecraft.command.CommandRegistryAccess;
 | 
			
		||||
import net.minecraft.command.argument.EntityArgumentType;
 | 
			
		||||
import net.minecraft.command.argument.ItemStackArgumentType;
 | 
			
		||||
@@ -28,8 +28,8 @@ public class CommandRegistry {
 | 
			
		||||
                        .then(literal("set")
 | 
			
		||||
                                .requires(serverCommandSource -> serverCommandSource.hasPermissionLevel(2))
 | 
			
		||||
                                .then(argument("item", ItemStackArgumentType.itemStack(commandRegistryAccess))
 | 
			
		||||
                                        .then(argument("buyprice", IntegerArgumentType.integer(-1))
 | 
			
		||||
                                                .then(argument("sellprice", IntegerArgumentType.integer(-1))
 | 
			
		||||
                                        .then(argument("buyprice", DoubleArgumentType.doubleArg(-1))
 | 
			
		||||
                                                .then(argument("sellprice", DoubleArgumentType.doubleArg(-1))
 | 
			
		||||
                                                        .executes(ShopCommands::set)
 | 
			
		||||
                                                )
 | 
			
		||||
                                        )
 | 
			
		||||
@@ -37,8 +37,8 @@ public class CommandRegistry {
 | 
			
		||||
                        )
 | 
			
		||||
                        .then(literal("setHand")
 | 
			
		||||
                                .requires(serverCommandSource -> serverCommandSource.hasPermissionLevel(2))
 | 
			
		||||
                                .then(argument("buyprice", IntegerArgumentType.integer(-1))
 | 
			
		||||
                                        .then(argument("sellprice", IntegerArgumentType.integer(-1))
 | 
			
		||||
                                .then(argument("buyprice", DoubleArgumentType.doubleArg(-1))
 | 
			
		||||
                                        .then(argument("sellprice", DoubleArgumentType.doubleArg(-1))
 | 
			
		||||
                                                .executes(ShopCommands::setHand)
 | 
			
		||||
                                        )
 | 
			
		||||
                                )
 | 
			
		||||
@@ -54,7 +54,7 @@ public class CommandRegistry {
 | 
			
		||||
                                .requires(serverCommandSource -> serverCommandSource.hasPermissionLevel(2))
 | 
			
		||||
                                .executes(AuctionCommands::save))
 | 
			
		||||
                        .then(literal("create")
 | 
			
		||||
                                .then(argument("sellprice", IntegerArgumentType.integer(1))
 | 
			
		||||
                                .then(argument("sellprice", DoubleArgumentType.doubleArg(1))
 | 
			
		||||
                                        .executes(AuctionCommands::createHand)
 | 
			
		||||
                                )
 | 
			
		||||
                                .executes(AuctionCommands::create)
 | 
			
		||||
@@ -63,7 +63,7 @@ public class CommandRegistry {
 | 
			
		||||
        dispatcher.register(
 | 
			
		||||
                literal("pay")
 | 
			
		||||
                        .then(argument("recipient", EntityArgumentType.player())
 | 
			
		||||
                                .then(argument("amount", IntegerArgumentType.integer(1))
 | 
			
		||||
                                .then(argument("amount", DoubleArgumentType.doubleArg(1))
 | 
			
		||||
                                        .executes(PayCommand::run)
 | 
			
		||||
                                )
 | 
			
		||||
                        )
 | 
			
		||||
@@ -87,7 +87,7 @@ public class CommandRegistry {
 | 
			
		||||
                                .executes(BalanceCommand::list))
 | 
			
		||||
                        .then(literal("set")
 | 
			
		||||
                                .requires(serverCommandSource -> serverCommandSource.hasPermissionLevel(2))
 | 
			
		||||
                                .then(argument("balance", LongArgumentType.longArg(0))
 | 
			
		||||
                                .then(argument("balance", DoubleArgumentType.doubleArg(0))
 | 
			
		||||
                                        .executes(BalanceCommand::selfSet)
 | 
			
		||||
                                        .then(argument("recipient", EntityArgumentType.player())
 | 
			
		||||
                                                .executes(BalanceCommand::othersSet))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package systems.brn.servershop.commands;
 | 
			
		||||
 | 
			
		||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
 | 
			
		||||
import com.mojang.brigadier.context.CommandContext;
 | 
			
		||||
import net.minecraft.command.argument.EntityArgumentType;
 | 
			
		||||
import net.minecraft.server.command.ServerCommandSource;
 | 
			
		||||
@@ -15,9 +15,9 @@ public class PayCommand {
 | 
			
		||||
            ServerCommandSource senderObj = ctx.getSource();
 | 
			
		||||
            ServerPlayerEntity sender = ctx.getSource().getPlayer();
 | 
			
		||||
            ServerPlayerEntity target = EntityArgumentType.getPlayer(ctx, "recipient");
 | 
			
		||||
            int amount = IntegerArgumentType.getInteger(ctx, "amount");
 | 
			
		||||
            double amount = DoubleArgumentType.getDouble(ctx, "amount");
 | 
			
		||||
            if (sender != null) {
 | 
			
		||||
                long senderBalance = balanceStorage.getBalance(sender);
 | 
			
		||||
                double senderBalance = balanceStorage.getBalance(sender);
 | 
			
		||||
                if (senderBalance >= amount && amount > 0) {
 | 
			
		||||
                    balanceStorage.removeBalance(sender, amount);
 | 
			
		||||
                    balanceStorage.addBalance(target, amount);
 | 
			
		||||
 
 | 
			
		||||
@@ -22,8 +22,8 @@ public class PriceCommand {
 | 
			
		||||
    private static int runStack(CommandContext<ServerCommandSource> ctx, ItemStack stack) {
 | 
			
		||||
        ItemPriceRecord itemPriceRecord = priceStorage.getPrices(stack);
 | 
			
		||||
        ServerCommandSource src = ctx.getSource();
 | 
			
		||||
        int buyPrice = itemPriceRecord.buyPrice();
 | 
			
		||||
        int sellPrice = itemPriceRecord.sellPrice();
 | 
			
		||||
        double buyPrice = itemPriceRecord.buyPrice();
 | 
			
		||||
        double sellPrice = itemPriceRecord.sellPrice();
 | 
			
		||||
        String itemName = stack.getItem().toString();
 | 
			
		||||
        Text text = getText(buyPrice, sellPrice, itemName);
 | 
			
		||||
        src.sendFeedback(() -> text, false);
 | 
			
		||||
@@ -39,7 +39,7 @@ public class PriceCommand {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static @NotNull Text getText(int buyPrice, int sellPrice, String itemName) {
 | 
			
		||||
    private static @NotNull Text getText(double buyPrice, double sellPrice, String itemName) {
 | 
			
		||||
        Text text;
 | 
			
		||||
        if (buyPrice > 0 && sellPrice > 0) {
 | 
			
		||||
            text = Text.translatable("message.servershop.price.both", itemName, buyPrice, sellPrice);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package systems.brn.servershop.commands;
 | 
			
		||||
 | 
			
		||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
 | 
			
		||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
 | 
			
		||||
import com.mojang.brigadier.context.CommandContext;
 | 
			
		||||
import net.minecraft.command.argument.ItemStackArgumentType;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
@@ -59,8 +59,8 @@ public class ShopCommands {
 | 
			
		||||
 | 
			
		||||
    private static int setStack(CommandContext<ServerCommandSource> ctx, ItemStack stack) {
 | 
			
		||||
        String itemName = stack.getItem().toString();
 | 
			
		||||
        int buyPrice = IntegerArgumentType.getInteger(ctx, "buyprice");
 | 
			
		||||
        int sellPrice = IntegerArgumentType.getInteger(ctx, "sellprice");
 | 
			
		||||
        double buyPrice = DoubleArgumentType.getDouble(ctx, "buyprice");
 | 
			
		||||
        double sellPrice = DoubleArgumentType.getDouble(ctx, "sellprice");
 | 
			
		||||
        ServerShop.priceStorage.setPrices(stack, buyPrice, sellPrice);
 | 
			
		||||
        ctx.getSource().sendFeedback(() -> Text.translatable("message.servershop.prices.set", itemName, buyPrice, sellPrice), false);
 | 
			
		||||
        return 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,6 @@ import eu.pb4.placeholders.api.PlaceholderResult;
 | 
			
		||||
import net.minecraft.server.network.ServerPlayerEntity;
 | 
			
		||||
import net.minecraft.text.Text;
 | 
			
		||||
import org.jetbrains.annotations.Nullable;
 | 
			
		||||
import systems.brn.servershop.lib.storages.PriceStorage;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.ServerShop.balanceStorage;
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +13,7 @@ public class BalancePlaceholder implements PlaceholderHandler {
 | 
			
		||||
    @Override
 | 
			
		||||
    public PlaceholderResult onPlaceholderRequest(PlaceholderContext context, @Nullable String argument) {
 | 
			
		||||
        ServerPlayerEntity player = context.player();
 | 
			
		||||
        long balance = 0;
 | 
			
		||||
        double balance = 0;
 | 
			
		||||
        if (balanceStorage != null && player != null) {
 | 
			
		||||
            balance = balanceStorage.getBalance(player);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -187,7 +187,7 @@ public abstract class PagedGui extends SimpleGui {
 | 
			
		||||
            if (gui.canNextPage()) {
 | 
			
		||||
                return DisplayElement.of(
 | 
			
		||||
                        new GuiElementBuilder(Items.PLAYER_HEAD)
 | 
			
		||||
                                .setName(Text.translatable("createWorld.customize.custom.next").formatted(Formatting.WHITE))
 | 
			
		||||
                                .setName(Text.translatable("spectatorMenu.next_page").formatted(Formatting.WHITE))
 | 
			
		||||
                                .hideDefaultTooltip().noDefaults()
 | 
			
		||||
                                .setSkullOwner(GUI_NEXT_PAGE)
 | 
			
		||||
                                .setCallback((x, y, z) -> {
 | 
			
		||||
@@ -198,7 +198,7 @@ public abstract class PagedGui extends SimpleGui {
 | 
			
		||||
            } else {
 | 
			
		||||
                return DisplayElement.of(
 | 
			
		||||
                        new GuiElementBuilder(Items.PLAYER_HEAD)
 | 
			
		||||
                                .setName(Text.translatable("createWorld.customize.custom.next").formatted(Formatting.DARK_GRAY))
 | 
			
		||||
                                .setName(Text.translatable("spectatorMenu.next_page").formatted(Formatting.DARK_GRAY))
 | 
			
		||||
                                .hideDefaultTooltip().noDefaults()
 | 
			
		||||
                                .setSkullOwner(GUI_NEXT_PAGE_BLOCKED)
 | 
			
		||||
                );
 | 
			
		||||
@@ -209,7 +209,7 @@ public abstract class PagedGui extends SimpleGui {
 | 
			
		||||
            if (gui.canPreviousPage()) {
 | 
			
		||||
                return DisplayElement.of(
 | 
			
		||||
                        new GuiElementBuilder(Items.PLAYER_HEAD)
 | 
			
		||||
                                .setName(Text.translatable("createWorld.customize.custom.prev").formatted(Formatting.WHITE))
 | 
			
		||||
                                .setName(Text.translatable("spectatorMenu.previous_page").formatted(Formatting.WHITE))
 | 
			
		||||
                                .hideDefaultTooltip().noDefaults()
 | 
			
		||||
                                .setSkullOwner(GUI_PREVIOUS_PAGE)
 | 
			
		||||
                                .setCallback((x, y, z) -> {
 | 
			
		||||
@@ -220,7 +220,7 @@ public abstract class PagedGui extends SimpleGui {
 | 
			
		||||
            } else {
 | 
			
		||||
                return DisplayElement.of(
 | 
			
		||||
                        new GuiElementBuilder(Items.PLAYER_HEAD)
 | 
			
		||||
                                .setName(Text.translatable("createWorld.customize.custom.prev").formatted(Formatting.DARK_GRAY))
 | 
			
		||||
                                .setName(Text.translatable("spectatorMenu.previous_page").formatted(Formatting.DARK_GRAY))
 | 
			
		||||
                                .hideDefaultTooltip().noDefaults()
 | 
			
		||||
                                .setSkullOwner(GUI_PREVIOUS_PAGE_BLOCKED)
 | 
			
		||||
                );
 | 
			
		||||
 
 | 
			
		||||
@@ -15,16 +15,16 @@ public class ShopFunctions {
 | 
			
		||||
        ItemStack itemStack = itemStackIn.copy();
 | 
			
		||||
        PlayerInventory playerInventory = player.getInventory();
 | 
			
		||||
        ItemPriceRecord price = priceStorage.getPrices(itemStack);
 | 
			
		||||
        long playerBalance = balanceStorage.getBalance(player);
 | 
			
		||||
        double playerBalance = balanceStorage.getBalance(player);
 | 
			
		||||
        if (price.buyPrice() > 0) {
 | 
			
		||||
            int count = Math.min(itemStack.getCount(), maxInsertionAmount(playerInventory, itemStack.copy()));
 | 
			
		||||
            itemStack.setCount(count);
 | 
			
		||||
            int buyPrice = price.buyPrice() * itemStack.getCount();
 | 
			
		||||
            double buyPrice = price.buyPrice() * itemStack.getCount();
 | 
			
		||||
            if (playerBalance >= buyPrice) {
 | 
			
		||||
                ItemStack remaining = insertStackIntoInventory(playerInventory, itemStack.copy());
 | 
			
		||||
                int boughtCount = itemStack.getCount() - remaining.getCount();
 | 
			
		||||
                if (boughtCount > 0) {
 | 
			
		||||
                    int toDeduce = price.buyPrice() * boughtCount;
 | 
			
		||||
                    double toDeduce = price.buyPrice() * boughtCount;
 | 
			
		||||
                    balanceStorage.removeBalance(player, toDeduce);
 | 
			
		||||
                    playerBalance = balanceStorage.getBalance(player);
 | 
			
		||||
                    player.sendMessage(Text.translatable("message.servershop.buy.success", boughtCount, itemStack.getName(), toDeduce, playerBalance), overlay);
 | 
			
		||||
@@ -43,7 +43,7 @@ public class ShopFunctions {
 | 
			
		||||
        PlayerInventory playerInventory = player.getInventory();
 | 
			
		||||
        ItemStack itemStack = itemStackIn.copy();
 | 
			
		||||
        ItemPriceRecord price = priceStorage.getPrices(itemStack);
 | 
			
		||||
        int sellPrice = price.sellPrice();
 | 
			
		||||
        double sellPrice = price.sellPrice();
 | 
			
		||||
        if (sellPrice > 0) {
 | 
			
		||||
            int remaining;
 | 
			
		||||
            if (!isCursorStack) {
 | 
			
		||||
@@ -52,13 +52,13 @@ public class ShopFunctions {
 | 
			
		||||
                remaining = 0;
 | 
			
		||||
                itemStackIn.setCount(0);
 | 
			
		||||
            }
 | 
			
		||||
            int toAdd = sellPrice * (itemStack.getCount() - remaining);
 | 
			
		||||
            double toAdd = sellPrice * (itemStack.getCount() - remaining);
 | 
			
		||||
            int soldCount = itemStack.getCount() - remaining;
 | 
			
		||||
            balanceStorage.addBalance(player, toAdd);
 | 
			
		||||
            if (soldCount == 0) {
 | 
			
		||||
                player.sendMessage(Text.translatable("message.servershop.sell.not_enough"), overlay);
 | 
			
		||||
            } else {
 | 
			
		||||
                long playerBalance = balanceStorage.getBalance(player);
 | 
			
		||||
                double playerBalance = balanceStorage.getBalance(player);
 | 
			
		||||
                player.sendMessage(Text.translatable("message.servershop.sell.success", soldCount, itemStack.getName(), toAdd, playerBalance), overlay);
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -188,8 +188,8 @@ public class Util {
 | 
			
		||||
 | 
			
		||||
    public static ItemStack addPricesEditor(ItemPriceRecord price) {
 | 
			
		||||
        ItemStack stack = price.stack();
 | 
			
		||||
        int buyPrice = price.buyPrice();
 | 
			
		||||
        int sellPrice = price.sellPrice();
 | 
			
		||||
        double buyPrice = price.buyPrice();
 | 
			
		||||
        double sellPrice = price.sellPrice();
 | 
			
		||||
        int count = stack.getCount();
 | 
			
		||||
        if (count > 0) {
 | 
			
		||||
            return addLore(buyPrice, sellPrice, stack, true, null, false);
 | 
			
		||||
@@ -200,8 +200,8 @@ public class Util {
 | 
			
		||||
 | 
			
		||||
    public static ItemStack addPrices(ItemPriceRecord price) {
 | 
			
		||||
        ItemStack stack = price.stack();
 | 
			
		||||
        int buyPrice = price.buyPrice();
 | 
			
		||||
        int sellPrice = price.sellPrice();
 | 
			
		||||
        double buyPrice = price.buyPrice();
 | 
			
		||||
        double sellPrice = price.sellPrice();
 | 
			
		||||
        int count = stack.getCount();
 | 
			
		||||
        if (count > 0) {
 | 
			
		||||
            return addLore(buyPrice, sellPrice, stack, false, null, false);
 | 
			
		||||
@@ -212,8 +212,8 @@ public class Util {
 | 
			
		||||
 | 
			
		||||
    public static ItemStack addPrices(AuctionRecord auctionRecord, ServerPlayerEntity looker) {
 | 
			
		||||
        ItemStack stack = auctionRecord.stack();
 | 
			
		||||
        int buyPrice = auctionRecord.buyPrice();
 | 
			
		||||
        int sellPrice = 0;
 | 
			
		||||
        double buyPrice = auctionRecord.buyPrice();
 | 
			
		||||
        double sellPrice = 0;
 | 
			
		||||
        int count = stack.getCount();
 | 
			
		||||
        if (count > 0) {
 | 
			
		||||
            return addLore(buyPrice, sellPrice, stack, false, auctionRecord.getProfile(looker.getServer()).getName(), auctionRecord.sellerUUID().equals(looker.getUuid()));
 | 
			
		||||
@@ -223,7 +223,7 @@ public class Util {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @NotNull
 | 
			
		||||
    private static ItemStack addLore(int buyPrice, int sellPrice, ItemStack stack, boolean isEditor, String sellerName, boolean me) {
 | 
			
		||||
    private static ItemStack addLore(double buyPrice, double sellPrice, ItemStack stack, boolean isEditor, String sellerName, boolean me) {
 | 
			
		||||
        Text buyLine = Text.translatable("gui.servershop." + (isEditor ? "shop.editor." : "") + "item.buy_price" + (buyPrice == 0 ? "_not_buyable" : "") + (buyPrice == -1 ? "_disabled" : ""), buyPrice).setStyle(Style.EMPTY.withColor(Formatting.DARK_GREEN).withItalic(true));
 | 
			
		||||
        Text sellLine = Text.translatable("gui.servershop." + (isEditor ? "shop.editor." : "") + "item.sell_price" + (sellPrice == 0 ? "_not_sellable" : "") + (sellPrice == -1 ? "_disabled" : ""), sellPrice).setStyle(Style.EMPTY.withColor(Formatting.AQUA).withItalic(true));
 | 
			
		||||
        Text infoLine = Text.translatable("gui.servershop." + (isEditor ? "shop.editor." : "") + "item.stack_info").setStyle(Style.EMPTY.withColor(Formatting.YELLOW).withItalic(true));
 | 
			
		||||
@@ -280,19 +280,19 @@ public class Util {
 | 
			
		||||
            sortedMap = new TreeMap<>((o1, o2) -> {
 | 
			
		||||
                ItemPriceRecord record1 = priceRecordMap.get(o1);
 | 
			
		||||
                ItemPriceRecord record2 = priceRecordMap.get(o2);
 | 
			
		||||
                int buyPrice1 = record1.buyPrice();
 | 
			
		||||
                int sellPrice1 = record1.sellPrice();
 | 
			
		||||
                int buyPrice2 = record2.buyPrice();
 | 
			
		||||
                int sellPrice2 = record2.sellPrice();
 | 
			
		||||
                double buyPrice1 = record1.buyPrice();
 | 
			
		||||
                double sellPrice1 = record1.sellPrice();
 | 
			
		||||
                double buyPrice2 = record2.buyPrice();
 | 
			
		||||
                double sellPrice2 = record2.sellPrice();
 | 
			
		||||
                int countCompare;
 | 
			
		||||
                if (sortMode == 0) {
 | 
			
		||||
                    countCompare = Integer.compare(buyPrice1, buyPrice2);
 | 
			
		||||
                    countCompare = Double.compare(buyPrice1, buyPrice2);
 | 
			
		||||
                } else if (sortMode == 1) {
 | 
			
		||||
                    countCompare = Integer.compare(buyPrice2, buyPrice1);
 | 
			
		||||
                    countCompare = Double.compare(buyPrice2, buyPrice1);
 | 
			
		||||
                } else if (sortMode == 2) {
 | 
			
		||||
                    countCompare = Integer.compare(sellPrice1, sellPrice2);
 | 
			
		||||
                    countCompare = Double.compare(sellPrice1, sellPrice2);
 | 
			
		||||
                } else { //sortmode 3
 | 
			
		||||
                    countCompare = Integer.compare(sellPrice2, sellPrice1);
 | 
			
		||||
                    countCompare = Double.compare(sellPrice2, sellPrice1);
 | 
			
		||||
                }
 | 
			
		||||
                // If counts are equal, compare items alphabetically by name
 | 
			
		||||
                return countCompare == 0 ? String.valueOf(o1.getItem()).compareToIgnoreCase(String.valueOf(o2.getItem())) : countCompare;
 | 
			
		||||
@@ -301,8 +301,8 @@ public class Util {
 | 
			
		||||
        return sortedMap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static @NotNull TreeMap<UUID, Long> getBalancesTreeMap(Map<UUID, Long> balanceRecordMap, MinecraftServer server, int sortMode) {
 | 
			
		||||
        TreeMap<UUID, Long> sortedMap;
 | 
			
		||||
    private static @NotNull TreeMap<UUID, Double> getBalancesTreeMap(Map<UUID, Double> balanceRecordMap, MinecraftServer server, int sortMode) {
 | 
			
		||||
        TreeMap<UUID, Double> sortedMap;
 | 
			
		||||
 | 
			
		||||
        if (sortMode == 2 || sortMode == 3) {
 | 
			
		||||
            // Sort alphabetically by player name
 | 
			
		||||
@@ -318,13 +318,13 @@ public class Util {
 | 
			
		||||
        } else {
 | 
			
		||||
            // Sort by count in descending order
 | 
			
		||||
            sortedMap = new TreeMap<>((o1, o2) -> {
 | 
			
		||||
                Long balance1 = balanceRecordMap.get(o1);
 | 
			
		||||
                Long balance2 = balanceRecordMap.get(o2);
 | 
			
		||||
                Double balance1 = balanceRecordMap.get(o1);
 | 
			
		||||
                Double balance2 = balanceRecordMap.get(o2);
 | 
			
		||||
                int countCompare;
 | 
			
		||||
                if (sortMode == 0) {
 | 
			
		||||
                    countCompare = Long.compare(balance1, balance2);
 | 
			
		||||
                    countCompare = Double.compare(balance1, balance2);
 | 
			
		||||
                } else {
 | 
			
		||||
                    countCompare = Long.compare(balance2, balance1);
 | 
			
		||||
                    countCompare = Double.compare(balance2, balance1);
 | 
			
		||||
                }
 | 
			
		||||
                // If counts are equal, compare items alphabetically by name
 | 
			
		||||
                return countCompare == 0 ? getGameProfile(o1, server).getName().compareToIgnoreCase(getGameProfile(o2, server).getName()) : countCompare;
 | 
			
		||||
@@ -357,13 +357,13 @@ public class Util {
 | 
			
		||||
        } else {
 | 
			
		||||
            // Sort by count in descending order
 | 
			
		||||
            sortedSet = new TreeSet<>((record1, record2) -> {
 | 
			
		||||
                int buyPrice1 = record1.buyPrice();
 | 
			
		||||
                int buyPrice2 = record2.buyPrice();
 | 
			
		||||
                double buyPrice1 = record1.buyPrice();
 | 
			
		||||
                double buyPrice2 = record2.buyPrice();
 | 
			
		||||
                int countCompare;
 | 
			
		||||
                if (sortMode == 0) {
 | 
			
		||||
                    countCompare = Integer.compare(buyPrice1, buyPrice2);
 | 
			
		||||
                    countCompare = Double.compare(buyPrice1, buyPrice2);
 | 
			
		||||
                } else {
 | 
			
		||||
                    countCompare = Integer.compare(buyPrice2, buyPrice1);
 | 
			
		||||
                    countCompare = Double.compare(buyPrice2, buyPrice1);
 | 
			
		||||
                }
 | 
			
		||||
                // If counts are equal, compare items alphabetically by name
 | 
			
		||||
                return countCompare == 0 ? String.valueOf(record1.stack().getItem()).compareToIgnoreCase(String.valueOf(record2.stack().getItem())) : countCompare;
 | 
			
		||||
@@ -418,12 +418,12 @@ public class Util {
 | 
			
		||||
        return sortedMap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static TreeMap<UUID, Long> sortaAndFilterBalances(Map<UUID, Long> balancesMap, MinecraftServer server, int sortMode, String query) {
 | 
			
		||||
        TreeMap<UUID, Long> sortedMap = getBalancesTreeMap(balancesMap, server, sortMode);
 | 
			
		||||
    public static TreeMap<UUID, Double> sortaAndFilterBalances(Map<UUID, Double> balancesMap, MinecraftServer server, int sortMode, String query) {
 | 
			
		||||
        TreeMap<UUID, Double> sortedMap = getBalancesTreeMap(balancesMap, server, sortMode);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        Map<UUID, Long> filteredMap = new HashMap<>();
 | 
			
		||||
        for (Map.Entry<UUID, Long> entry : balancesMap.entrySet()) {
 | 
			
		||||
        Map<UUID, Double> filteredMap = new HashMap<>();
 | 
			
		||||
        for (Map.Entry<UUID, Double> entry : balancesMap.entrySet()) {
 | 
			
		||||
            UUID uuid = entry.getKey();
 | 
			
		||||
            GameProfile profile = getGameProfile(uuid, server);
 | 
			
		||||
            if (query == null || query.isEmpty() || query.equals("*") || query.equals("Filter not set") || profile.getName().toLowerCase().contains(query.toLowerCase())) {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,12 +12,12 @@ import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.lib.Util.getGameProfile;
 | 
			
		||||
 | 
			
		||||
public record AuctionRecord(int buyPrice, ItemStack stack, UUID sellerUUID) {
 | 
			
		||||
public record AuctionRecord(double buyPrice, ItemStack stack, UUID sellerUUID) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public NbtCompound toNbt(RegistryWrapper.WrapperLookup wrapperLookup) {
 | 
			
		||||
        NbtCompound nbt = new NbtCompound();
 | 
			
		||||
        nbt.putInt("BuyPrice", this.buyPrice);
 | 
			
		||||
        nbt.putDouble("BuyPrice", this.buyPrice);
 | 
			
		||||
        nbt.putUuid("SellerUUID", sellerUUID);
 | 
			
		||||
 | 
			
		||||
        // Serialize the ItemStack to NBT and add it to the compound
 | 
			
		||||
@@ -32,7 +32,7 @@ public record AuctionRecord(int buyPrice, ItemStack stack, UUID sellerUUID) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static AuctionRecord fromNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup wrapperLookup) {
 | 
			
		||||
        int buyPrice = nbt.getInt("BuyPrice");
 | 
			
		||||
        double buyPrice = nbt.getFloat("BuyPrice");
 | 
			
		||||
        UUID sellerUUID = nbt.getUuid("SellerUUID");
 | 
			
		||||
 | 
			
		||||
        // Deserialize the ItemStack from the NBT
 | 
			
		||||
 
 | 
			
		||||
@@ -7,13 +7,13 @@ import net.minecraft.registry.RegistryWrapper;
 | 
			
		||||
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
 | 
			
		||||
public record ItemPriceRecord(int buyPrice, int sellPrice, ItemStack stack) {
 | 
			
		||||
public record ItemPriceRecord(double buyPrice, double sellPrice, ItemStack stack) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public NbtCompound toNbt(RegistryWrapper.WrapperLookup wrapperLookup) {
 | 
			
		||||
        NbtCompound nbt = new NbtCompound();
 | 
			
		||||
        nbt.putInt("BuyPrice", this.buyPrice);
 | 
			
		||||
        nbt.putInt("SellPrice", this.sellPrice);
 | 
			
		||||
        nbt.putDouble("BuyPrice", this.buyPrice);
 | 
			
		||||
        nbt.putDouble("SellPrice", this.sellPrice);
 | 
			
		||||
 | 
			
		||||
        // Serialize the ItemStack to NBT and add it to the compound
 | 
			
		||||
        if (stack != null && !stack.isEmpty()) {
 | 
			
		||||
@@ -26,8 +26,8 @@ public record ItemPriceRecord(int buyPrice, int sellPrice, ItemStack stack) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static ItemPriceRecord fromNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup wrapperLookup) {
 | 
			
		||||
        int buyPrice = nbt.getInt("BuyPrice");
 | 
			
		||||
        int sellPrice = nbt.getInt("SellPrice");
 | 
			
		||||
        double buyPrice = nbt.getFloat("BuyPrice");
 | 
			
		||||
        double sellPrice = nbt.getFloat("SellPrice");
 | 
			
		||||
 | 
			
		||||
        if (sellPrice > buyPrice && buyPrice != 0) {
 | 
			
		||||
            buyPrice = sellPrice;
 | 
			
		||||
@@ -36,7 +36,7 @@ public record ItemPriceRecord(int buyPrice, int sellPrice, ItemStack stack) {
 | 
			
		||||
        NbtElement stackElement = nbt.get("ItemStack");
 | 
			
		||||
 | 
			
		||||
        Optional<ItemStack> stack = ItemStack.fromNbt(wrapperLookup, stackElement);
 | 
			
		||||
        int finalBuyPrice = buyPrice;
 | 
			
		||||
        double finalBuyPrice = buyPrice;
 | 
			
		||||
        return stack.map(itemStack -> new ItemPriceRecord(finalBuyPrice, sellPrice, itemStack)).orElse(null);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
package systems.brn.servershop.lib.storages;
 | 
			
		||||
 | 
			
		||||
import com.mojang.authlib.GameProfile;
 | 
			
		||||
import net.minecraft.entity.player.PlayerInventory;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.nbt.*;
 | 
			
		||||
@@ -39,7 +38,7 @@ public class AuctionStorage {
 | 
			
		||||
        load();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addAuction(ServerPlayerEntity seller, int price, ItemStack itemStack, boolean fromCursorStack) {
 | 
			
		||||
    public void addAuction(ServerPlayerEntity seller, double price, ItemStack itemStack, boolean fromCursorStack) {
 | 
			
		||||
        PlayerInventory playerInventory = seller.getInventory();
 | 
			
		||||
        if (itemStack.isEmpty()) {
 | 
			
		||||
            seller.sendMessage(Text.translatable("message.servershop.auction.empty"), true);
 | 
			
		||||
@@ -73,14 +72,14 @@ public class AuctionStorage {
 | 
			
		||||
    public void buyAuction(ServerPlayerEntity buyer, AuctionRecord auction) {
 | 
			
		||||
        PlayerInventory playerInventory = buyer.getInventory();
 | 
			
		||||
        ItemStack itemStack = removePrices(auction.stack());
 | 
			
		||||
        int buyPrice = auction.buyPrice() * itemStack.getCount();
 | 
			
		||||
        long playerBalance = balanceStorage.getBalance(buyer);
 | 
			
		||||
        double buyPrice = auction.buyPrice() * itemStack.getCount();
 | 
			
		||||
        double playerBalance = balanceStorage.getBalance(buyer);
 | 
			
		||||
        if (buyPrice > 0 && auctions.contains(auction)) {
 | 
			
		||||
            if (playerBalance >= buyPrice || buyer.getUuid().equals(auction.sellerUUID())) {
 | 
			
		||||
                ItemStack remaining = insertStackIntoInventory(playerInventory, itemStack.copy());
 | 
			
		||||
                int boughtCount = itemStack.getCount() - remaining.getCount();
 | 
			
		||||
                if (boughtCount > 0) {
 | 
			
		||||
                    int toDeduce = auction.buyPrice() * boughtCount;
 | 
			
		||||
                    double toDeduce = auction.buyPrice() * boughtCount;
 | 
			
		||||
                    if (!buyer.getUuid().equals(auction.sellerUUID())) {
 | 
			
		||||
                        balanceStorage.removeBalance(buyer, toDeduce);
 | 
			
		||||
                        balanceStorage.addBalance(auction.sellerUUID(), toDeduce);
 | 
			
		||||
@@ -88,7 +87,7 @@ public class AuctionStorage {
 | 
			
		||||
                        buyer.sendMessage(Text.translatable("message.servershop.buy.success", boughtCount, itemStack.getName(), toDeduce, playerBalance), true);
 | 
			
		||||
                        ServerPlayerEntity seller = server.getPlayerManager().getPlayer(auction.sellerUUID());
 | 
			
		||||
                        if (seller != null && !seller.isDisconnected()) {
 | 
			
		||||
                            long sellerBalance = balanceStorage.getBalance(seller);
 | 
			
		||||
                            double sellerBalance = balanceStorage.getBalance(seller);
 | 
			
		||||
                            seller.sendMessage(Text.translatable("message.servershop.buy.other", buyer.getName(), boughtCount, itemStack.getName(), toDeduce, sellerBalance), true);
 | 
			
		||||
                        }
 | 
			
		||||
                    } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ import java.util.concurrent.ConcurrentHashMap;
 | 
			
		||||
import java.util.concurrent.locks.ReentrantLock;
 | 
			
		||||
 | 
			
		||||
public class BalanceStorage {
 | 
			
		||||
    public final ConcurrentHashMap<UUID, Long> balances = new ConcurrentHashMap<>();
 | 
			
		||||
    public final ConcurrentHashMap<UUID, Double> balances = new ConcurrentHashMap<>();
 | 
			
		||||
    public final MinecraftServer server;
 | 
			
		||||
    private final File balanceStorageFile;
 | 
			
		||||
    private final File balanceStorageCSVFile;
 | 
			
		||||
@@ -26,40 +26,40 @@ public class BalanceStorage {
 | 
			
		||||
        loadBalances();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public long getBalance(UUID uuid) {
 | 
			
		||||
        return balances.getOrDefault(uuid, 0L);
 | 
			
		||||
    public double getBalance(UUID uuid) {
 | 
			
		||||
        return balances.getOrDefault(uuid, (double) 0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public long getBalance(ServerPlayerEntity player) {
 | 
			
		||||
    public double getBalance(ServerPlayerEntity player) {
 | 
			
		||||
        return getBalance(player.getUuid());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addBalance(UUID uuid, long amount) {
 | 
			
		||||
    public void addBalance(UUID uuid, double amount) {
 | 
			
		||||
        balances.put(uuid, getBalance(uuid) + amount);
 | 
			
		||||
        saveBalances();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addBalance(ServerPlayerEntity player, long amount) {
 | 
			
		||||
    public void addBalance(ServerPlayerEntity player, double amount) {
 | 
			
		||||
        addBalance(player.getUuid(), amount);
 | 
			
		||||
        announceBalance(player, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void removeBalance(UUID uuid, long amount) {
 | 
			
		||||
    public void removeBalance(UUID uuid, double amount) {
 | 
			
		||||
        balances.put(uuid, getBalance(uuid) - amount);
 | 
			
		||||
        saveBalances();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBalance(UUID uuid, long amount) {
 | 
			
		||||
    public void setBalance(UUID uuid, double amount) {
 | 
			
		||||
        balances.put(uuid, amount);
 | 
			
		||||
        saveBalances();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBalance(ServerPlayerEntity player, long amount) {
 | 
			
		||||
    public void setBalance(ServerPlayerEntity player, double amount) {
 | 
			
		||||
        setBalance(player.getUuid(), amount);
 | 
			
		||||
        announceBalance(player, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void removeBalance(ServerPlayerEntity player, long amount) {
 | 
			
		||||
    public void removeBalance(ServerPlayerEntity player, double amount) {
 | 
			
		||||
        removeBalance(player.getUuid(), amount);
 | 
			
		||||
        announceBalance(player, true);
 | 
			
		||||
    }
 | 
			
		||||
@@ -71,7 +71,7 @@ public class BalanceStorage {
 | 
			
		||||
            for (UUID uuid : balances.keySet()) {
 | 
			
		||||
                NbtCompound nbtCompound = new NbtCompound();
 | 
			
		||||
                nbtCompound.putUuid("UUID", uuid);
 | 
			
		||||
                nbtCompound.putLong("Balance", balances.get(uuid));
 | 
			
		||||
                nbtCompound.putDouble("Balance", balances.get(uuid));
 | 
			
		||||
                nbtList.add(nbtCompound);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -102,7 +102,7 @@ public class BalanceStorage {
 | 
			
		||||
                    for (NbtElement element : nbtList) {
 | 
			
		||||
                        if (element instanceof NbtCompound nbt) {
 | 
			
		||||
                            UUID uuid = nbt.getUuid("UUID");
 | 
			
		||||
                            long balance = nbt.getLong("Balance");
 | 
			
		||||
                            double balance = nbt.getDouble("Balance");
 | 
			
		||||
                            balances.put(uuid, balance);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
@@ -134,7 +134,7 @@ public class BalanceStorage {
 | 
			
		||||
                String[] lineParts = line.split(",");
 | 
			
		||||
                if (lineParts.length == 2) {
 | 
			
		||||
                    UUID uuid = UUID.fromString(lineParts[0]);
 | 
			
		||||
                    Long amount = Long.parseLong(lineParts[1]);
 | 
			
		||||
                    double amount = Double.parseDouble(lineParts[1]);
 | 
			
		||||
                    balances.put(uuid, amount);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@@ -150,7 +150,7 @@ public class BalanceStorage {
 | 
			
		||||
 | 
			
		||||
    public void announceBalance(ServerPlayerEntity player, boolean overlay) {
 | 
			
		||||
        UUID uuid = player.getUuid();
 | 
			
		||||
        long balance = balances.getOrDefault(uuid, 0L);
 | 
			
		||||
        double balance = balances.getOrDefault(uuid, (double) 0);
 | 
			
		||||
        player.sendMessage(Text.translatable("message.servershop.balance.self", balance), overlay);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,7 @@ public class PriceStorage {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPrices(ItemStack inStack, int buyPrice, int sellPrice) {
 | 
			
		||||
    public void setPrices(ItemStack inStack, double buyPrice, double sellPrice) {
 | 
			
		||||
        boolean found = false;
 | 
			
		||||
        for (ItemStack priceStack : prices.keySet()) {
 | 
			
		||||
            if (ItemStack.areItemsAndComponentsEqual(inStack, priceStack)) {
 | 
			
		||||
@@ -157,8 +157,8 @@ public class PriceStorage {
 | 
			
		||||
                    String[] itemIdentifierParts = itemName.split(":");
 | 
			
		||||
                    if (itemIdentifierParts.length == 2) {
 | 
			
		||||
                        Identifier itemIdentifier = Identifier.of(itemIdentifierParts[0], itemIdentifierParts[1]);
 | 
			
		||||
                        int buyPrice = Integer.parseInt(lineParts[1]);
 | 
			
		||||
                        int sellPrice = Integer.parseInt(lineParts[2]);
 | 
			
		||||
                        double buyPrice = Double.parseDouble(lineParts[1]);
 | 
			
		||||
                        double sellPrice = Double.parseDouble(lineParts[2]);
 | 
			
		||||
                        Item item = Registries.ITEM.get(itemIdentifier);
 | 
			
		||||
                        prices.put(item.getDefaultStack(), new ItemPriceRecord(buyPrice, sellPrice, item.getDefaultStack()));
 | 
			
		||||
                    }
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@ import systems.brn.servershop.lib.SearchableInterface;
 | 
			
		||||
import systems.brn.servershop.lib.records.AuctionRecord;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.TreeSet;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.lib.Util.*;
 | 
			
		||||
 | 
			
		||||
@@ -23,7 +22,7 @@ public class AuctionBrowserScreen extends PagedGui implements SearchableInterfac
 | 
			
		||||
 | 
			
		||||
    public String searchQuery = "";
 | 
			
		||||
    public int sortMode = 0;
 | 
			
		||||
    public int maxSortMode = 5;
 | 
			
		||||
    public final int maxSortMode = 5;
 | 
			
		||||
 | 
			
		||||
    public ArrayList<AuctionRecord> filteredAuctions;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,8 @@
 | 
			
		||||
package systems.brn.servershop.screens;
 | 
			
		||||
 | 
			
		||||
import com.mojang.authlib.GameProfile;
 | 
			
		||||
import eu.pb4.sgui.api.ClickType;
 | 
			
		||||
import eu.pb4.sgui.api.elements.GuiElementBuilder;
 | 
			
		||||
import eu.pb4.sgui.api.elements.GuiElementInterface;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.item.Items;
 | 
			
		||||
import net.minecraft.screen.slot.SlotActionType;
 | 
			
		||||
import net.minecraft.server.MinecraftServer;
 | 
			
		||||
import net.minecraft.server.network.ServerPlayerEntity;
 | 
			
		||||
import net.minecraft.text.Text;
 | 
			
		||||
@@ -14,12 +10,9 @@ import net.minecraft.util.Formatting;
 | 
			
		||||
import systems.brn.servershop.ServerShop;
 | 
			
		||||
import systems.brn.servershop.lib.PagedGui;
 | 
			
		||||
import systems.brn.servershop.lib.SearchableInterface;
 | 
			
		||||
import systems.brn.servershop.lib.records.ItemPriceRecord;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.lib.ShopFunctions.buy;
 | 
			
		||||
import static systems.brn.servershop.lib.ShopFunctions.sell;
 | 
			
		||||
import static systems.brn.servershop.lib.Util.*;
 | 
			
		||||
 | 
			
		||||
public class BalanceScreen extends PagedGui implements SearchableInterface {
 | 
			
		||||
@@ -28,7 +21,7 @@ public class BalanceScreen extends PagedGui implements SearchableInterface {
 | 
			
		||||
    public int sortMode = 0;
 | 
			
		||||
    public final int maxSortMode = 3;
 | 
			
		||||
 | 
			
		||||
    public TreeMap<UUID, Long> filteredBalances;
 | 
			
		||||
    public TreeMap<UUID, Double> filteredBalances;
 | 
			
		||||
 | 
			
		||||
    public BalanceScreen(ServerPlayerEntity player) {
 | 
			
		||||
        super(player, null);
 | 
			
		||||
@@ -63,11 +56,11 @@ public class BalanceScreen extends PagedGui implements SearchableInterface {
 | 
			
		||||
    protected DisplayElement getElement(int id) {
 | 
			
		||||
        MinecraftServer server = player.getServer();
 | 
			
		||||
        if (server != null) {
 | 
			
		||||
            List<Map.Entry<UUID, Long>> list = new ArrayList<>(filteredBalances.entrySet());
 | 
			
		||||
            List<Map.Entry<UUID, Double>> list = new ArrayList<>(filteredBalances.entrySet());
 | 
			
		||||
            if (id < list.size()) {
 | 
			
		||||
                Map.Entry<UUID, Long> balanceEntry = list.get(id);
 | 
			
		||||
                Map.Entry<UUID, Double> balanceEntry = list.get(id);
 | 
			
		||||
                UUID targetUUID = balanceEntry.getKey();
 | 
			
		||||
                Long targetBalance = balanceEntry.getValue();
 | 
			
		||||
                Double targetBalance = balanceEntry.getValue();
 | 
			
		||||
                GameProfile targetProfile = getGameProfile(targetUUID, server);
 | 
			
		||||
                GuiElementBuilder elementBuilder = new GuiElementBuilder(Items.PLAYER_HEAD)
 | 
			
		||||
                        .setSkullOwner(targetProfile, server)
 | 
			
		||||
 
 | 
			
		||||
@@ -5,18 +5,16 @@ import eu.pb4.sgui.api.gui.SimpleGui;
 | 
			
		||||
import net.minecraft.server.MinecraftServer;
 | 
			
		||||
import net.minecraft.text.Text;
 | 
			
		||||
import systems.brn.servershop.lib.PagedGui;
 | 
			
		||||
import systems.brn.servershop.lib.records.ItemPriceRecord;
 | 
			
		||||
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.ServerShop.balanceStorage;
 | 
			
		||||
import static systems.brn.servershop.ServerShop.priceStorage;
 | 
			
		||||
import static systems.brn.servershop.lib.Util.getGameProfile;
 | 
			
		||||
 | 
			
		||||
public class BalanceSetScreen extends AnvilInputGui {
 | 
			
		||||
 | 
			
		||||
    private final SimpleGui parentScreen;
 | 
			
		||||
    private long balance;
 | 
			
		||||
    private double balance;
 | 
			
		||||
    private final UUID targetUUID;
 | 
			
		||||
 | 
			
		||||
    public BalanceSetScreen(SimpleGui parentScreen, UUID targetUUID) {
 | 
			
		||||
@@ -36,7 +34,7 @@ public class BalanceSetScreen extends AnvilInputGui {
 | 
			
		||||
        super.onClose();
 | 
			
		||||
        if (parentScreen != null) {
 | 
			
		||||
            parentScreen.open();
 | 
			
		||||
            balance = Long.parseLong(this.getInput());
 | 
			
		||||
            balance = Double.parseDouble(this.getInput());
 | 
			
		||||
            balanceStorage.setBalance(targetUUID, balance);
 | 
			
		||||
            if (parentScreen instanceof PagedGui pagedGui) {
 | 
			
		||||
                pagedGui.updateDisplay();
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,6 @@ import systems.brn.servershop.lib.records.ItemPriceRecord;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.servershop.ServerShop.priceStorage;
 | 
			
		||||
import static systems.brn.servershop.lib.Util.*;
 | 
			
		||||
 | 
			
		||||
public class ShopEditorScreen extends PagedGui implements SearchableInterface {
 | 
			
		||||
 
 | 
			
		||||
@@ -12,8 +12,8 @@ import static systems.brn.servershop.ServerShop.priceStorage;
 | 
			
		||||
public class ShopPriceSetScreen extends AnvilInputGui {
 | 
			
		||||
 | 
			
		||||
    private final SimpleGui parentScreen;
 | 
			
		||||
    private int buyPrice;
 | 
			
		||||
    private int sellPrice;
 | 
			
		||||
    private double buyPrice;
 | 
			
		||||
    private double sellPrice;
 | 
			
		||||
    private final int priceMode;
 | 
			
		||||
    private final ItemStack itemStack;
 | 
			
		||||
    private boolean isBuyPrice;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user