mirror of
https://github.com/PlayPro/CoreProtect.git
synced 2024-11-27 04:30:25 +08:00
Added logging and rollback support for double sided signs
This commit is contained in:
parent
7e97e12969
commit
4e43a42662
@ -3,6 +3,8 @@ package net.coreprotect.bukkit;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
@ -131,13 +133,13 @@ public class BukkitAdapter implements BukkitInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGlowing(Sign sign) {
|
||||
public boolean isGlowing(Sign sign, boolean isFront) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGlowing(Sign sign, boolean set) {
|
||||
return;
|
||||
public boolean isWaxed(Sign sign) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -150,4 +152,32 @@ public class BukkitAdapter implements BukkitInterface {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGlowing(Sign sign, boolean isFront, boolean isGlowing) {
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColor(Sign sign, boolean isFront, int color) {
|
||||
if (!isFront) {
|
||||
return;
|
||||
}
|
||||
|
||||
sign.setColor(DyeColor.getByColor(Color.fromRGB(color)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaxed(Sign sign, boolean isWaxed) {
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor(Sign sign, boolean isFront) {
|
||||
if (isFront) {
|
||||
return sign.getColor().getColor().asRGB();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -43,14 +43,22 @@ public interface BukkitInterface {
|
||||
|
||||
public boolean isItemFrame(Material material);
|
||||
|
||||
public boolean isGlowing(Sign sign);
|
||||
public boolean isGlowing(Sign sign, boolean isFront);
|
||||
|
||||
public boolean isInvisible(Material material);
|
||||
|
||||
public boolean isWaxed(Sign sign);
|
||||
|
||||
public int getMinHeight(World world);
|
||||
|
||||
public int getLegacyBlockId(Material material);
|
||||
|
||||
public void setGlowing(Sign sign, boolean b);
|
||||
public void setGlowing(Sign sign, boolean isFront, boolean isGlowing);
|
||||
|
||||
public void setColor(Sign sign, boolean isFront, int color);
|
||||
|
||||
public void setWaxed(Sign sign, boolean isWaxed);
|
||||
|
||||
public int getColor(Sign sign, boolean isFront);
|
||||
|
||||
}
|
||||
|
@ -218,13 +218,21 @@ public class Bukkit_v1_17 extends Bukkit_v1_16 implements BukkitInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGlowing(Sign sign) {
|
||||
public boolean isGlowing(Sign sign, boolean isFront) {
|
||||
if (!isFront) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return sign.isGlowingText();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGlowing(Sign sign, boolean set) {
|
||||
sign.setGlowingText(set);
|
||||
public void setGlowing(Sign sign, boolean isFront, boolean isGlowing) {
|
||||
if (!isFront) {
|
||||
return;
|
||||
}
|
||||
|
||||
sign.setGlowingText(isGlowing);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,7 +3,11 @@ package net.coreprotect.bukkit;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.block.sign.Side;
|
||||
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
|
||||
@ -14,4 +18,54 @@ public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface {
|
||||
BlockGroup.UPDATE_STATE = new HashSet<>(Arrays.asList(Material.TORCH, Material.WALL_TORCH, Material.REDSTONE_WIRE, Material.RAIL, Material.POWERED_RAIL, Material.DETECTOR_RAIL, Material.FURNACE, Material.BLAST_FURNACE, Material.SMOKER, Material.LEVER, Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH, Material.GLOWSTONE, Material.JACK_O_LANTERN, Material.REPEATER, Material.REDSTONE_LAMP, Material.BEACON, Material.COMPARATOR, Material.DAYLIGHT_DETECTOR, Material.REDSTONE_BLOCK, Material.HOPPER, Material.CHEST, Material.TRAPPED_CHEST, Material.ACTIVATOR_RAIL, Material.SOUL_TORCH, Material.SOUL_WALL_TORCH, Material.SHROOMLIGHT, Material.RESPAWN_ANCHOR, Material.CRYING_OBSIDIAN, Material.TARGET, Material.SMALL_AMETHYST_BUD, Material.MEDIUM_AMETHYST_BUD, Material.LARGE_AMETHYST_BUD, Material.AMETHYST_CLUSTER, Material.CAVE_VINES, Material.CAVE_VINES_PLANT, Material.GLOW_LICHEN, Material.LIGHT, Material.LAVA_CAULDRON, Material.CHISELED_BOOKSHELF));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGlowing(Sign sign, boolean isFront, boolean isGlowing) {
|
||||
if (isFront) {
|
||||
sign.getSide(Side.FRONT).setGlowingText(isGlowing);
|
||||
}
|
||||
else {
|
||||
sign.getSide(Side.BACK).setGlowingText(isGlowing);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColor(Sign sign, boolean isFront, int color) {
|
||||
if (isFront) {
|
||||
sign.getSide(Side.FRONT).setColor(DyeColor.getByColor(Color.fromRGB(color)));
|
||||
}
|
||||
else {
|
||||
sign.getSide(Side.BACK).setColor(DyeColor.getByColor(Color.fromRGB(color)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaxed(Sign sign, boolean isWaxed) {
|
||||
sign.setWaxed(isWaxed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor(Sign sign, boolean isFront) {
|
||||
if (isFront) {
|
||||
return sign.getSide(Side.FRONT).getColor().getColor().asRGB();
|
||||
}
|
||||
else {
|
||||
return sign.getSide(Side.BACK).getColor().getColor().asRGB();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGlowing(Sign sign, boolean isFront) {
|
||||
if (isFront) {
|
||||
return sign.getSide(Side.FRONT).isGlowingText();
|
||||
}
|
||||
else {
|
||||
return sign.getSide(Side.BACK).isGlowingText();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWaxed(Sign sign) {
|
||||
return sign.isWaxed();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -352,7 +352,7 @@ public class Queue {
|
||||
queueStandardData(consumerId, currentConsumer, new String[] { user, null }, location);
|
||||
}
|
||||
|
||||
protected static void queueSignText(String user, Location location, int action, int color, boolean glowing, String line1, String line2, String line3, String line4, int offset) {
|
||||
protected static void queueSignText(String user, Location location, int action, int color, int colorSecondary, boolean frontGlowing, boolean backGlowing, boolean isWaxed, boolean isFront, String line1, String line2, String line3, String line4, String line5, String line6, String line7, String line8, int offset) {
|
||||
/*
|
||||
if (line1.length() == 0 && line2.length() == 0 && line3.length() == 0 && line4.length() == 0) {
|
||||
return;
|
||||
@ -361,7 +361,7 @@ public class Queue {
|
||||
int currentConsumer = Consumer.currentConsumer;
|
||||
int consumerId = Consumer.newConsumerId(currentConsumer);
|
||||
addConsumer(currentConsumer, new Object[] { consumerId, Process.SIGN_TEXT, null, color, null, action, offset, null });
|
||||
Consumer.consumerSigns.get(currentConsumer).put(consumerId, new Object[] { (glowing == true ? 1 : 0), line1, line2, line3, line4 });
|
||||
Consumer.consumerSigns.get(currentConsumer).put(consumerId, new Object[] { colorSecondary, Util.getSignData(frontGlowing, backGlowing), isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8 });
|
||||
queueStandardData(consumerId, currentConsumer, new String[] { user, null }, location);
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ class SignTextProcess {
|
||||
Map<Integer, Object[]> signs = Consumer.consumerSigns.get(processId);
|
||||
if (signs.get(id) != null) {
|
||||
Object[] SIGN_DATA = signs.get(id);
|
||||
SignTextLogger.log(preparedStmt, batchCount, user, location, action, color, (Integer) SIGN_DATA[0], (String) SIGN_DATA[1], (String) SIGN_DATA[2], (String) SIGN_DATA[3], (String) SIGN_DATA[4], forceData);
|
||||
SignTextLogger.log(preparedStmt, batchCount, user, location, action, color, (Integer) SIGN_DATA[0], (Integer) SIGN_DATA[1], (Boolean) SIGN_DATA[2], (Boolean) SIGN_DATA[3], (String) SIGN_DATA[4], (String) SIGN_DATA[5], (String) SIGN_DATA[6], (String) SIGN_DATA[7], (String) SIGN_DATA[8], (String) SIGN_DATA[9], (String) SIGN_DATA[10], (String) SIGN_DATA[11], forceData);
|
||||
signs.remove(id);
|
||||
}
|
||||
}
|
||||
|
@ -26,10 +26,10 @@ class SignUpdateProcess {
|
||||
int userid = ConfigHandler.playerIdCache.get(user.toLowerCase(Locale.ROOT));
|
||||
String query = "";
|
||||
if (action == 0) {
|
||||
query = "SELECT color, data, line_1, line_2, line_3, line_4 FROM " + ConfigHandler.prefix + "sign WHERE user='" + userid + "' AND wid='" + wid + "' AND x='" + x + "' AND z='" + z + "' AND y='" + y + "' AND time < '" + time + "' ORDER BY rowid DESC LIMIT 0, 1";
|
||||
query = "SELECT color, color_secondary, data, waxed, face, line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8 FROM " + ConfigHandler.prefix + "sign WHERE user='" + userid + "' AND wid='" + wid + "' AND x='" + x + "' AND z='" + z + "' AND y='" + y + "' AND time < '" + time + "' ORDER BY rowid DESC LIMIT 0, 1";
|
||||
}
|
||||
else {
|
||||
query = "SELECT color, data, line_1, line_2, line_3, line_4 FROM " + ConfigHandler.prefix + "sign WHERE user='" + userid + "' AND wid='" + wid + "' AND x='" + x + "' AND z='" + z + "' AND y='" + y + "' AND time >= '" + time + "' ORDER BY rowid ASC LIMIT 0, 1";
|
||||
query = "SELECT color, color_secondary, data, waxed, face, line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8 FROM " + ConfigHandler.prefix + "sign WHERE user='" + userid + "' AND wid='" + wid + "' AND x='" + x + "' AND z='" + z + "' AND y='" + y + "' AND time >= '" + time + "' ORDER BY rowid ASC LIMIT 0, 1";
|
||||
}
|
||||
SignStatement.getData(statement, block, query);
|
||||
Util.updateBlock(block);
|
||||
|
@ -215,7 +215,7 @@ public class Database extends Queue {
|
||||
public static PreparedStatement prepareStatement(Connection connection, int type, boolean keys) {
|
||||
PreparedStatement preparedStatement = null;
|
||||
try {
|
||||
String signInsert = "INSERT INTO " + ConfigHandler.prefix + "sign (time, user, wid, x, y, z, action, color, data, line_1, line_2, line_3, line_4) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
String signInsert = "INSERT INTO " + ConfigHandler.prefix + "sign (time, user, wid, x, y, z, action, color, color_secondary, data, waxed, face, line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
String blockInsert = "INSERT INTO " + ConfigHandler.prefix + "block (time, user, wid, x, y, z, type, data, meta, blockdata, action, rolled_back) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
String skullInsert = "INSERT INTO " + ConfigHandler.prefix + "skull (time, owner) VALUES (?, ?)";
|
||||
String containerInsert = "INSERT INTO " + ConfigHandler.prefix + "container (time, user, wid, x, y, z, type, data, amount, metadata, action, rolled_back) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
@ -348,7 +348,7 @@ public class Database extends Queue {
|
||||
index = ", INDEX(time), INDEX(user,time), INDEX(wid,x,z,time)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "command(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),time int, user int, wid int, x int, y int (3), z int, message varchar(16000)" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
index = ", INDEX(wid,x,z,time), INDEX(user,time), INDEX(type,time)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "container(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid), time int, user int, wid int, x int, y int, z int, type int, data int, amount int, metadata blob, action tinyint, rolled_back tinyint" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "container(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid), time int, user int, wid int, x int, y int, z int, type int, data int, amount int, slot tinyint, metadata blob, action tinyint, rolled_back tinyint" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
index = ", INDEX(wid,x,z,time), INDEX(user,time), INDEX(type,time)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "item(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid), time int, user int, wid int, x int, y int, z int, type int, data blob, amount int, action tinyint, rolled_back tinyint" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "database_lock(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),status tinyint,time int) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
@ -362,7 +362,7 @@ public class Database extends Queue {
|
||||
index = ", INDEX(wid,x,z,time), INDEX(action,time), INDEX(user,time), INDEX(time)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "session(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),time int, user int, wid int, x int, y int (3), z int, action tinyint" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
index = ", INDEX(wid,x,z,time), INDEX(user,time), INDEX(time)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "sign(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),time int, user int, wid int, x int, y int, z int, action tinyint, color int, data tinyint, line_1 varchar(100), line_2 varchar(100), line_3 varchar(100), line_4 varchar(100)" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "sign(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),time int, user int, wid int, x int, y int, z int, action tinyint, color int, color_secondary int, data tinyint, waxed tinyint, face tinyint, line_1 varchar(100), line_2 varchar(100), line_3 varchar(100), line_4 varchar(100), line_5 varchar(100), line_6 varchar(100), line_7 varchar(100), line_8 varchar(100)" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "skull(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid), time int, owner varchar(64)) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
index = ", INDEX(user), INDEX(uuid)";
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "user(rowid int NOT NULL AUTO_INCREMENT,PRIMARY KEY(rowid),time int,user varchar(100),uuid varchar(64)" + index + ") ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4");
|
||||
@ -426,7 +426,7 @@ public class Database extends Queue {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "command (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, message TEXT);");
|
||||
}
|
||||
if (!tableData.contains(prefix + "container")) {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "container (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, type INTEGER, data INTEGER, amount INTEGER, metadata BLOB, action INTEGER, rolled_back INTEGER);");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "container (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, type INTEGER, data INTEGER, amount INTEGER, slot INTEGER, metadata BLOB, action INTEGER, rolled_back INTEGER);");
|
||||
}
|
||||
if (!tableData.contains(prefix + "item")) {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "item (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, type INTEGER, data BLOB, amount INTEGER, action INTEGER, rolled_back INTEGER);");
|
||||
@ -450,7 +450,7 @@ public class Database extends Queue {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "session (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, action INTEGER);");
|
||||
}
|
||||
if (!tableData.contains(prefix + "sign")) {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "sign (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, action INTEGER, color INTEGER, data INTEGER, line_1 TEXT, line_2 TEXT, line_3 TEXT, line_4 TEXT);");
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "sign (time INTEGER, user INTEGER, wid INTEGER, x INTEGER, y INTEGER, z INTEGER, action INTEGER, color INTEGER, color_secondary INTEGER, data INTEGER, waxed INTEGER, face INTEGER, line_1 TEXT, line_2 TEXT, line_3 TEXT, line_4 TEXT, line_5 TEXT, line_6 TEXT, line_7 TEXT, line_8 TEXT);");
|
||||
}
|
||||
if (!tableData.contains(prefix + "skull")) {
|
||||
statement.executeUpdate("CREATE TABLE IF NOT EXISTS " + prefix + "skull (id INTEGER PRIMARY KEY ASC, time INTEGER, owner TEXT);");
|
||||
|
@ -191,36 +191,65 @@ public class Lookup extends Queue {
|
||||
int resultX = results.getInt("x");
|
||||
int resultY = results.getInt("y");
|
||||
int resultZ = results.getInt("z");
|
||||
boolean isFront = results.getInt("face") == 0;
|
||||
String line1 = results.getString("line_1");
|
||||
String line2 = results.getString("line_2");
|
||||
String line3 = results.getString("line_3");
|
||||
String line4 = results.getString("line_4");
|
||||
String line5 = results.getString("line_5");
|
||||
String line6 = results.getString("line_6");
|
||||
String line7 = results.getString("line_7");
|
||||
String line8 = results.getString("line_8");
|
||||
|
||||
StringBuilder message = new StringBuilder();
|
||||
if (line1 != null && line1.length() > 0) {
|
||||
if (isFront && line1 != null && line1.length() > 0) {
|
||||
message.append(line1);
|
||||
if (!line1.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line2 != null && line2.length() > 0) {
|
||||
if (isFront && line2 != null && line2.length() > 0) {
|
||||
message.append(line2);
|
||||
if (!line2.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line3 != null && line3.length() > 0) {
|
||||
if (isFront && line3 != null && line3.length() > 0) {
|
||||
message.append(line3);
|
||||
if (!line3.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line4 != null && line4.length() > 0) {
|
||||
if (isFront && line4 != null && line4.length() > 0) {
|
||||
message.append(line4);
|
||||
if (!line4.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line5 != null && line5.length() > 0) {
|
||||
message.append(line5);
|
||||
if (!line5.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line6 != null && line6.length() > 0) {
|
||||
message.append(line6);
|
||||
if (!line6.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line7 != null && line7.length() > 0) {
|
||||
message.append(line7);
|
||||
if (!line7.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line8 != null && line8.length() > 0) {
|
||||
message.append(line8);
|
||||
if (!line8.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
Object[] dataArray = new Object[] { resultId, resultTime, resultUserId, resultWorldId, resultX, resultY, resultZ, message.toString() };
|
||||
list.add(dataArray);
|
||||
@ -596,7 +625,7 @@ public class Lookup extends Queue {
|
||||
}
|
||||
|
||||
if (actionList.contains(10)) {
|
||||
queryBlock = queryBlock + " action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0) AND";
|
||||
queryBlock = queryBlock + " action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0 OR LENGTH(line_5) > 0 OR LENGTH(line_6) > 0 OR LENGTH(line_7) > 0 OR LENGTH(line_8) > 0) AND";
|
||||
}
|
||||
|
||||
if (queryBlock.length() > 0) {
|
||||
@ -649,7 +678,7 @@ public class Lookup extends Queue {
|
||||
}
|
||||
else if (actionList.contains(10)) {
|
||||
queryTable = "sign";
|
||||
rows = "rowid as id,time,user,wid,x,y,z,line_1,line_2,line_3,line_4";
|
||||
rows = "rowid as id,time,user,wid,x,y,z,face,line_1,line_2,line_3,line_4,line_5,line_6,line_7,line_8";
|
||||
}
|
||||
else if (actionList.contains(11)) {
|
||||
queryTable = "item";
|
||||
|
@ -18,7 +18,7 @@ public class SignTextLogger {
|
||||
throw new IllegalStateException("Database class");
|
||||
}
|
||||
|
||||
public static void log(PreparedStatement preparedStmt, int batchCount, String user, Location location, int action, int color, int data, String line1, String line2, String line3, String line4, int timeOffset) {
|
||||
public static void log(PreparedStatement preparedStmt, int batchCount, String user, Location location, int action, int color, int colorSecondary, int data, boolean isWaxed, boolean isFront, String line1, String line2, String line3, String line4, String line5, String line6, String line7, String line8, int timeOffset) {
|
||||
try {
|
||||
if (ConfigHandler.blacklist.get(user.toLowerCase(Locale.ROOT)) != null) {
|
||||
return;
|
||||
@ -33,7 +33,21 @@ public class SignTextLogger {
|
||||
int x = location.getBlockX();
|
||||
int y = location.getBlockY();
|
||||
int z = location.getBlockZ();
|
||||
SignStatement.insert(preparedStmt, batchCount, time, userId, wid, x, y, z, action, color, data, line1, line2, line3, line4);
|
||||
|
||||
if (line1.isEmpty() && line2.isEmpty() && line3.isEmpty() && line4.isEmpty()) {
|
||||
line1 = null;
|
||||
line2 = null;
|
||||
line3 = null;
|
||||
line4 = null;
|
||||
}
|
||||
if (line5.isEmpty() && line6.isEmpty() && line7.isEmpty() && line8.isEmpty()) {
|
||||
line5 = null;
|
||||
line6 = null;
|
||||
line7 = null;
|
||||
line8 = null;
|
||||
}
|
||||
|
||||
SignStatement.insert(preparedStmt, batchCount, time, userId, wid, x, y, z, action, color, colorSecondary, data, isWaxed ? 1 : 0, isFront ? 0 : 1, line1, line2, line3, line4, line5, line6, line7, line8);
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -55,7 +55,7 @@ public class SignMessageLookup {
|
||||
int rowMax = page * limit;
|
||||
int pageStart = rowMax - limit;
|
||||
|
||||
String query = "SELECT COUNT(*) as count from " + ConfigHandler.prefix + "sign " + Util.getWidIndex("sign") + "WHERE wid = '" + worldId + "' AND x = '" + x + "' AND z = '" + z + "' AND y = '" + y + "' AND action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0) LIMIT 0, 1";
|
||||
String query = "SELECT COUNT(*) as count from " + ConfigHandler.prefix + "sign " + Util.getWidIndex("sign") + "WHERE wid = '" + worldId + "' AND x = '" + x + "' AND z = '" + z + "' AND y = '" + y + "' AND action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0 OR LENGTH(line_5) > 0 OR LENGTH(line_6) > 0 OR LENGTH(line_7) > 0 OR LENGTH(line_8) > 0) LIMIT 0, 1";
|
||||
ResultSet results = statement.executeQuery(query);
|
||||
|
||||
while (results.next()) {
|
||||
@ -65,7 +65,7 @@ public class SignMessageLookup {
|
||||
|
||||
int totalPages = (int) Math.ceil(count / (limit + 0.0));
|
||||
|
||||
query = "SELECT time,user,line_1,line_2,line_3,line_4 FROM " + ConfigHandler.prefix + "sign " + Util.getWidIndex("sign") + "WHERE wid = '" + worldId + "' AND x = '" + x + "' AND z = '" + z + "' AND y = '" + y + "' AND action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0) ORDER BY rowid DESC LIMIT " + pageStart + ", " + limit + "";
|
||||
query = "SELECT time,user,face,line_1,line_2,line_3,line_4,line_5,line_6,line_7,line_8 FROM " + ConfigHandler.prefix + "sign " + Util.getWidIndex("sign") + "WHERE wid = '" + worldId + "' AND x = '" + x + "' AND z = '" + z + "' AND y = '" + y + "' AND action = '1' AND (LENGTH(line_1) > 0 OR LENGTH(line_2) > 0 OR LENGTH(line_3) > 0 OR LENGTH(line_4) > 0 OR LENGTH(line_5) > 0 OR LENGTH(line_6) > 0 OR LENGTH(line_7) > 0 OR LENGTH(line_8) > 0) ORDER BY rowid DESC LIMIT " + pageStart + ", " + limit + "";
|
||||
results = statement.executeQuery(query);
|
||||
|
||||
while (results.next()) {
|
||||
@ -75,32 +75,61 @@ public class SignMessageLookup {
|
||||
String line2 = results.getString("line_2");
|
||||
String line3 = results.getString("line_3");
|
||||
String line4 = results.getString("line_4");
|
||||
String line5 = results.getString("line_5");
|
||||
String line6 = results.getString("line_6");
|
||||
String line7 = results.getString("line_7");
|
||||
String line8 = results.getString("line_8");
|
||||
boolean isFront = results.getInt("face") == 0;
|
||||
|
||||
StringBuilder message = new StringBuilder();
|
||||
if (line1 != null && line1.length() > 0) {
|
||||
if (isFront && line1 != null && line1.length() > 0) {
|
||||
message.append(line1);
|
||||
if (!line1.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line2 != null && line2.length() > 0) {
|
||||
if (isFront && line2 != null && line2.length() > 0) {
|
||||
message.append(line2);
|
||||
if (!line2.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line3 != null && line3.length() > 0) {
|
||||
if (isFront && line3 != null && line3.length() > 0) {
|
||||
message.append(line3);
|
||||
if (!line3.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (line4 != null && line4.length() > 0) {
|
||||
if (isFront && line4 != null && line4.length() > 0) {
|
||||
message.append(line4);
|
||||
if (!line4.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line5 != null && line5.length() > 0) {
|
||||
message.append(line5);
|
||||
if (!line5.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line6 != null && line6.length() > 0) {
|
||||
message.append(line6);
|
||||
if (!line6.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line7 != null && line7.length() > 0) {
|
||||
message.append(line7);
|
||||
if (!line7.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
if (!isFront && line8 != null && line8.length() > 0) {
|
||||
message.append(line8);
|
||||
if (!line8.endsWith(" ")) {
|
||||
message.append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
String parsedMessage = message.toString();
|
||||
if (parsedMessage.contains("§x")) {
|
||||
|
@ -4,12 +4,12 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Sign;
|
||||
|
||||
import net.coreprotect.bukkit.BukkitAdapter;
|
||||
import net.coreprotect.spigot.SpigotAdapter;
|
||||
import net.coreprotect.utility.Util;
|
||||
|
||||
public class SignStatement {
|
||||
|
||||
@ -17,7 +17,7 @@ public class SignStatement {
|
||||
throw new IllegalStateException("Database class");
|
||||
}
|
||||
|
||||
public static void insert(PreparedStatement preparedStmt, int batchCount, int time, int id, int wid, int x, int y, int z, int action, int color, int data, String line1, String line2, String line3, String line4) {
|
||||
public static void insert(PreparedStatement preparedStmt, int batchCount, int time, int id, int wid, int x, int y, int z, int action, int color, int colorSecondary, int data, int waxed, int face, String line1, String line2, String line3, String line4, String line5, String line6, String line7, String line8) {
|
||||
try {
|
||||
preparedStmt.setInt(1, time);
|
||||
preparedStmt.setInt(2, id);
|
||||
@ -27,11 +27,18 @@ public class SignStatement {
|
||||
preparedStmt.setInt(6, z);
|
||||
preparedStmt.setInt(7, action);
|
||||
preparedStmt.setInt(8, color);
|
||||
preparedStmt.setInt(9, data);
|
||||
preparedStmt.setString(10, line1);
|
||||
preparedStmt.setString(11, line2);
|
||||
preparedStmt.setString(12, line3);
|
||||
preparedStmt.setString(13, line4);
|
||||
preparedStmt.setInt(9, colorSecondary);
|
||||
preparedStmt.setInt(10, data);
|
||||
preparedStmt.setInt(11, waxed);
|
||||
preparedStmt.setInt(12, face);
|
||||
preparedStmt.setString(13, line1);
|
||||
preparedStmt.setString(14, line2);
|
||||
preparedStmt.setString(15, line3);
|
||||
preparedStmt.setString(16, line4);
|
||||
preparedStmt.setString(17, line5);
|
||||
preparedStmt.setString(18, line6);
|
||||
preparedStmt.setString(19, line7);
|
||||
preparedStmt.setString(20, line8);
|
||||
preparedStmt.addBatch();
|
||||
|
||||
if (batchCount > 0 && batchCount % 1000 == 0) {
|
||||
@ -54,24 +61,39 @@ public class SignStatement {
|
||||
|
||||
while (resultSet.next()) {
|
||||
int color = resultSet.getInt("color");
|
||||
int colorSecondary = resultSet.getInt("color_secondary");
|
||||
int data = resultSet.getInt("data");
|
||||
boolean isWaxed = resultSet.getInt("waxed") == 1;
|
||||
// boolean isFront = resultSet.getInt("face") == 0;
|
||||
String line1 = resultSet.getString("line_1");
|
||||
String line2 = resultSet.getString("line_2");
|
||||
String line3 = resultSet.getString("line_3");
|
||||
String line4 = resultSet.getString("line_4");
|
||||
String line5 = resultSet.getString("line_5");
|
||||
String line6 = resultSet.getString("line_6");
|
||||
String line7 = resultSet.getString("line_7");
|
||||
String line8 = resultSet.getString("line_8");
|
||||
|
||||
if (color > 0) {
|
||||
sign.setColor(DyeColor.getByColor(Color.fromRGB(color)));
|
||||
BukkitAdapter.ADAPTER.setColor(sign, true, color);
|
||||
}
|
||||
if (colorSecondary > 0) {
|
||||
BukkitAdapter.ADAPTER.setColor(sign, false, colorSecondary);
|
||||
}
|
||||
|
||||
if (data > 0) {
|
||||
BukkitAdapter.ADAPTER.setGlowing(sign, (data == 1 ? true : false));
|
||||
}
|
||||
|
||||
sign.setLine(0, line1);
|
||||
sign.setLine(1, line2);
|
||||
sign.setLine(2, line3);
|
||||
sign.setLine(3, line4);
|
||||
boolean frontGlowing = Util.isSideGlowing(true, data);
|
||||
boolean backGlowing = Util.isSideGlowing(false, data);
|
||||
BukkitAdapter.ADAPTER.setGlowing(sign, true, frontGlowing);
|
||||
BukkitAdapter.ADAPTER.setGlowing(sign, false, backGlowing);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 0, line1);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 1, line2);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 2, line3);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 3, line4);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 4, line5);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 5, line6);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 6, line7);
|
||||
SpigotAdapter.ADAPTER.setLine(sign, 7, line8);
|
||||
BukkitAdapter.ADAPTER.setWaxed(sign, isWaxed);
|
||||
}
|
||||
|
||||
resultSet.close();
|
||||
|
@ -283,9 +283,19 @@ public final class BlockBreakListener extends Queue implements Listener {
|
||||
String line2 = PaperAdapter.ADAPTER.getLine(sign, 1);
|
||||
String line3 = PaperAdapter.ADAPTER.getLine(sign, 2);
|
||||
String line4 = PaperAdapter.ADAPTER.getLine(sign, 3);
|
||||
int color = sign.getColor().getColor().asRGB();
|
||||
boolean isGlowing = BukkitAdapter.ADAPTER.isGlowing(sign);
|
||||
Queue.queueSignText(user, location, 0, color, isGlowing, line1, line2, line3, line4, 5);
|
||||
String line5 = PaperAdapter.ADAPTER.getLine(sign, 4);
|
||||
String line6 = PaperAdapter.ADAPTER.getLine(sign, 5);
|
||||
String line7 = PaperAdapter.ADAPTER.getLine(sign, 6);
|
||||
String line8 = PaperAdapter.ADAPTER.getLine(sign, 7);
|
||||
|
||||
boolean isFront = true;
|
||||
int color = BukkitAdapter.ADAPTER.getColor(sign, isFront);
|
||||
int colorSecondary = BukkitAdapter.ADAPTER.getColor(sign, !isFront);
|
||||
boolean frontGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, isFront);
|
||||
boolean backGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, !isFront);
|
||||
boolean isWaxed = BukkitAdapter.ADAPTER.isWaxed(sign);
|
||||
|
||||
Queue.queueSignText(user, location, 0, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8, 5);
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -26,6 +26,7 @@ import net.coreprotect.config.Config;
|
||||
import net.coreprotect.consumer.Queue;
|
||||
import net.coreprotect.database.Database;
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
|
||||
public final class BlockExplodeListener extends Queue implements Listener {
|
||||
|
||||
@ -118,13 +119,23 @@ public final class BlockExplodeListener extends Queue implements Listener {
|
||||
try {
|
||||
Location location = blockState.getLocation();
|
||||
Sign sign = (Sign) blockState;
|
||||
String line1 = sign.getLine(0);
|
||||
String line2 = sign.getLine(1);
|
||||
String line3 = sign.getLine(2);
|
||||
String line4 = sign.getLine(3);
|
||||
int color = sign.getColor().getColor().asRGB();
|
||||
boolean isGlowing = BukkitAdapter.ADAPTER.isGlowing(sign);
|
||||
Queue.queueSignText(user, location, 0, color, isGlowing, line1, line2, line3, line4, 5);
|
||||
String line1 = PaperAdapter.ADAPTER.getLine(sign, 0);
|
||||
String line2 = PaperAdapter.ADAPTER.getLine(sign, 1);
|
||||
String line3 = PaperAdapter.ADAPTER.getLine(sign, 2);
|
||||
String line4 = PaperAdapter.ADAPTER.getLine(sign, 3);
|
||||
String line5 = PaperAdapter.ADAPTER.getLine(sign, 4);
|
||||
String line6 = PaperAdapter.ADAPTER.getLine(sign, 5);
|
||||
String line7 = PaperAdapter.ADAPTER.getLine(sign, 6);
|
||||
String line8 = PaperAdapter.ADAPTER.getLine(sign, 7);
|
||||
|
||||
boolean isFront = true;
|
||||
int color = BukkitAdapter.ADAPTER.getColor(sign, isFront);
|
||||
int colorSecondary = BukkitAdapter.ADAPTER.getColor(sign, !isFront);
|
||||
boolean frontGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, isFront);
|
||||
boolean backGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, !isFront);
|
||||
boolean isWaxed = BukkitAdapter.ADAPTER.isWaxed(sign);
|
||||
|
||||
Queue.queueSignText(user, location, 0, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8, 5);
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -28,6 +28,7 @@ import net.coreprotect.config.Config;
|
||||
import net.coreprotect.consumer.Queue;
|
||||
import net.coreprotect.listener.player.InventoryChangeListener;
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
import net.coreprotect.utility.Util;
|
||||
|
||||
public final class BlockPlaceListener extends Queue implements Listener {
|
||||
@ -111,14 +112,24 @@ public final class BlockPlaceListener extends Queue implements Listener {
|
||||
try {
|
||||
Location location = blockState.getLocation();
|
||||
Sign sign = (Sign) blockState;
|
||||
String line1 = sign.getLine(0);
|
||||
String line2 = sign.getLine(1);
|
||||
String line3 = sign.getLine(2);
|
||||
String line4 = sign.getLine(3);
|
||||
int color = sign.getColor().getColor().asRGB();
|
||||
boolean isGlowing = BukkitAdapter.ADAPTER.isGlowing(sign);
|
||||
if (line1.length() > 0 || line2.length() > 0 || line3.length() > 0 || line4.length() > 0) {
|
||||
Queue.queueSignText(player.getName(), location, 1, color, isGlowing, line1, line2, line3, line4, 0);
|
||||
String line1 = PaperAdapter.ADAPTER.getLine(sign, 0);
|
||||
String line2 = PaperAdapter.ADAPTER.getLine(sign, 1);
|
||||
String line3 = PaperAdapter.ADAPTER.getLine(sign, 2);
|
||||
String line4 = PaperAdapter.ADAPTER.getLine(sign, 3);
|
||||
String line5 = PaperAdapter.ADAPTER.getLine(sign, 4);
|
||||
String line6 = PaperAdapter.ADAPTER.getLine(sign, 5);
|
||||
String line7 = PaperAdapter.ADAPTER.getLine(sign, 6);
|
||||
String line8 = PaperAdapter.ADAPTER.getLine(sign, 7);
|
||||
|
||||
boolean isFront = true;
|
||||
int color = BukkitAdapter.ADAPTER.getColor(sign, isFront);
|
||||
int colorSecondary = BukkitAdapter.ADAPTER.getColor(sign, !isFront);
|
||||
boolean frontGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, isFront);
|
||||
boolean backGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, !isFront);
|
||||
boolean isWaxed = BukkitAdapter.ADAPTER.isWaxed(sign);
|
||||
|
||||
if (line1.length() > 0 || line2.length() > 0 || line3.length() > 0 || line4.length() > 0 || line5.length() > 0 || line6.length() > 0 || line7.length() > 0 || line8.length() > 0) {
|
||||
Queue.queueSignText(player.getName(), location, 1, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8, 0);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
@ -8,7 +8,6 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -54,6 +53,7 @@ import net.coreprotect.database.lookup.InteractionLookup;
|
||||
import net.coreprotect.database.lookup.SignMessageLookup;
|
||||
import net.coreprotect.language.Phrase;
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
import net.coreprotect.thread.CacheHandler;
|
||||
import net.coreprotect.thread.Scheduler;
|
||||
import net.coreprotect.utility.Chat;
|
||||
@ -560,30 +560,47 @@ public final class PlayerInteractListener extends Queue implements Listener {
|
||||
handType = mainHand.getType();
|
||||
}
|
||||
|
||||
if (handType != null && (dyeSet.contains(handType) || handType.name().endsWith("INK_SAC")) && Config.getConfig(block.getWorld()).SIGN_TEXT) {
|
||||
if (handType != null && (dyeSet.contains(handType) || handType.name().endsWith("INK_SAC") || handType == Material.HONEYCOMB) && Config.getConfig(block.getWorld()).SIGN_TEXT) {
|
||||
BlockState blockState = block.getState();
|
||||
Sign sign = (Sign) blockState;
|
||||
String line1 = sign.getLine(0);
|
||||
String line2 = sign.getLine(1);
|
||||
String line3 = sign.getLine(2);
|
||||
String line4 = sign.getLine(3);
|
||||
int oldColor = sign.getColor().getColor().asRGB();
|
||||
int newColor = oldColor;
|
||||
boolean oldGlowing = BukkitAdapter.ADAPTER.isGlowing(sign);
|
||||
boolean newGlowing = oldGlowing;
|
||||
String line1 = PaperAdapter.ADAPTER.getLine(sign, 0);
|
||||
String line2 = PaperAdapter.ADAPTER.getLine(sign, 1);
|
||||
String line3 = PaperAdapter.ADAPTER.getLine(sign, 2);
|
||||
String line4 = PaperAdapter.ADAPTER.getLine(sign, 3);
|
||||
String line5 = PaperAdapter.ADAPTER.getLine(sign, 4);
|
||||
String line6 = PaperAdapter.ADAPTER.getLine(sign, 5);
|
||||
String line7 = PaperAdapter.ADAPTER.getLine(sign, 6);
|
||||
String line8 = PaperAdapter.ADAPTER.getLine(sign, 7);
|
||||
|
||||
if (dyeSet.contains(handType)) {
|
||||
newColor = (DyeColor.valueOf(handType.name().replaceFirst("_DYE", ""))).getColor().asRGB();
|
||||
}
|
||||
else {
|
||||
newGlowing = (handType != Material.INK_SAC);
|
||||
}
|
||||
boolean isFront = true;
|
||||
int oldColor = BukkitAdapter.ADAPTER.getColor(sign, isFront);
|
||||
int oldColorSecondary = BukkitAdapter.ADAPTER.getColor(sign, !isFront);
|
||||
boolean oldFrontGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, isFront);
|
||||
boolean oldBackGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, !isFront);
|
||||
boolean oldIsWaxed = BukkitAdapter.ADAPTER.isWaxed(sign);
|
||||
|
||||
if (oldGlowing != newGlowing || oldColor != newColor) {
|
||||
Location location = blockState.getLocation();
|
||||
Queue.queueSignText(player.getName(), location, 0, oldColor, oldGlowing, line1, line2, line3, line4, 1); // 1 second timeOffset
|
||||
Queue.queueBlockPlace(player.getName(), block.getState(), block.getType(), blockState, block.getType(), -1, 0, blockState.getBlockData().getAsString());
|
||||
Queue.queueSignText(player.getName(), location, 2, newColor, newGlowing, line1, line2, line3, line4, 0);
|
||||
if (!oldIsWaxed) {
|
||||
Scheduler.runTask(CoreProtect.getInstance(), () -> {
|
||||
BlockState newState = block.getState();
|
||||
if (newState instanceof Sign) {
|
||||
Sign newSign = (Sign) newState;
|
||||
int newColor = BukkitAdapter.ADAPTER.getColor(newSign, isFront);
|
||||
int newColorSecondary = BukkitAdapter.ADAPTER.getColor(newSign, !isFront);
|
||||
boolean newFrontGlowing = BukkitAdapter.ADAPTER.isGlowing(newSign, isFront);
|
||||
boolean newBackGlowing = BukkitAdapter.ADAPTER.isGlowing(newSign, !isFront);
|
||||
boolean newIsWaxed = BukkitAdapter.ADAPTER.isWaxed(newSign);
|
||||
|
||||
boolean modifyingFront = oldBackGlowing == newBackGlowing && oldColorSecondary == newColorSecondary;
|
||||
if (oldColor != newColor || oldColorSecondary != newColorSecondary || oldFrontGlowing != newFrontGlowing || oldBackGlowing != newBackGlowing || oldIsWaxed != newIsWaxed) {
|
||||
Location location = blockState.getLocation();
|
||||
Queue.queueSignText(player.getName(), location, 0, oldColor, oldColorSecondary, oldFrontGlowing, oldBackGlowing, oldIsWaxed, modifyingFront, line1, line2, line3, line4, line5, line6, line7, line8, 1); // 1 second timeOffset
|
||||
Queue.queueBlockPlace(player.getName(), blockState, block.getType(), blockState, block.getType(), -1, 0, blockState.getBlockData().getAsString());
|
||||
Queue.queueSignText(player.getName(), location, 2, newColor, newColorSecondary, newFrontGlowing, newBackGlowing, newIsWaxed, modifyingFront, line1, line2, line3, line4, line5, line6, line7, line8, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}, block.getLocation());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,24 +12,76 @@ import org.bukkit.event.block.SignChangeEvent;
|
||||
import net.coreprotect.bukkit.BukkitAdapter;
|
||||
import net.coreprotect.config.Config;
|
||||
import net.coreprotect.consumer.Queue;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
import net.coreprotect.spigot.SpigotAdapter;
|
||||
|
||||
public final class SignChangeListener extends Queue implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
protected void onSignChange(SignChangeEvent event) {
|
||||
String player = event.getPlayer().getName();
|
||||
Block block = event.getBlock();
|
||||
if (event.isCancelled() || !Config.getConfig(block.getWorld()).SIGN_TEXT) {
|
||||
return;
|
||||
}
|
||||
|
||||
String player = event.getPlayer().getName();
|
||||
Location location = block.getLocation();
|
||||
BlockState blockState = block.getState();
|
||||
String line1 = event.getLine(0);
|
||||
String line2 = event.getLine(1);
|
||||
String line3 = event.getLine(2);
|
||||
String line4 = event.getLine(3);
|
||||
int color = (blockState instanceof Sign) ? ((Sign) blockState).getColor().getColor().asRGB() : 0;
|
||||
boolean isGlowing = (blockState instanceof Sign) ? BukkitAdapter.ADAPTER.isGlowing((Sign) blockState) : false;
|
||||
|
||||
if (!event.isCancelled() && Config.getConfig(block.getWorld()).SIGN_TEXT) {
|
||||
Queue.queueSignText(player, location, 1, color, isGlowing, line1, line2, line3, line4, 0);
|
||||
String line1 = "";
|
||||
String line2 = "";
|
||||
String line3 = "";
|
||||
String line4 = "";
|
||||
String line5 = "";
|
||||
String line6 = "";
|
||||
String line7 = "";
|
||||
String line8 = "";
|
||||
int color = 0;
|
||||
int colorSecondary = 0;
|
||||
boolean frontGlowing = false;
|
||||
boolean backGlowing = false;
|
||||
boolean isWaxed = false;
|
||||
boolean isFront = SpigotAdapter.ADAPTER.isSignFront(event);
|
||||
boolean existingText = false;
|
||||
|
||||
if (blockState instanceof Sign) {
|
||||
Sign sign = (Sign) blockState;
|
||||
line1 = PaperAdapter.ADAPTER.getLine(sign, 0);
|
||||
line2 = PaperAdapter.ADAPTER.getLine(sign, 1);
|
||||
line3 = PaperAdapter.ADAPTER.getLine(sign, 2);
|
||||
line4 = PaperAdapter.ADAPTER.getLine(sign, 3);
|
||||
line5 = PaperAdapter.ADAPTER.getLine(sign, 4);
|
||||
line6 = PaperAdapter.ADAPTER.getLine(sign, 5);
|
||||
line7 = PaperAdapter.ADAPTER.getLine(sign, 6);
|
||||
line8 = PaperAdapter.ADAPTER.getLine(sign, 7);
|
||||
color = BukkitAdapter.ADAPTER.getColor(sign, true);
|
||||
colorSecondary = BukkitAdapter.ADAPTER.getColor(sign, false);
|
||||
frontGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, true);
|
||||
backGlowing = BukkitAdapter.ADAPTER.isGlowing(sign, false);
|
||||
isWaxed = BukkitAdapter.ADAPTER.isWaxed(sign);
|
||||
|
||||
if (line1.length() > 0 || line2.length() > 0 || line3.length() > 0 || line4.length() > 0 || line5.length() > 0 || line6.length() > 0 || line7.length() > 0 || line8.length() > 0) {
|
||||
existingText = true;
|
||||
Queue.queueSignText(player, location, 0, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8, 1);
|
||||
Queue.queueBlockPlace(player, blockState, block.getType(), blockState, block.getType(), -1, 0, blockState.getBlockData().getAsString());
|
||||
}
|
||||
}
|
||||
|
||||
if (isFront) {
|
||||
line1 = event.getLine(0);
|
||||
line2 = event.getLine(1);
|
||||
line3 = event.getLine(2);
|
||||
line4 = event.getLine(3);
|
||||
}
|
||||
else {
|
||||
line5 = event.getLine(0);
|
||||
line6 = event.getLine(1);
|
||||
line7 = event.getLine(2);
|
||||
line8 = event.getLine(3);
|
||||
}
|
||||
|
||||
if (existingText || line1.length() > 0 || line2.length() > 0 || line3.length() > 0 || line4.length() > 0 || line5.length() > 0 || line6.length() > 0 || line7.length() > 0 || line8.length() > 0) {
|
||||
Queue.queueSignText(player, location, 1, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, line5, line6, line7, line8, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
import net.coreprotect.bukkit.BukkitAdapter;
|
||||
import net.coreprotect.config.ConfigHandler;
|
||||
import net.coreprotect.spigot.SpigotAdapter;
|
||||
|
||||
public class PaperAdapter implements PaperInterface {
|
||||
|
||||
@ -21,6 +22,7 @@ public class PaperAdapter implements PaperInterface {
|
||||
public static final int PAPER_V1_17 = BukkitAdapter.BUKKIT_V1_17;
|
||||
public static final int PAPER_V1_18 = BukkitAdapter.BUKKIT_V1_18;
|
||||
public static final int PAPER_V1_19 = BukkitAdapter.BUKKIT_V1_19;
|
||||
public static final int PAPER_V1_20 = BukkitAdapter.BUKKIT_V1_20;
|
||||
|
||||
public static void loadAdapter() {
|
||||
int paperVersion = ConfigHandler.SERVER_VERSION;
|
||||
@ -43,9 +45,12 @@ public class PaperAdapter implements PaperInterface {
|
||||
case PAPER_V1_17:
|
||||
case PAPER_V1_18:
|
||||
case PAPER_V1_19:
|
||||
default:
|
||||
PaperAdapter.ADAPTER = new Paper_v1_17();
|
||||
break;
|
||||
case PAPER_V1_20:
|
||||
default:
|
||||
PaperAdapter.ADAPTER = new Paper_v1_20();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +66,7 @@ public class PaperAdapter implements PaperInterface {
|
||||
|
||||
@Override
|
||||
public String getLine(Sign sign, int line) {
|
||||
return sign.getLine(line);
|
||||
return SpigotAdapter.ADAPTER.getLine(sign, line);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
21
src/main/java/net/coreprotect/paper/Paper_v1_20.java
Normal file
21
src/main/java/net/coreprotect/paper/Paper_v1_20.java
Normal file
@ -0,0 +1,21 @@
|
||||
package net.coreprotect.paper;
|
||||
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.block.sign.Side;
|
||||
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
|
||||
public class Paper_v1_20 extends Paper_v1_17 implements PaperInterface {
|
||||
|
||||
@Override
|
||||
public String getLine(Sign sign, int line) {
|
||||
// https://docs.adventure.kyori.net/serializer/
|
||||
if (line < 4) {
|
||||
return LegacyComponentSerializer.legacySection().serialize(sign.getSide(Side.FRONT).line(line));
|
||||
}
|
||||
else {
|
||||
return LegacyComponentSerializer.legacySection().serialize(sign.getSide(Side.BACK).line(line - 4));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
127
src/main/java/net/coreprotect/patch/script/__2_22_0.java
Normal file
127
src/main/java/net/coreprotect/patch/script/__2_22_0.java
Normal file
@ -0,0 +1,127 @@
|
||||
package net.coreprotect.patch.script;
|
||||
|
||||
import java.sql.Statement;
|
||||
|
||||
import net.coreprotect.config.Config;
|
||||
import net.coreprotect.config.ConfigHandler;
|
||||
import net.coreprotect.language.Phrase;
|
||||
import net.coreprotect.language.Selector;
|
||||
import net.coreprotect.patch.Patch;
|
||||
import net.coreprotect.utility.Chat;
|
||||
|
||||
public class __2_22_0 {
|
||||
|
||||
protected static boolean patch(Statement statement) {
|
||||
try {
|
||||
if (Config.getGlobal().MYSQL) {
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN line_5 VARCHAR(100), ADD COLUMN line_6 VARCHAR(100), ADD COLUMN line_7 VARCHAR(100), ADD COLUMN line_8 VARCHAR(100), ADD COLUMN color_secondary INT, ADD COLUMN waxed TINYINT DEFAULT 0, ADD COLUMN face TINYINT DEFAULT 0;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN line_5 TEXT;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN line_6 TEXT;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN line_7 TEXT;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN line_8 TEXT;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN color_secondary INTEGER;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN waxed TINYINT DEFAULT 0;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "sign ADD COLUMN face TINYINT DEFAULT 0;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "sign", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
}
|
||||
|
||||
if (!Patch.continuePatch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.getGlobal().MYSQL) {
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "container ADD COLUMN slot TINYINT DEFAULT 0;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "container", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
statement.executeUpdate("ALTER TABLE " + ConfigHandler.prefix + "container ADD COLUMN slot INTEGER DEFAULT 0;");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Chat.console(Phrase.build(Phrase.PATCH_SKIP_UPDATE, ConfigHandler.prefix + "container", Selector.FIRST, Selector.FIRST));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
|
38
src/main/java/net/coreprotect/spigot/Spigot_v1_20.java
Normal file
38
src/main/java/net/coreprotect/spigot/Spigot_v1_20.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
@ -1631,4 +1631,23 @@ public class Util extends Queue {
|
||||
return isInventory ? 2 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getSignData(boolean frontGlowing, boolean backGlowing) {
|
||||
if (frontGlowing && backGlowing) {
|
||||
return 3;
|
||||
}
|
||||
else if (backGlowing) {
|
||||
return 2;
|
||||
}
|
||||
else if (frontGlowing) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean isSideGlowing(boolean isFront, int data) {
|
||||
return ((isFront && (data == 1 || data == 3)) || (!isFront && (data == 2 || data == 3)));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -69,14 +69,20 @@ public class WorldEditLogger extends Queue {
|
||||
if (baseBlock != null && baseBlock.hasNbtData()) {
|
||||
if (Config.getConfig(location.getWorld()).SIGN_TEXT && Tag.SIGNS.isTagged(oldType)) {
|
||||
CompoundTag compoundTag = baseBlock.getNbtData();
|
||||
String line1 = getSignText(compoundTag.getString("Text1"));
|
||||
String line2 = getSignText(compoundTag.getString("Text2"));
|
||||
String line3 = getSignText(compoundTag.getString("Text3"));
|
||||
String line4 = getSignText(compoundTag.getString("Text4"));
|
||||
int color = DyeColor.valueOf(baseBlock.getNbtData().getString("Color").toUpperCase()).getColor().asRGB();
|
||||
boolean isGlowing = (compoundTag.getInt("GlowingText") == 1 ? true : false);
|
||||
if (!compoundTag.containsKey("front_text")) {
|
||||
String line1 = getSignText(compoundTag.getString("Text1"));
|
||||
String line2 = getSignText(compoundTag.getString("Text2"));
|
||||
String line3 = getSignText(compoundTag.getString("Text3"));
|
||||
String line4 = getSignText(compoundTag.getString("Text4"));
|
||||
int color = DyeColor.valueOf(baseBlock.getNbtData().getString("Color").toUpperCase()).getColor().asRGB();
|
||||
int colorSecondary = 0;
|
||||
boolean frontGlowing = (compoundTag.getInt("GlowingText") == 1 ? true : false);
|
||||
boolean backGlowing = false;
|
||||
boolean isWaxed = false;
|
||||
boolean isFront = true;
|
||||
|
||||
Queue.queueSignText(actor.getName(), location, 0, color, isGlowing, line1, line2, line3, line4, 5);
|
||||
Queue.queueSignText(actor.getName(), location, 0, color, colorSecondary, frontGlowing, backGlowing, isWaxed, isFront, line1, line2, line3, line4, "", "", "", "", 5);
|
||||
}
|
||||
}
|
||||
if (oldType == Material.SPAWNER) {
|
||||
String mobType = getMobType(baseBlock);
|
||||
|
Loading…
Reference in New Issue
Block a user