3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-11-08 17:20:24 +01:00

Properly format book data

Dieser Commit ist enthalten in:
mmxw11 2017-09-22 17:16:04 +03:00
Ursprung 3f5362a857
Commit 49b20e37cb
2 geänderte Dateien mit 37 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -187,6 +187,41 @@ public class ItemRewriter {
} }
} }
public static void rewriteBookToServer(Item item) {
short id = item.getId();
if (id != 387) {
return;
}
CompoundTag tag = item.getTag();
ListTag pages = tag.get("pages");
if (pages == null) { // is this even possible?
return;
}
for (int i = 0; i < pages.size(); i++) {
Tag pageTag = pages.get(i);
if (!(pageTag instanceof StringTag)) {
continue;
}
StringTag stag = (StringTag) pageTag;
String value = stag.getValue();
if (value.replaceAll(" ", "").isEmpty()) {
value = "\"" + fixBookSpaceChars(value) + "\"";
} else {
value = fixBookSpaceChars(value);
}
stag.setValue(value);
}
}
private static String fixBookSpaceChars(String str) {
if (!str.startsWith(" ")) {
return str;
}
// hacky but it works :)
str = "\u00A7r" + str;
return str;
}
public static void toClient(Item item) { public static void toClient(Item item) {
if (item != null) { if (item != null) {
if (item.getId() == 383 && item.getData() != 0) { // Monster Egg if (item.getId() == 383 && item.getData() != 0) { // Monster Egg

Datei anzeigen

@ -500,8 +500,9 @@ public class PlayerPackets {
String name = wrapper.get(Type.STRING, 0); String name = wrapper.get(Type.STRING, 0);
if (name.equalsIgnoreCase("MC|BSign")) { if (name.equalsIgnoreCase("MC|BSign")) {
Item item = wrapper.passthrough(Type.ITEM); Item item = wrapper.passthrough(Type.ITEM);
if (item != null) { if (item != null) { //TODO: HERE
item.setId((short) 387); // Written Book item.setId((short) 387); // Written Book
ItemRewriter.rewriteBookToServer(item);
} }
} }
if (name.equalsIgnoreCase("MC|AutoCmd")) { if (name.equalsIgnoreCase("MC|AutoCmd")) {