From 66602ecb126b45bf143e3d6ff2026786d3d2b0a8 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:07:05 +0200 Subject: [PATCH 1/8] Setup direnv --- .envrc | 1 + shell.nix | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 .envrc create mode 100644 shell.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..1d953f4 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use nix diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..05fb7fd --- /dev/null +++ b/shell.nix @@ -0,0 +1,11 @@ +{ pkgs ? import {}, ... }: + +let +jdk = pkgs.jdk17; +gradle= pkgs.gradle.override { java = jdk; }; +in +pkgs.mkShell +{ + packages = with pkgs; [jdk gradle]; +} + From 63a93306b9a30a9d5c7039cdb3b55cbbad279264 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:41:48 +0200 Subject: [PATCH 2/8] Implement company taxes and order fees --- build.gradle.kts | 2 +- .../companies/commands/company/Order.java | 2 +- .../commands/company/order/Deliver.java | 10 ++- .../companies/commands/order/Create.java | 14 ++-- .../elements/CompanySettings.java | 6 ++ .../configuration/elements/OrderSettings.java | 7 ++ .../companysettings/CompanyTaxes.java | 23 +++++++ .../elements/ordersettings/FeeMode.java | 20 ++++++ .../elements/ordersettings/OrderFees.java | 69 +++++++++++++++++++ .../companies/orders/OrderBuilder.java | 60 +++++++++------- .../main/resources/messages_de_DE.properties | 4 +- .../main/resources/messages_en_US.properties | 2 + 12 files changed, 182 insertions(+), 37 deletions(-) create mode 100644 companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java create mode 100644 companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java create mode 100644 companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java diff --git a/build.gradle.kts b/build.gradle.kts index 5742c14..2ff7f3f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { } group = "de.eldoria" -version = "1.0.8" +version = "1.1.0" subprojects { apply { diff --git a/companies-core/src/main/java/de/eldoria/companies/commands/company/Order.java b/companies-core/src/main/java/de/eldoria/companies/commands/company/Order.java index 2250a64..3d63b1b 100755 --- a/companies-core/src/main/java/de/eldoria/companies/commands/company/Order.java +++ b/companies-core/src/main/java/de/eldoria/companies/commands/company/Order.java @@ -30,7 +30,7 @@ public Order(Plugin plugin, ACompanyData companyData, AOrderData orderData, Econ builder.withDefaultCommand(list); commands.add(new Abort(plugin, companyData, orderData, list)); commands.add(new Accept(plugin, companyData, orderData, configuration, messageBlocker)); - commands.add(new Deliver(plugin, companyData, orderData, economy, info, messageBlocker)); + commands.add(new Deliver(plugin, companyData, orderData, economy, info, messageBlocker, configuration)); commands.add(list); commands.add(info); commands.add(new Search(plugin, orderData, economy, messageBlocker)); diff --git a/companies-core/src/main/java/de/eldoria/companies/commands/company/order/Deliver.java b/companies-core/src/main/java/de/eldoria/companies/commands/company/order/Deliver.java index 727c744..318633c 100755 --- a/companies-core/src/main/java/de/eldoria/companies/commands/company/order/Deliver.java +++ b/companies-core/src/main/java/de/eldoria/companies/commands/company/order/Deliver.java @@ -5,6 +5,7 @@ */ package de.eldoria.companies.commands.company.order; +import de.eldoria.companies.configuration.Configuration; import de.eldoria.companies.data.repository.ACompanyData; import de.eldoria.companies.data.repository.AOrderData; import de.eldoria.companies.data.wrapper.company.CompanyProfile; @@ -35,8 +36,9 @@ public class Deliver extends AdvancedCommand implements IPlayerTabExecutor { private final AOrderData orderData; private final Info info; private final MessageBlocker messageBlocker; + private final Configuration configuration; - public Deliver(Plugin plugin, ACompanyData companyData, AOrderData orderData, Economy economy, Info info, MessageBlocker messageBlocker) { + public Deliver(Plugin plugin, ACompanyData companyData, AOrderData orderData, Economy economy, Info info, MessageBlocker messageBlocker, Configuration configuration) { super(plugin, CommandMeta.builder("deliver") .addArgument("words.id", true) .addArgument("words.material", true) @@ -47,6 +49,7 @@ public Deliver(Plugin plugin, ACompanyData companyData, AOrderData orderData, Ec this.companyData = companyData; this.info = info; this.messageBlocker = messageBlocker; + this.configuration = configuration; } @Override @@ -148,14 +151,15 @@ private void orderDone(FullOrder order, CompanyProfile profile) { .callEvent(new OrderDoneEvent(order, profile))); CompletableBukkitFuture.runAsync(() -> { for (var entry : payments.entrySet()) { + double taxed = configuration.companySettings().taxes().take(entry.getValue()); var player = plugin().getServer() .getOfflinePlayer(entry.getKey()); - var event = new OrderPaymentEvent(order, player, entry.getValue()); + var event = new OrderPaymentEvent(order, player, taxed); plugin().getServer() .getPluginManager() .callEvent(event); if (event.isCancelled()) continue; - economy.depositPlayer(player, entry.getValue()); + economy.depositPlayer(player, taxed); } }); } diff --git a/companies-core/src/main/java/de/eldoria/companies/commands/order/Create.java b/companies-core/src/main/java/de/eldoria/companies/commands/order/Create.java index bc74b82..a24ffa3 100755 --- a/companies-core/src/main/java/de/eldoria/companies/commands/order/Create.java +++ b/companies-core/src/main/java/de/eldoria/companies/commands/order/Create.java @@ -170,7 +170,7 @@ private List completeAmount(@NotNull Arguments args, OrderBuilder builde if (args.sizeIs(3)) { var material = EnumUtil.parse(args.asString(1), Material.class); var max = configuration.orderSetting() - .maxItems() - builder.amount(material.orElse(null)); + .maxItems() - builder.amount(material.orElse(null)); return Completion.completeInt(args.asString(2), 1, max); } @@ -189,7 +189,7 @@ private List completeAdd(@NotNull Arguments args, OrderBuilder builder) if (args.asString(2) .isEmpty()) return Collections.singletonList(localizer().localize("words.amount")); var max = configuration.orderSetting() - .maxItems() - builder.amount(); + .maxItems() - builder.amount(); return Completion.completeInt(args.asString(2), 1, max); } var amount = Parser.parseInt(args.asString(2)); @@ -309,7 +309,7 @@ private void amount(Player player, Arguments args) throws CommandException { var builder = getPlayerBuilder(player); builder.changeContentAmount(material, Math.min(configuration.orderSetting() - .maxItems() - builder.amount(material), amount)); + .maxItems() - builder.amount(material), amount)); } private void done(Player player) throws CommandException { @@ -322,6 +322,8 @@ private void done(Player player) throws CommandException { .isEmpty(), "order.create.error.empty", TagResolver.empty()); var price = order.price(); + var fee = configuration.orderSetting().fees().orderFee(price); + var fullPrice = price + fee; orderData.retrievePlayerOrderCount(player) .whenComplete(count -> { @@ -331,10 +333,10 @@ private void done(Player player) throws CommandException { return; } CompletableBukkitFuture.supplyAsync(() -> { - if (!economy.has(player, price)) { + if (!economy.has(player, fullPrice)) { return false; } - economy.withdrawPlayer(player, price); + economy.withdrawPlayer(player, fullPrice); return true; }) .whenComplete(result -> { @@ -352,7 +354,7 @@ private void done(Player player) throws CommandException { .isBlank() ? fallbackCurr : economy.currencyNamePlural(); messageSender().sendError(player, "error.insufficientCurrency", Replacement.create("currency", curr), - Replacement.create("amount", economy.format(price))); + Replacement.create("amount", economy.format(fullPrice))); } }); }); diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/CompanySettings.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/CompanySettings.java index 3f5b00b..5c4d74d 100755 --- a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/CompanySettings.java +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/CompanySettings.java @@ -6,6 +6,7 @@ package de.eldoria.companies.configuration.elements; import de.eldoria.companies.configuration.elements.companylevel.CompanyLevel; +import de.eldoria.companies.configuration.elements.companysettings.CompanyTaxes; import de.eldoria.companies.data.wrapper.company.CompanyStats; import java.util.ArrayList; @@ -20,6 +21,7 @@ public class CompanySettings { private double renamePrice = 10000.0; private int expiredOrderPenalty = 3; private int abortedOrderPenalty = 1; + private CompanyTaxes taxes = new CompanyTaxes(); public CompanySettings() { updateLevel(); @@ -32,6 +34,10 @@ private void updateLevel() { } } + public CompanyTaxes taxes() { + return taxes; + } + public int deliveryHours() { return deliveryHours; } diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/OrderSettings.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/OrderSettings.java index 08fc9e3..82ca69a 100755 --- a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/OrderSettings.java +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/OrderSettings.java @@ -5,11 +5,14 @@ */ package de.eldoria.companies.configuration.elements; +import de.eldoria.companies.configuration.elements.ordersettings.OrderFees; + @SuppressWarnings({"FieldMayBeFinal", "FieldCanBeLocal", "RedundantNoArgConstructor"}) public class OrderSettings { private int maxItems = 64 * 8; private int maxMaterials = 5; private int maxUnclaimedHours = 24 * 7; + private OrderFees fees = new OrderFees(); public OrderSettings() { } @@ -37,4 +40,8 @@ public int maxUnclaimedHours() { public void maxUnclaimedHours(int maxUnclaimedHours) { this.maxUnclaimedHours = maxUnclaimedHours; } + + public OrderFees fees() { + return fees; + } } diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java new file mode 100644 index 0000000..3d8a6cd --- /dev/null +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java @@ -0,0 +1,23 @@ +package de.eldoria.companies.configuration.elements.companysettings; + +public class CompanyTaxes { + private double percent = 0.1; + + /** + * Returns the amount after subtracting the taxes + * + * @param amount amount + * @return amount after taxes + */ + public double take(double amount) { + return (1 - percent) * amount; + } + + public double percent() { + return percent; + } + + public void percent(double percent) { + this.percent = percent; + } +} diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java new file mode 100644 index 0000000..d230b50 --- /dev/null +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java @@ -0,0 +1,20 @@ +package de.eldoria.companies.configuration.elements.ordersettings; + +public enum FeeMode { + /** + * No fees applied + */ + NONE, + /** + * The max value of percent or fixed + */ + MAX, + /** + * A percentage of the sum + */ + PERCENT, + /** + * A fixed amount + */ + FIXED; +} diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java new file mode 100644 index 0000000..02392bd --- /dev/null +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java @@ -0,0 +1,69 @@ +package de.eldoria.companies.configuration.elements.ordersettings; + +import de.eldoria.companies.orders.OrderBuilder; + +@SuppressWarnings({"FieldMayBeFinal", "FieldCanBeLocal", "RedundantNoArgConstructor"}) +public class OrderFees { + private FeeMode mode = FeeMode.NONE; + private double fixed = 200.0; + private double percent = .1; + + public OrderFees() { + } + + /** + * Get the fees for the items contained in the order builder + * + * @param builder builder of the order + * @return a double which represents the fee to publish this order. + */ + public double orderFee(OrderBuilder builder) { + double price = builder.price(); + return switch (mode) { + case NONE -> .0; + case MAX -> Math.max(fixed, price * percent); + case PERCENT -> price * percent; + case FIXED -> fixed; + }; + } + /** + * Get the fees for the items contained in the order builder + * + * @param price price of the order + * @return a double which represents the fee to publish this order. + */ + public double orderFee(double price) { + return switch (mode) { + case NONE -> .0; + case MAX -> Math.max(fixed, price * percent); + case PERCENT -> price * percent; + case FIXED -> fixed; + }; + } + + + + public FeeMode mode() { + return mode; + } + + public double fixed() { + return fixed; + } + + public double percent() { + return percent; + } + + public void mode(FeeMode mode) { + this.mode = mode; + } + + public void fixed(double fixed) { + this.fixed = fixed; + } + + public void percent(double percent) { + this.percent = percent; + } +} diff --git a/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java b/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java index ab6e5c4..047141a 100755 --- a/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java +++ b/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java @@ -30,8 +30,8 @@ public OrderBuilder(UUID owner, String name) { public void addContent(ItemStack stack, int amount, double price) { var first = elements.stream() - .filter(orderContent -> orderContent.material() == stack.getType()) - .findFirst(); + .filter(orderContent -> orderContent.material() == stack.getType()) + .findFirst(); first.ifPresentOrElse(o -> { o.amount(o.amount() + amount); o.price(o.price() + price); @@ -52,27 +52,27 @@ public void name(String name) { public int amount(@Nullable Material material) { return elements.stream() - .filter(m -> m.material() != material) - .mapToInt(OrderContent::amount) - .sum(); + .filter(m -> m.material() != material) + .mapToInt(OrderContent::amount) + .sum(); } public boolean hasMaterial(Material material) { return elements.stream() - .anyMatch(e -> e.stack() + .anyMatch(e -> e.stack() .getType() == material); } public String asComponent(OrderSettings setting, Economy economy, AOrderData orderData) { var cmd = "/order create"; var composer = MessageComposer.create() - .text("%s [", name()) - .localeCode("words.change") - .text("]") - .newLine() - .text("") - .localeCode("words.items") - .text(": "); + .text("%s [", name()) + .localeCode("words.change") + .text("]") + .newLine() + .text("") + .localeCode("words.items") + .text(": "); if (setting.maxItems() != amount() && elements.size() != setting.maxMaterials()) { composer.space() @@ -106,8 +106,18 @@ public String asComponent(OrderSettings setting, Economy economy, AOrderData ord .newLine() .text("") .localeCode("words.price") - .text(": %s", economy.format(price())) - .newLine() + .text(": %s", economy.format(price())); + + double fee = setting.fees().orderFee(this); + + if (fee > 0) { + composer.newLine() + .text("") + .localeCode("words.fee") + .text(": %s", economy.format(fee)); + } + + composer.newLine() .text("[", cmd) .localeCode("words.done") .text("]") @@ -124,8 +134,8 @@ public String name() { public int amount() { return elements.stream() - .mapToInt(OrderContent::amount) - .sum(); + .mapToInt(OrderContent::amount) + .sum(); } public int materialsAmount() { @@ -134,8 +144,8 @@ public int materialsAmount() { public double price() { return elements.stream() - .mapToDouble(OrderContent::price) - .sum(); + .mapToDouble(OrderContent::price) + .sum(); } public void removeContent(Material parse) { @@ -144,9 +154,9 @@ public void removeContent(Material parse) { public void changeContentAmount(Material material, int amount) { elements().stream() - .filter(mat -> mat.material() == material) - .findAny() - .ifPresent(mat -> mat.amount(amount)); + .filter(mat -> mat.material() == material) + .findAny() + .ifPresent(mat -> mat.amount(amount)); } public List elements() { @@ -155,8 +165,8 @@ public List elements() { public void changeContentPrice(Material material, double price) { elements().stream() - .filter(mat -> mat.material() == material) - .findAny() - .ifPresent(mat -> mat.price(price)); + .filter(mat -> mat.material() == material) + .findAny() + .ifPresent(mat -> mat.price(price)); } } diff --git a/companies-core/src/main/resources/messages_de_DE.properties b/companies-core/src/main/resources/messages_de_DE.properties index c733ab7..add84aa 100755 --- a/companies-core/src/main/resources/messages_de_DE.properties +++ b/companies-core/src/main/resources/messages_de_DE.properties @@ -150,6 +150,8 @@ words.deny=Ablehnen words.descending=Absteigend words.done=Fertig words.exact=Exakt +words.fee=Gebühr +words.tax=Steuern words.field=Feld words.founded=Gegründet words.id=Id @@ -183,7 +185,7 @@ words.size=Größe words.sorting=Sortierung words.source=Quelle words.status=Status -words.target=Tiel +words.target=Ziel words.today=Heute words.value=Wert words.yesterday=Gestern diff --git a/companies-core/src/main/resources/messages_en_US.properties b/companies-core/src/main/resources/messages_en_US.properties index bb90e7b..3645b1e 100755 --- a/companies-core/src/main/resources/messages_en_US.properties +++ b/companies-core/src/main/resources/messages_en_US.properties @@ -187,3 +187,5 @@ words.target=Target words.today=Today words.value=Value words.yesterday=Yesterday +words.fee=Fee +words.tax=Tax From 1f338be72a42351ba95997451400da35ab93b468 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:44:56 +0200 Subject: [PATCH 3/8] Reorder properties --- companies-core/src/main/resources/messages.properties | 2 ++ companies-core/src/main/resources/messages_de_DE.properties | 2 +- companies-core/src/main/resources/messages_en_US.properties | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/companies-core/src/main/resources/messages.properties b/companies-core/src/main/resources/messages.properties index e8743e7..a6292fd 100755 --- a/companies-core/src/main/resources/messages.properties +++ b/companies-core/src/main/resources/messages.properties @@ -187,3 +187,5 @@ words.target= words.today= words.value= words.yesterday= +words.fee= +words.tax= diff --git a/companies-core/src/main/resources/messages_de_DE.properties b/companies-core/src/main/resources/messages_de_DE.properties index add84aa..1ceb2a4 100755 --- a/companies-core/src/main/resources/messages_de_DE.properties +++ b/companies-core/src/main/resources/messages_de_DE.properties @@ -151,7 +151,6 @@ words.descending=Absteigend words.done=Fertig words.exact=Exakt words.fee=Gebühr -words.tax=Steuern words.field=Feld words.founded=Gegründet words.id=Id @@ -186,6 +185,7 @@ words.sorting=Sortierung words.source=Quelle words.status=Status words.target=Ziel +words.tax=Steuern words.today=Heute words.value=Wert words.yesterday=Gestern diff --git a/companies-core/src/main/resources/messages_en_US.properties b/companies-core/src/main/resources/messages_en_US.properties index 3645b1e..246f53d 100755 --- a/companies-core/src/main/resources/messages_en_US.properties +++ b/companies-core/src/main/resources/messages_en_US.properties @@ -150,6 +150,7 @@ words.deny=Deny words.descending=Descending words.done=Done words.exact=Exact +words.fee=Fee words.field=Field words.founded=Founded words.id=Id @@ -184,8 +185,7 @@ words.sorting=Sorting words.source=Source words.status=Status words.target=Target +words.tax=Tax words.today=Today words.value=Value words.yesterday=Yesterday -words.fee=Fee -words.tax=Tax From 824353704fadd1750667408d22b017f4da3653b5 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:45:21 +0200 Subject: [PATCH 4/8] Adjust default properties --- companies-core/src/main/resources/messages.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/companies-core/src/main/resources/messages.properties b/companies-core/src/main/resources/messages.properties index a6292fd..b1e2e01 100755 --- a/companies-core/src/main/resources/messages.properties +++ b/companies-core/src/main/resources/messages.properties @@ -150,6 +150,7 @@ words.deny= words.descending= words.done= words.exact= +words.fee= words.field= words.founded= words.id= @@ -184,8 +185,7 @@ words.sorting= words.source= words.status= words.target= +words.tax= words.today= words.value= words.yesterday= -words.fee= -words.tax= From 8960f78ff472f755cb41cbc183a431c8846741df Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:56:19 +0200 Subject: [PATCH 5/8] Add license header --- .../configuration/elements/companysettings/CompanyTaxes.java | 5 +++++ .../configuration/elements/ordersettings/FeeMode.java | 5 +++++ .../configuration/elements/ordersettings/OrderFees.java | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java index 3d8a6cd..5167c1b 100644 --- a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/companysettings/CompanyTaxes.java @@ -1,3 +1,8 @@ +/* + * SPDX-License-Identifier: AGPL-3.0-only + * + * Copyright (C EldoriaRPG Team and Contributor + */ package de.eldoria.companies.configuration.elements.companysettings; public class CompanyTaxes { diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java index d230b50..5941b9f 100644 --- a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/FeeMode.java @@ -1,3 +1,8 @@ +/* + * SPDX-License-Identifier: AGPL-3.0-only + * + * Copyright (C EldoriaRPG Team and Contributor + */ package de.eldoria.companies.configuration.elements.ordersettings; public enum FeeMode { diff --git a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java index 02392bd..a608b14 100644 --- a/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java +++ b/companies-core/src/main/java/de/eldoria/companies/configuration/elements/ordersettings/OrderFees.java @@ -1,3 +1,8 @@ +/* + * SPDX-License-Identifier: AGPL-3.0-only + * + * Copyright (C EldoriaRPG Team and Contributor + */ package de.eldoria.companies.configuration.elements.ordersettings; import de.eldoria.companies.orders.OrderBuilder; From 6caad9797d681ca4de0048dd5525e942f547c754 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Thu, 20 Jun 2024 15:29:11 +0200 Subject: [PATCH 6/8] Update to java 21 --- companies-spigot-latest/.gitignore | 3 ++- companies-spigot-latest/build.gradle.kts | 11 ++++++++--- shell.nix | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/companies-spigot-latest/.gitignore b/companies-spigot-latest/.gitignore index b63da45..51de756 100644 --- a/companies-spigot-latest/.gitignore +++ b/companies-spigot-latest/.gitignore @@ -39,4 +39,5 @@ bin/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store +run diff --git a/companies-spigot-latest/build.gradle.kts b/companies-spigot-latest/build.gradle.kts index 95f2da0..9affa2f 100644 --- a/companies-spigot-latest/build.gradle.kts +++ b/companies-spigot-latest/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.pluginyml.bukkit) alias(libs.plugins.shadow) + id("xyz.jpenilla.run-paper") version "2.3.0" } dependencies { @@ -66,6 +67,10 @@ tasks { build { dependsOn(shadowJar) } + + runServer { + minecraftVersion("1.20.6") + } } bukkit { @@ -98,9 +103,9 @@ bukkit { register("companies.*") { description = "gives access to all company commands" children = listOf( - "companies.order.*", - "companies.admin.*", - "companies.company.*" + "companies.order.*", + "companies.admin.*", + "companies.company.*" ) } diff --git a/shell.nix b/shell.nix index 05fb7fd..e6613cb 100644 --- a/shell.nix +++ b/shell.nix @@ -1,7 +1,7 @@ { pkgs ? import {}, ... }: let -jdk = pkgs.jdk17; +jdk = pkgs.jdk21; gradle= pkgs.gradle.override { java = jdk; }; in pkgs.mkShell From 2b9add47fc9345abb1d3f37e6253c7313ec42900 Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:02:33 +0200 Subject: [PATCH 7/8] Bump utilities to 2.0.8 --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 844d502..65364ea 100755 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,7 +33,7 @@ dependencyResolutionManagement { // utilities library("messageblocker", "de.eldoria:messageblocker:1.1.2") - version("eldoutil", "2.0.6") + version("eldoutil", "2.0.8") library("jackson-configuration", "de.eldoria.util","jackson-configuration").versionRef("eldoutil") library("plugin", "de.eldoria.util","plugin").versionRef("eldoutil") library("threading", "de.eldoria.util","threading").versionRef("eldoutil") From a6d03bba8b649c6d849c509ccaae6aadacec81dc Mon Sep 17 00:00:00 2001 From: Lilly <46890129+RainbowDashLabs@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:05:12 +0200 Subject: [PATCH 8/8] Display order fee when mode is not NONE --- .../main/java/de/eldoria/companies/orders/OrderBuilder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java b/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java index 047141a..d4a1a2c 100755 --- a/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java +++ b/companies-core/src/main/java/de/eldoria/companies/orders/OrderBuilder.java @@ -6,6 +6,7 @@ package de.eldoria.companies.orders; import de.eldoria.companies.configuration.elements.OrderSettings; +import de.eldoria.companies.configuration.elements.ordersettings.FeeMode; import de.eldoria.companies.data.repository.AOrderData; import de.eldoria.companies.data.wrapper.order.FullOrder; import de.eldoria.companies.data.wrapper.order.OrderContent; @@ -110,7 +111,7 @@ public String asComponent(OrderSettings setting, Economy economy, AOrderData ord double fee = setting.fees().orderFee(this); - if (fee > 0) { + if (setting.fees().mode() != FeeMode.NONE) { composer.newLine() .text("") .localeCode("words.fee")