Skip to content

Commit 6bf52b2

Browse files
Band-aid patch for old version of Minecraft trimming signs unexpectedly
1 parent 75e154a commit 6bf52b2

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/me/crafter/mc/lockettepro/BlockPlayerListener.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,19 @@ public void onManualLock(SignChangeEvent event){
9999
if (event.getBlock().getType() != Material.WALL_SIGN) return;
100100
String topline = event.getLine(0);
101101
Player player = event.getPlayer();
102+
/* Issue #46 - Old version of Minecraft trim signs in unexpected way.
103+
* This is caused by Minecraft was doing: (unconfirmed but seemingly)
104+
* Place Sign -> Event Fire -> Trim Sign
105+
* The event.getLine() will be inaccurate if the line has white space to trim
106+
*
107+
* This will cause player without permission will be able to lock chests by
108+
* adding a white space after the [private] word.
109+
* Currently this is fixed by using trimmed line in checking permission. Trimmed
110+
* line should not be used anywhere else.
111+
*/
102112
if (!player.hasPermission("lockettepro.lock")){
103-
if (LocketteProAPI.isLockString(topline) || LocketteProAPI.isAdditionalString(topline)){
113+
String toplinetrimmed = topline.trim();
114+
if (LocketteProAPI.isLockString(toplinetrimmed) || LocketteProAPI.isAdditionalString(toplinetrimmed)){
104115
event.setLine(0, Config.getLang("sign-error"));
105116
Utils.sendMessages(player, Config.getLang("cannot-lock-manual"));
106117
return;

0 commit comments

Comments
 (0)