From 4ef121f6e1f56b3c74223a399d0a52f5bb3a72c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=B9=BB=E6=98=9F=E7=A9=BA?= <47418954+CraftDream@users.noreply.github.com> Date: Sat, 13 Jul 2024 21:35:40 +0800 Subject: [PATCH 1/8] Create main.yml --- .github/workflows/main.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..65b15b5 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,37 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java CI with Maven + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn package + + - name: Archive Artifacts + uses: actions/upload-artifact@v3 + with: + name: target + path: target From c40a06f0821761fd72b882d70bb8036237a1ea59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=B9=BB=E6=98=9F=E7=A9=BA?= <47418954+CraftDream@users.noreply.github.com> Date: Sat, 13 Jul 2024 21:40:09 +0800 Subject: [PATCH 2/8] Update ShopkeepersStandardization.java --- .../skstandardization/ShopkeepersStandardization.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index df18f18..72fd0b1 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -44,9 +44,11 @@ public void onDisable() { @EventHandler(ignoreCancelled = true) public void onShopkeeperOpening(ShopkeeperOpenUIEvent event) { + System.out.println("[DEBUG] TEST1"); if (!DefaultUITypes.TRADING().equals(event.getUIType())) { return; } + System.out.println("[DEBUG] TEST2"); Shopkeeper shopkeeper = event.getShopkeeper(); Player player = event.getPlayer(); @@ -63,9 +65,11 @@ public void onShopkeeperOpening(ShopkeeperOpenUIEvent event) { } @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onVillagerUI(PlayerInteractEntityEvent event){ + System.out.println("[DEBUG] TEST3"); if(!(event.getRightClicked() instanceof Villager villager)){ return; } + System.out.println("[DEBUG] TEST4"); Set shopItems = new LinkedHashSet<>(); // 等待检查列表 for (MerchantRecipe recipe : villager.getRecipes()) { shopItems.add(recipe.getResult()); @@ -78,7 +82,7 @@ public void onVillagerUI(PlayerInteractEntityEvent event){ } private void updateShopItems(Set adaptList, Player player, String name) { - + System.out.println("[DEBUG] TEST5"); boolean anyUpdate = false; int i = 0; for (ItemStack storageContent : player.getInventory().getStorageContents()) { From c7ba33d3ce057bf77a3a09b7843e7200c0918c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=B9=BB=E6=98=9F=E7=A9=BA?= <47418954+CraftDream@users.noreply.github.com> Date: Sat, 13 Jul 2024 21:49:18 +0800 Subject: [PATCH 3/8] Update ShopkeepersStandardization.java --- .../plugins/skstandardization/ShopkeepersStandardization.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index 72fd0b1..fe498cb 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -88,8 +88,11 @@ private void updateShopItems(Set adaptList, Player player, String nam for (ItemStack storageContent : player.getInventory().getStorageContents()) { if (storageContent == null) continue; for (ItemStack shopItem : adaptList) { + System.out.println("[DEBUG] TEST6"); if (isStandardSimilar(storageContent, shopItem)) { // 标准检查下相同的话 + System.out.println("[DEBUG] TEST7"); if (!storageContent.isSimilar(shopItem)) { // 但非标准检查并不相同 + System.out.println("[DEBUG] TEST8"); // 同步玩家背包中的物品的 NBT 数据和商店的保持同步 anyUpdate = true; storageContent.setItemMeta(shopItem.getItemMeta()); @@ -123,6 +126,7 @@ private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { stack2 = stack2.clone(); stack1.setAmount(1); stack2.setAmount(1); + System.out.println("[DEBUG] TEST9 COMPARE: " + standardItemStack(stack1).toString() + " and " + standardItemStack(stack2).toString()); return standardItemStack(stack1).isSimilar(standardItemStack(stack2)); } From 807ead7fe93d8e18408fd43931b6363e9f9ef6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=B9=BB=E6=98=9F=E7=A9=BA?= <47418954+CraftDream@users.noreply.github.com> Date: Sat, 13 Jul 2024 22:18:20 +0800 Subject: [PATCH 4/8] Update ShopkeepersStandardization.java --- .../plugins/skstandardization/ShopkeepersStandardization.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index fe498cb..bb860b2 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -126,7 +126,7 @@ private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { stack2 = stack2.clone(); stack1.setAmount(1); stack2.setAmount(1); - System.out.println("[DEBUG] TEST9 COMPARE: " + standardItemStack(stack1).toString() + " and " + standardItemStack(stack2).toString()); + System.out.println("[DEBUG] TEST9 COMPARE: " + standardItemStack(stack1).getItemMeta().toString() + " AND " + standardItemStack(stack2).getItemMeta().toString()); return standardItemStack(stack1).isSimilar(standardItemStack(stack2)); } From ea0539b77e096b9d0a2e448575865e4535b04293 Mon Sep 17 00:00:00 2001 From: CraftDream Date: Sat, 13 Jul 2024 23:05:18 +0800 Subject: [PATCH 5/8] 1 --- .../ShopkeepersStandardization.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index bb860b2..1c9b23b 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -122,12 +122,25 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command } private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { - stack1 = stack1.clone(); - stack2 = stack2.clone(); - stack1.setAmount(1); - stack2.setAmount(1); - System.out.println("[DEBUG] TEST9 COMPARE: " + standardItemStack(stack1).getItemMeta().toString() + " AND " + standardItemStack(stack2).getItemMeta().toString()); - return standardItemStack(stack1).isSimilar(standardItemStack(stack2)); + ItemMeta meta1 = stack1.getItemMeta(); + ItemMeta meta2 = stack2.getItemMeta(); + if (meta1.hasDisplayName() != meta2.hasDisplayName()) { + return false; + } + if (meta1.hasLore() != meta2.hasLore()) { + return false; + } + if (meta1.hasDisplayName() && meta2.hasDisplayName()) { + if (!meta1.getDisplayName().equals(meta2.getDisplayName())) { + return false; + } + } + if (meta1.getLore() != null && meta2.getLore() != null) { + if (!meta1.getLore().equals(meta2.getLore())) { + return false; + } + } + return true; } private ItemStack standardItemStack(ItemStack original) { From 475d306d4d36f637f8a2f86fc3413e67750c7bcc Mon Sep 17 00:00:00 2001 From: CraftDream Date: Sat, 13 Jul 2024 23:33:30 +0800 Subject: [PATCH 6/8] 1 --- .../plugins/skstandardization/ShopkeepersStandardization.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index 1c9b23b..47f363a 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -134,11 +134,13 @@ private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { if (!meta1.getDisplayName().equals(meta2.getDisplayName())) { return false; } + System.out.println("[DEBUG] TEST9 " + meta1.getDisplayName() + "AND" + meta2.getDisplayName()); } if (meta1.getLore() != null && meta2.getLore() != null) { if (!meta1.getLore().equals(meta2.getLore())) { return false; } + System.out.println("[DEBUG] TEST10 " + meta1.getLore() + "AND" + meta2.getLore()); } return true; } From d581bf2eaa911c88486e6bcef9d0933b05bcf017 Mon Sep 17 00:00:00 2001 From: CraftDream Date: Sat, 13 Jul 2024 23:41:25 +0800 Subject: [PATCH 7/8] a --- .../skstandardization/ShopkeepersStandardization.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index 47f363a..1d80588 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -134,13 +134,14 @@ private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { if (!meta1.getDisplayName().equals(meta2.getDisplayName())) { return false; } - System.out.println("[DEBUG] TEST9 " + meta1.getDisplayName() + "AND" + meta2.getDisplayName()); + System.out.println("[DEBUG] TEST9 " + meta1.getDisplayName() + " AND " + meta2.getDisplayName()); } if (meta1.getLore() != null && meta2.getLore() != null) { + System.out.println("[DEBUG] TEST10 " + meta1.getLore() + " AND " + meta2.getLore()); if (!meta1.getLore().equals(meta2.getLore())) { return false; } - System.out.println("[DEBUG] TEST10 " + meta1.getLore() + "AND" + meta2.getLore()); + System.out.println("[DEBUG] TEST11"); } return true; } From c13d34661dc60c390882b197158e920df3378e5a Mon Sep 17 00:00:00 2001 From: CraftDream Date: Sun, 14 Jul 2024 00:11:06 +0800 Subject: [PATCH 8/8] t --- .../ShopkeepersStandardization.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java index 1d80588..399db58 100644 --- a/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java +++ b/src/main/java/com/ghostchu/plugins/skstandardization/ShopkeepersStandardization.java @@ -7,6 +7,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -136,13 +137,20 @@ private boolean isStandardSimilar(ItemStack stack1, ItemStack stack2) { } System.out.println("[DEBUG] TEST9 " + meta1.getDisplayName() + " AND " + meta2.getDisplayName()); } - if (meta1.getLore() != null && meta2.getLore() != null) { - System.out.println("[DEBUG] TEST10 " + meta1.getLore() + " AND " + meta2.getLore()); - if (!meta1.getLore().equals(meta2.getLore())) { + List lore1 = meta1.getLore(); + List lore2 = meta2.getLore(); + if (lore1 != null && lore2 != null) { + lore1.replaceAll(ChatColor::stripColor); + lore2.replaceAll(ChatColor::stripColor); + System.out.println("[DEBUG] TEST10 " + lore1 + " AND " + lore2); + if (!lore1.equals(lore2)) { return false; } System.out.println("[DEBUG] TEST11"); } + if (!meta1.getItemFlags().equals(meta2.getItemFlags())) { + return false; + } return true; }