From 224bc1bae74b5544f9cf9f40c7a05c317d968fc4 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sat, 9 Dec 2023 02:39:46 +0100 Subject: [PATCH] only log sign changes whan anything was changed --- .../diddiz/LogBlock/listeners/SignChangeLogging.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/listeners/SignChangeLogging.java b/src/main/java/de/diddiz/LogBlock/listeners/SignChangeLogging.java index d74e753..466883a 100644 --- a/src/main/java/de/diddiz/LogBlock/listeners/SignChangeLogging.java +++ b/src/main/java/de/diddiz/LogBlock/listeners/SignChangeLogging.java @@ -3,6 +3,7 @@ package de.diddiz.LogBlock.listeners; import de.diddiz.LogBlock.Actor; import de.diddiz.LogBlock.LogBlock; import de.diddiz.LogBlock.Logging; +import java.util.Objects; import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.block.sign.SignSide; @@ -23,10 +24,16 @@ public class SignChangeLogging extends LoggingListener { BlockState newState = event.getBlock().getState(); if (newState instanceof Sign sign) { SignSide signSide = sign.getSide(event.getSide()); + boolean changed = false; for (int i = 0; i < 4; i++) { - signSide.setLine(i, event.getLine(i)); + if (!Objects.equals(signSide.getLine(i), event.getLine(i))) { + signSide.setLine(i, event.getLine(i)); + changed = true; + } + } + if (changed) { + consumer.queueBlockReplace(Actor.actorFromEntity(event.getPlayer()), event.getBlock().getState(), newState); } - consumer.queueBlockReplace(Actor.actorFromEntity(event.getPlayer()), event.getBlock().getState(), newState); } } }