From e42f24ce3367b636e2c011050bc383a59ebcfb81 Mon Sep 17 00:00:00 2001 From: Kamilkime Date: Sat, 7 May 2022 22:55:57 +0200 Subject: [PATCH 1/5] Improve online player requirement --- .../pl/vishop/vishopplugin/PendingTask.java | 17 ++++++++++------- .../pl/vishop/vishopplugin/order/Order.java | 8 +++++++- .../vishopplugin/request/PendingRequester.java | 11 ++++------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/main/java/pl/vishop/vishopplugin/PendingTask.java b/src/main/java/pl/vishop/vishopplugin/PendingTask.java index 4301d0d..33962f3 100644 --- a/src/main/java/pl/vishop/vishopplugin/PendingTask.java +++ b/src/main/java/pl/vishop/vishopplugin/PendingTask.java @@ -44,14 +44,17 @@ public void run() { return; } - Bukkit.getScheduler().runTask(this.plugin, () -> { - pendingOrders.forEach(order -> { - order.getCommands().forEach(command -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command)); - }); - }); + pendingOrders.stream() + .filter(order -> !order.requiresOnline() || Bukkit.getPlayerExact(order.getPlayer()) != null) + .forEach(order -> { + this.executeCommands(order); + ConfirmRequester.post(this.httpClient, this.config, order); + }); + } - pendingOrders.forEach(order -> { - ConfirmRequester.post(this.httpClient, this.config, order); + private void executeCommands(final Order order) { + Bukkit.getScheduler().runTask(this.plugin, () -> { + order.getCommands().forEach(command -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command)); }); } diff --git a/src/main/java/pl/vishop/vishopplugin/order/Order.java b/src/main/java/pl/vishop/vishopplugin/order/Order.java index 38665d8..454f451 100644 --- a/src/main/java/pl/vishop/vishopplugin/order/Order.java +++ b/src/main/java/pl/vishop/vishopplugin/order/Order.java @@ -9,11 +9,13 @@ public class Order { private final UUID orderId; private final String player; + private final boolean requireOnline; private final List commands; - public Order(final UUID orderId, final String player, final List commands) { + public Order(final UUID orderId, final String player, final boolean requireOnline, final List commands) { this.orderId = orderId; this.player = player; + this.requireOnline = requireOnline; this.commands = commands; } @@ -25,6 +27,10 @@ public String getPlayer() { return this.player; } + public boolean requiresOnline() { + return this.requireOnline; + } + public List getCommands() { return this.commands.stream().map(command -> StringUtils.replace(command, "{NICK}", this.player)).collect(Collectors.toList()); } diff --git a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java index bb21d12..7540476 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java @@ -59,22 +59,19 @@ public static Set get(final OkHttpClient httpClient, final Config config) final JSONArray orders = new JSONArray(responseBody.string()); for (int i = 0; i < orders.length(); i++) { final JSONObject order = orders.getJSONObject(i); + final JSONObject product = order.getJSONObject("product"); final UUID orderId = UUID.fromString(order.getString("id")); final String player = order.getString("player"); - final boolean requirePlayerOnline = order.getJSONObject("product").getBoolean("require_player_online"); - if (Bukkit.getServer().getPlayer(player) == null && requirePlayerOnline) { - Bukkit.getLogger().warning("Nieudane wykonanie zamówienia "+ orderId +". Gracz nie jest na serwerze."); - continue; - } + final boolean requireOnline = product.getBoolean("require_player_online"); final List commands = new ArrayList<>(); - final JSONArray commandsArray = order.getJSONObject("product").getJSONArray("commands"); + final JSONArray commandsArray = product.getJSONArray("commands"); for (int j = 0; j < commandsArray.length(); j++) { commands.add(commandsArray.getString(j)); } - pendingOrders.add(new Order(orderId, player, commands)); + pendingOrders.add(new Order(orderId, player, requireOnline, commands)); } } catch (final IOException | JSONException exception) { Bukkit.getLogger().warning("Nieudane pobranie oczekujących zamówień z ViShop:"); From 510a746e02e593566410f7dfd59bdd0b6aa857be Mon Sep 17 00:00:00 2001 From: Kamilkime Date: Sat, 7 May 2022 23:03:23 +0200 Subject: [PATCH 2/5] Correct README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a13ed93..927d737 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # VIshop-plugin -Plugin for Minecraft itemshop - VIshop.pl +Plugin łączący serwer Minecraft z itemshopem stworzonym na [VIshop.pl](https://vishop.pl/)
+Plugin przeznaczony dla silników pochodnych Bukkita (Spigota, Papera, itp.) -Author of plugin: Author of plugin: [Kamilkime](https://github.com/Kamilkime) +Autor pluginu: [Kamilkime](https://github.com/Kamilkime) \ No newline at end of file From 7860efffdeed245e11118f428f004afb4e1028db Mon Sep 17 00:00:00 2001 From: Kamilkime Date: Sat, 7 May 2022 23:03:59 +0200 Subject: [PATCH 3/5] Correct shop request links --- .../java/pl/vishop/vishopplugin/request/ConfirmRequester.java | 3 +-- .../java/pl/vishop/vishopplugin/request/PendingRequester.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java index ec97d6d..60bfeb7 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java @@ -53,8 +53,7 @@ public static void post(final OkHttpClient httpClient, final Config config, fina } private static String getUrl(final Config config, final Order order) { - return "https://dev123.vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/" - + order.getOrderId().toString() + "/"; + return "https://vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/" + order.getOrderId().toString() + "/"; } } diff --git a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java index 7540476..fa62439 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java @@ -82,7 +82,7 @@ public static Set get(final OkHttpClient httpClient, final Config config) } private static String getUrl(final Config config) { - return "https://dev123.vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/?status=executing"; + return "https://vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/?status=executing"; } } From 4896ef0c1ad29d7b6cd5cb13fccd937d73235548 Mon Sep 17 00:00:00 2001 From: Kamilkime Date: Sun, 8 May 2022 00:15:10 +0200 Subject: [PATCH 4/5] Only execute commands after order execution is confirmed --- src/main/java/pl/vishop/vishopplugin/PendingTask.java | 6 ++---- .../pl/vishop/vishopplugin/request/ConfirmRequester.java | 6 +++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/pl/vishop/vishopplugin/PendingTask.java b/src/main/java/pl/vishop/vishopplugin/PendingTask.java index 33962f3..7adc006 100644 --- a/src/main/java/pl/vishop/vishopplugin/PendingTask.java +++ b/src/main/java/pl/vishop/vishopplugin/PendingTask.java @@ -46,10 +46,8 @@ public void run() { pendingOrders.stream() .filter(order -> !order.requiresOnline() || Bukkit.getPlayerExact(order.getPlayer()) != null) - .forEach(order -> { - this.executeCommands(order); - ConfirmRequester.post(this.httpClient, this.config, order); - }); + .filter(order -> ConfirmRequester.post(this.httpClient, this.config, order)) + .forEach(this::executeCommands); } private void executeCommands(final Order order) { diff --git a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java index 60bfeb7..b0f5e3c 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java @@ -34,7 +34,7 @@ public final class ConfirmRequester { private ConfirmRequester() {} - public static void post(final OkHttpClient httpClient, final Config config, final Order order) { + public static boolean post(final OkHttpClient httpClient, final Config config, final Order order) { final Request request = new Builder() .url(getUrl(config, order)) .header("User-Agent", "ViShopPlugin/1.0") @@ -46,10 +46,14 @@ public static void post(final OkHttpClient httpClient, final Config config, fina if (!response.isSuccessful()) { throw new IOException("Otrzymany kod odpowiedzi " + response.code()); } + + return true; } catch (final IOException | JSONException exception) { Bukkit.getLogger().warning("Nieudane potwierdzenie zamówienia " + order.getOrderId().toString() + " w ViShop:"); Bukkit.getLogger().warning(exception.getMessage()); } + + return false; } private static String getUrl(final Config config, final Order order) { From 7e4e1ae52f001469455ca7f3a8e0761110eff4bd Mon Sep 17 00:00:00 2001 From: Kamilkime Date: Sun, 8 May 2022 13:13:53 +0200 Subject: [PATCH 5/5] Correct backend request address --- src/main/java/pl/vishop/vishopplugin/ViShopPlugin.java | 1 + .../java/pl/vishop/vishopplugin/request/ConfirmRequester.java | 3 ++- .../java/pl/vishop/vishopplugin/request/PendingRequester.java | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/pl/vishop/vishopplugin/ViShopPlugin.java b/src/main/java/pl/vishop/vishopplugin/ViShopPlugin.java index e3b017b..378e113 100644 --- a/src/main/java/pl/vishop/vishopplugin/ViShopPlugin.java +++ b/src/main/java/pl/vishop/vishopplugin/ViShopPlugin.java @@ -23,6 +23,7 @@ public final class ViShopPlugin extends JavaPlugin { + public static final String BACKEND_ADDRESS = "https://dev123.vishop.pl/panel/shops/%1$s/servers/%2$s/payments/%3$s"; private final OkHttpClient httpClient = new OkHttpClient.Builder().build(); @Override diff --git a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java index b0f5e3c..3d0e5a1 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/ConfirmRequester.java @@ -25,6 +25,7 @@ import okhttp3.Response; import org.bukkit.Bukkit; import org.json.JSONException; +import pl.vishop.vishopplugin.ViShopPlugin; import pl.vishop.vishopplugin.config.Config; import pl.vishop.vishopplugin.order.Order; @@ -57,7 +58,7 @@ public static boolean post(final OkHttpClient httpClient, final Config config, f } private static String getUrl(final Config config, final Order order) { - return "https://vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/" + order.getOrderId().toString() + "/"; + return String.format(ViShopPlugin.BACKEND_ADDRESS, config.shopId, config.serverId, order.getOrderId().toString() + "/"); } } diff --git a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java index fa62439..bed77d4 100644 --- a/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java +++ b/src/main/java/pl/vishop/vishopplugin/request/PendingRequester.java @@ -31,6 +31,7 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import pl.vishop.vishopplugin.ViShopPlugin; import pl.vishop.vishopplugin.config.Config; import pl.vishop.vishopplugin.order.Order; @@ -82,7 +83,7 @@ public static Set get(final OkHttpClient httpClient, final Config config) } private static String getUrl(final Config config) { - return "https://vishop.pl/panel/shops/" + config.shopId + "/servers/" + config.serverId + "/payments/?status=executing"; + return String.format(ViShopPlugin.BACKEND_ADDRESS, config.shopId, config.serverId, "?status=executing"); } }