Skip to content

Commit 997fb18

Browse files
authored
Fix preemptive setting of owner metadata on to trade signs (#4835)
Fixes #4836.
1 parent 3984bdd commit 997fb18

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

Essentials/src/main/java/com/earth2me/essentials/signs/EssentialsSign.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import static com.earth2me.essentials.I18n.tl;
3232

3333
public class EssentialsSign {
34+
private static final String SIGN_OWNER_KEY = "sign-owner";
3435
protected static final BigDecimal MINTRANSACTION = new BigDecimal("0.01");
3536
private static final Set<Material> EMPTY_SET = new HashSet<>();
3637
protected transient final String signName;
@@ -166,19 +167,20 @@ public void setOwnerData(final IEssentials ess, final User user, final ISign sig
166167
return;
167168
}
168169
final Sign sign = (Sign) signProvider.getBlock().getState();
169-
ess.getSignDataProvider().setSignData(sign, "owner", user.getUUID().toString());
170+
ess.getSignDataProvider().setSignData(sign, SIGN_OWNER_KEY, user.getUUID().toString());
170171
}
171172

172173
public boolean isOwner(final IEssentials ess, final User user, final ISign signProvider, final int nameIndex, final String namePrefix) {
173174
final Sign sign = (Sign) signProvider.getBlock().getState();
174-
if (ess.getSignDataProvider() == null || ess.getSignDataProvider().getSignData(sign, "owner") == null) {
175-
if (ess.getSignDataProvider() != null) {
176-
ess.getSignDataProvider().setSignData(sign, "owner", user.getUUID().toString());
175+
if (ess.getSignDataProvider() == null || ess.getSignDataProvider().getSignData(sign, SIGN_OWNER_KEY) == null) {
176+
final boolean isLegacyOwner = FormatUtil.stripFormat(signProvider.getLine(nameIndex)).equalsIgnoreCase(getUsername(user));
177+
if (ess.getSignDataProvider() != null && isLegacyOwner) {
178+
ess.getSignDataProvider().setSignData(sign, SIGN_OWNER_KEY, user.getUUID().toString());
177179
}
178-
return FormatUtil.stripFormat(signProvider.getLine(nameIndex)).equalsIgnoreCase(getUsername(user));
180+
return isLegacyOwner;
179181
}
180182

181-
if (user.getUUID().toString().equals(ess.getSignDataProvider().getSignData(sign, "owner"))) {
183+
if (user.getUUID().toString().equals(ess.getSignDataProvider().getSignData(sign, SIGN_OWNER_KEY))) {
182184
signProvider.setLine(nameIndex, namePrefix + getUsername(user));
183185
return true;
184186
}

0 commit comments

Comments
 (0)