From 75b67f406ee9c917638bcf479bc0ed76cddaddbc Mon Sep 17 00:00:00 2001 From: Weaves Date: Sat, 23 Mar 2024 22:00:55 -0500 Subject: [PATCH 1/3] Fix another NPE with Shulker boxes --- src/main/java/org/gestern/gringotts/GringottsAccount.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gestern/gringotts/GringottsAccount.java b/src/main/java/org/gestern/gringotts/GringottsAccount.java index 2b2c9917..27bb68e0 100644 --- a/src/main/java/org/gestern/gringotts/GringottsAccount.java +++ b/src/main/java/org/gestern/gringotts/GringottsAccount.java @@ -347,7 +347,7 @@ public long addToShulkerBox(long remaining, Inventory inventory) { public long removeFromShulkerBox(long remaining, Inventory inventory) { for (ItemStack itemStack : inventory.getContents()) { - if (Tag.SHULKER_BOXES.isTagged(itemStack.getType()) && itemStack.getItemMeta() instanceof BlockStateMeta) { + if (itemStack != null && Tag.SHULKER_BOXES.isTagged(itemStack.getType()) && itemStack.getItemMeta() instanceof BlockStateMeta) { BlockStateMeta blockState = (BlockStateMeta) itemStack.getItemMeta(); if (blockState.getBlockState() instanceof ShulkerBox) { ShulkerBox shulkerBox = (ShulkerBox) blockState.getBlockState(); From a3fc233cc7fc529043745ccedef0deb4f993d569 Mon Sep 17 00:00:00 2001 From: Weaves Date: Sun, 24 Mar 2024 00:30:32 -0500 Subject: [PATCH 2/3] Use same pattern for vault sign validation as creation --- .../java/org/gestern/gringotts/AccountChest.java | 15 +++++++++++++-- .../gestern/gringotts/event/AccountListener.java | 7 ++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gestern/gringotts/AccountChest.java b/src/main/java/org/gestern/gringotts/AccountChest.java index 9099eee8..bc8034f2 100755 --- a/src/main/java/org/gestern/gringotts/AccountChest.java +++ b/src/main/java/org/gestern/gringotts/AccountChest.java @@ -1,6 +1,7 @@ package org.gestern.gringotts; import io.papermc.lib.PaperLib; +import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.BlockState; @@ -10,13 +11,20 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * Represents a storage unit for an account. * * @author jast */ public class AccountChest { + + private final Pattern VAULT_PATTERN = Pattern.compile(Configuration.CONF.vaultPattern, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); + public final String id; + /** * Sign marking the chest as an account chest. */ @@ -186,9 +194,12 @@ public boolean notValid() { } String[] lines = sign.getLines(); - String line0 = lines[0]; + String line0 = ChatColor.stripColor(lines[0]).trim(); + + + Matcher match = VAULT_PATTERN.matcher(line0); - if (!line0.matches(Configuration.CONF.vaultPattern)) { + if (!match.matches()) { return true; } diff --git a/src/main/java/org/gestern/gringotts/event/AccountListener.java b/src/main/java/org/gestern/gringotts/event/AccountListener.java index 358bd262..d0f80697 100755 --- a/src/main/java/org/gestern/gringotts/event/AccountListener.java +++ b/src/main/java/org/gestern/gringotts/event/AccountListener.java @@ -1,6 +1,7 @@ package org.gestern.gringotts.event; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -19,7 +20,7 @@ */ public class AccountListener implements Listener { - private final Pattern vaultPattern = Pattern.compile(Configuration.CONF.vaultPattern, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); + private final Pattern VAULT_PATTERN = Pattern.compile(Configuration.CONF.vaultPattern, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); /** * Create an account chest by adding a sign marker over it. @@ -28,13 +29,13 @@ public class AccountListener implements Listener { */ @EventHandler public void onSignChange(SignChangeEvent event) { - String line0String = event.getLine(0); + String line0String = ChatColor.stripColor(event.getLine(0)).trim(); if (line0String == null) { return; } - Matcher match = vaultPattern.matcher(line0String); + Matcher match = VAULT_PATTERN.matcher(line0String); // consider only signs with proper formatting if (!match.matches()) { From 6c32cdf7968c5ff27b7bcb69ea2d270cdb5a0fb5 Mon Sep 17 00:00:00 2001 From: Weaves Date: Sun, 24 Mar 2024 00:45:05 -0500 Subject: [PATCH 3/3] Bump build version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b3763e8f..afd9fb26 100755 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 minecraftwars gringotts - 2.12.6-SNAPSHOT + 2.12.7-SNAPSHOT false