Added logging and rollback support for double sided signs

This commit is contained in:
Intelli 2023-07-12 15:17:14 -06:00
parent 7e97e12969
commit 4e43a42662
25 changed files with 658 additions and 107 deletions

View file

@ -2,7 +2,9 @@ package net.coreprotect.spigot;
import java.util.regex.Matcher;
import org.bukkit.block.Sign;
import org.bukkit.command.CommandSender;
import org.bukkit.event.block.SignChangeEvent;
import net.coreprotect.bukkit.BukkitAdapter;
import net.coreprotect.config.ConfigHandler;
@ -20,6 +22,7 @@ public class SpigotAdapter implements SpigotInterface {
public static final int SPIGOT_V1_17 = BukkitAdapter.BUKKIT_V1_17;
public static final int SPIGOT_V1_18 = BukkitAdapter.BUKKIT_V1_18;
public static final int SPIGOT_V1_19 = BukkitAdapter.BUKKIT_V1_19;
public static final int SPIGOT_V1_20 = BukkitAdapter.BUKKIT_V1_20;
public static void loadAdapter() {
int spigotVersion = ConfigHandler.SERVER_VERSION;
@ -40,9 +43,12 @@ public class SpigotAdapter implements SpigotInterface {
case SPIGOT_V1_17:
case SPIGOT_V1_18:
case SPIGOT_V1_19:
default:
SpigotAdapter.ADAPTER = new Spigot_v1_16();
break;
case SPIGOT_V1_20:
default:
SpigotAdapter.ADAPTER = new Spigot_v1_20();
break;
}
}
@ -81,4 +87,30 @@ public class SpigotAdapter implements SpigotInterface {
Chat.sendMessage(sender, message.toString());
}
@Override
public String getLine(Sign sign, int line) {
if (line < 4) {
return sign.getLine(line);
}
else {
return "";
}
}
@Override
public void setLine(Sign sign, int line, String string) {
if (string == null) {
string = "";
}
if (line < 4) {
sign.setLine(line, string);
}
}
@Override
public boolean isSignFront(SignChangeEvent event) {
return true;
}
}

View file

@ -1,6 +1,8 @@
package net.coreprotect.spigot;
import org.bukkit.block.Sign;
import org.bukkit.command.CommandSender;
import org.bukkit.event.block.SignChangeEvent;
public interface SpigotInterface {
@ -10,4 +12,10 @@ public interface SpigotInterface {
public void sendComponent(CommandSender sender, String string, String bypass);
public String getLine(Sign sign, int line);
public void setLine(Sign sign, int line, String string);
public boolean isSignFront(SignChangeEvent event);
}

View file

@ -0,0 +1,38 @@
package net.coreprotect.spigot;
import org.bukkit.block.Sign;
import org.bukkit.block.sign.Side;
import org.bukkit.event.block.SignChangeEvent;
public class Spigot_v1_20 extends Spigot_v1_16 implements SpigotInterface {
@Override
public String getLine(Sign sign, int line) {
if (line < 4) {
return sign.getSide(Side.FRONT).getLine(line);
}
else {
return sign.getSide(Side.BACK).getLine(line - 4);
}
}
@Override
public void setLine(Sign sign, int line, String string) {
if (string == null) {
string = "";
}
if (line < 4) {
sign.getSide(Side.FRONT).setLine(line, string);
}
else {
sign.getSide(Side.BACK).setLine(line - 4, string);
}
}
@Override
public boolean isSignFront(SignChangeEvent event) {
return event.getSide().equals(Side.FRONT);
}
}