From 9a4c32ff73f3ea99f73e0c7efc01fb0a1ceb8c9c Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Tue, 8 Mar 2022 06:34:55 -0500 Subject: [PATCH] Fix preemptive setting of owner metadata on to trade signs --- .../earth2me/essentials/signs/EssentialsSign.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/main/java/com/earth2me/essentials/signs/EssentialsSign.java index 8df9f5524a4..cb0aaaf96b2 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/main/java/com/earth2me/essentials/signs/EssentialsSign.java @@ -31,6 +31,7 @@ import static com.earth2me.essentials.I18n.tl; public class EssentialsSign { + private static final String SIGN_OWNER_KEY = "sign-owner"; protected static final BigDecimal MINTRANSACTION = new BigDecimal("0.01"); private static final Set EMPTY_SET = new HashSet<>(); protected transient final String signName; @@ -166,19 +167,20 @@ public void setOwnerData(final IEssentials ess, final User user, final ISign sig return; } final Sign sign = (Sign) signProvider.getBlock().getState(); - ess.getSignDataProvider().setSignData(sign, "owner", user.getUUID().toString()); + ess.getSignDataProvider().setSignData(sign, SIGN_OWNER_KEY, user.getUUID().toString()); } public boolean isOwner(final IEssentials ess, final User user, final ISign signProvider, final int nameIndex, final String namePrefix) { final Sign sign = (Sign) signProvider.getBlock().getState(); - if (ess.getSignDataProvider() == null || ess.getSignDataProvider().getSignData(sign, "owner") == null) { - if (ess.getSignDataProvider() != null) { - ess.getSignDataProvider().setSignData(sign, "owner", user.getUUID().toString()); + if (ess.getSignDataProvider() == null || ess.getSignDataProvider().getSignData(sign, SIGN_OWNER_KEY) == null) { + final boolean isLegacyOwner = FormatUtil.stripFormat(signProvider.getLine(nameIndex)).equalsIgnoreCase(getUsername(user)); + if (ess.getSignDataProvider() != null && isLegacyOwner) { + ess.getSignDataProvider().setSignData(sign, SIGN_OWNER_KEY, user.getUUID().toString()); } - return FormatUtil.stripFormat(signProvider.getLine(nameIndex)).equalsIgnoreCase(getUsername(user)); + return isLegacyOwner; } - if (user.getUUID().toString().equals(ess.getSignDataProvider().getSignData(sign, "owner"))) { + if (user.getUUID().toString().equals(ess.getSignDataProvider().getSignData(sign, SIGN_OWNER_KEY))) { signProvider.setLine(nameIndex, namePrefix + getUsername(user)); return true; }