forked from LogBlock/LogBlock
only log sign changes whan anything was changed
This commit is contained in:
@ -3,6 +3,7 @@ package de.diddiz.LogBlock.listeners;
|
|||||||
import de.diddiz.LogBlock.Actor;
|
import de.diddiz.LogBlock.Actor;
|
||||||
import de.diddiz.LogBlock.LogBlock;
|
import de.diddiz.LogBlock.LogBlock;
|
||||||
import de.diddiz.LogBlock.Logging;
|
import de.diddiz.LogBlock.Logging;
|
||||||
|
import java.util.Objects;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.block.sign.SignSide;
|
import org.bukkit.block.sign.SignSide;
|
||||||
@ -23,10 +24,16 @@ public class SignChangeLogging extends LoggingListener {
|
|||||||
BlockState newState = event.getBlock().getState();
|
BlockState newState = event.getBlock().getState();
|
||||||
if (newState instanceof Sign sign) {
|
if (newState instanceof Sign sign) {
|
||||||
SignSide signSide = sign.getSide(event.getSide());
|
SignSide signSide = sign.getSide(event.getSide());
|
||||||
|
boolean changed = false;
|
||||||
for (int i = 0; i < 4; i++) {
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user