mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-29 20:09:13 +00:00
添加转义并优化性能
This commit is contained in:
@@ -260,9 +260,9 @@ public class PacketConsumers {
|
|||||||
Tag suffix = buf.readNbt(false);
|
Tag suffix = buf.readNbt(false);
|
||||||
if (suffix == null) return;
|
if (suffix == null) return;
|
||||||
|
|
||||||
Map<String, String> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
Map<String, Component> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
||||||
Map<String, String> tokens2 = CraftEngine.instance().imageManager().matchTags(prefix.getAsString());
|
Map<String, Component> tokens2 = CraftEngine.instance().imageManager().matchTags(prefix.getAsString());
|
||||||
Map<String, String> tokens3 = CraftEngine.instance().imageManager().matchTags(suffix.getAsString());
|
Map<String, Component> tokens3 = CraftEngine.instance().imageManager().matchTags(suffix.getAsString());
|
||||||
if (tokens1.isEmpty() && tokens2.isEmpty() && tokens3.isEmpty()) return;
|
if (tokens1.isEmpty() && tokens2.isEmpty() && tokens3.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
|
|
||||||
@@ -280,8 +280,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens1.isEmpty()) {
|
if (!tokens1.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(displayName);
|
Component component = AdventureHelper.tagToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens1.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens1.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -295,8 +295,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens2.isEmpty()) {
|
if (!tokens2.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(prefix);
|
Component component = AdventureHelper.tagToComponent(prefix);
|
||||||
for (Map.Entry<String, String> token : tokens2.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens2.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -305,8 +305,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens3.isEmpty()) {
|
if (!tokens3.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(suffix);
|
Component component = AdventureHelper.tagToComponent(suffix);
|
||||||
for (Map.Entry<String, String> token : tokens3.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens3.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -338,9 +338,9 @@ public class PacketConsumers {
|
|||||||
String prefix = buf.readUtf();
|
String prefix = buf.readUtf();
|
||||||
String suffix = buf.readUtf();
|
String suffix = buf.readUtf();
|
||||||
|
|
||||||
Map<String, String> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName);
|
Map<String, Component> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName);
|
||||||
Map<String, String> tokens2 = CraftEngine.instance().imageManager().matchTags(prefix);
|
Map<String, Component> tokens2 = CraftEngine.instance().imageManager().matchTags(prefix);
|
||||||
Map<String, String> tokens3 = CraftEngine.instance().imageManager().matchTags(suffix);
|
Map<String, Component> tokens3 = CraftEngine.instance().imageManager().matchTags(suffix);
|
||||||
if (tokens1.isEmpty() && tokens2.isEmpty() && tokens3.isEmpty()) return;
|
if (tokens1.isEmpty() && tokens2.isEmpty() && tokens3.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
|
|
||||||
@@ -358,8 +358,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens1.isEmpty()) {
|
if (!tokens1.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(displayName);
|
Component component = AdventureHelper.jsonToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens1.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens1.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeUtf(AdventureHelper.componentToJson(component));
|
buf.writeUtf(AdventureHelper.componentToJson(component));
|
||||||
} else {
|
} else {
|
||||||
@@ -373,8 +373,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens2.isEmpty()) {
|
if (!tokens2.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(prefix);
|
Component component = AdventureHelper.jsonToComponent(prefix);
|
||||||
for (Map.Entry<String, String> token : tokens2.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens2.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeUtf(AdventureHelper.componentToJson(component));
|
buf.writeUtf(AdventureHelper.componentToJson(component));
|
||||||
} else {
|
} else {
|
||||||
@@ -383,8 +383,8 @@ public class PacketConsumers {
|
|||||||
|
|
||||||
if (!tokens3.isEmpty()) {
|
if (!tokens3.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(suffix);
|
Component component = AdventureHelper.jsonToComponent(suffix);
|
||||||
for (Map.Entry<String, String> token : tokens3.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens3.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeUtf(AdventureHelper.componentToJson(component));
|
buf.writeUtf(AdventureHelper.componentToJson(component));
|
||||||
} else {
|
} else {
|
||||||
@@ -407,11 +407,11 @@ public class PacketConsumers {
|
|||||||
int actionType = buf.readVarInt();
|
int actionType = buf.readVarInt();
|
||||||
if (actionType == 0) {
|
if (actionType == 0) {
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
float health = buf.readFloat();
|
float health = buf.readFloat();
|
||||||
int color = buf.readVarInt();
|
int color = buf.readVarInt();
|
||||||
@@ -429,12 +429,12 @@ public class PacketConsumers {
|
|||||||
buf.writeByte(flag);
|
buf.writeByte(flag);
|
||||||
} else if (actionType == 3) {
|
} else if (actionType == 3) {
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -456,11 +456,11 @@ public class PacketConsumers {
|
|||||||
if (actionType == 0) {
|
if (actionType == 0) {
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
float health = buf.readFloat();
|
float health = buf.readFloat();
|
||||||
int color = buf.readVarInt();
|
int color = buf.readVarInt();
|
||||||
@@ -479,12 +479,12 @@ public class PacketConsumers {
|
|||||||
} else if (actionType == 3) {
|
} else if (actionType == 3) {
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -506,12 +506,12 @@ public class PacketConsumers {
|
|||||||
if (mode != 0 && mode != 2) return;
|
if (mode != 0 && mode != 2) return;
|
||||||
String displayName = buf.readUtf();
|
String displayName = buf.readUtf();
|
||||||
int renderType = buf.readVarInt();
|
int renderType = buf.readVarInt();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(displayName);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(displayName);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(displayName);
|
Component component = AdventureHelper.jsonToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -538,12 +538,12 @@ public class PacketConsumers {
|
|||||||
if (optionalNumberFormat) {
|
if (optionalNumberFormat) {
|
||||||
int format = buf.readVarInt();
|
int format = buf.readVarInt();
|
||||||
if (format == 0) {
|
if (format == 0) {
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(displayName);
|
Component component = AdventureHelper.tagToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -554,13 +554,13 @@ public class PacketConsumers {
|
|||||||
buf.writeBoolean(true);
|
buf.writeBoolean(true);
|
||||||
buf.writeVarInt(0);
|
buf.writeVarInt(0);
|
||||||
} else if (format == 1) {
|
} else if (format == 1) {
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
Tag style = buf.readNbt(false);
|
Tag style = buf.readNbt(false);
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(displayName);
|
Component component = AdventureHelper.tagToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -574,8 +574,8 @@ public class PacketConsumers {
|
|||||||
} else if (format == 2) {
|
} else if (format == 2) {
|
||||||
Tag fixed = buf.readNbt(false);
|
Tag fixed = buf.readNbt(false);
|
||||||
if (fixed == null) return;
|
if (fixed == null) return;
|
||||||
Map<String, String> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
Map<String, Component> tokens1 = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
||||||
Map<String, String> tokens2 = CraftEngine.instance().imageManager().matchTags(fixed.getAsString());
|
Map<String, Component> tokens2 = CraftEngine.instance().imageManager().matchTags(fixed.getAsString());
|
||||||
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
buf.clear();
|
buf.clear();
|
||||||
@@ -584,8 +584,8 @@ public class PacketConsumers {
|
|||||||
buf.writeByte(mode);
|
buf.writeByte(mode);
|
||||||
if (!tokens1.isEmpty()) {
|
if (!tokens1.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(displayName);
|
Component component = AdventureHelper.tagToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens1.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens1.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -596,8 +596,8 @@ public class PacketConsumers {
|
|||||||
buf.writeVarInt(2);
|
buf.writeVarInt(2);
|
||||||
if (!tokens2.isEmpty()) {
|
if (!tokens2.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(fixed);
|
Component component = AdventureHelper.tagToComponent(fixed);
|
||||||
for (Map.Entry<String, String> token : tokens2.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens2.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -605,12 +605,12 @@ public class PacketConsumers {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(displayName.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(displayName);
|
Component component = AdventureHelper.tagToComponent(displayName);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -630,13 +630,13 @@ public class PacketConsumers {
|
|||||||
try {
|
try {
|
||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
String jsonOrPlainString = buf.readUtf();
|
String jsonOrPlainString = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(jsonOrPlainString);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(jsonOrPlainString);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
boolean overlay = buf.readBoolean();
|
boolean overlay = buf.readBoolean();
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(jsonOrPlainString);
|
Component component = AdventureHelper.jsonToComponent(jsonOrPlainString);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -653,13 +653,13 @@ public class PacketConsumers {
|
|||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
boolean overlay = buf.readBoolean();
|
boolean overlay = buf.readBoolean();
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -675,12 +675,12 @@ public class PacketConsumers {
|
|||||||
try {
|
try {
|
||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -696,12 +696,12 @@ public class PacketConsumers {
|
|||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -716,12 +716,12 @@ public class PacketConsumers {
|
|||||||
try {
|
try {
|
||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -737,12 +737,12 @@ public class PacketConsumers {
|
|||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -757,12 +757,12 @@ public class PacketConsumers {
|
|||||||
try {
|
try {
|
||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -778,12 +778,12 @@ public class PacketConsumers {
|
|||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -799,16 +799,16 @@ public class PacketConsumers {
|
|||||||
FriendlyByteBuf buf = event.getBuffer();
|
FriendlyByteBuf buf = event.getBuffer();
|
||||||
String json1 = buf.readUtf();
|
String json1 = buf.readUtf();
|
||||||
String json2 = buf.readUtf();
|
String json2 = buf.readUtf();
|
||||||
Map<String, String> tokens1 = CraftEngine.instance().imageManager().matchTags(json1);
|
Map<String, Component> tokens1 = CraftEngine.instance().imageManager().matchTags(json1);
|
||||||
Map<String, String> tokens2 = CraftEngine.instance().imageManager().matchTags(json2);
|
Map<String, Component> tokens2 = CraftEngine.instance().imageManager().matchTags(json2);
|
||||||
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
if (!tokens1.isEmpty()) {
|
if (!tokens1.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(json1);
|
Component component = AdventureHelper.jsonToComponent(json1);
|
||||||
for (Map.Entry<String, String> token : tokens1.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens1.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeUtf(AdventureHelper.componentToJson(component));
|
buf.writeUtf(AdventureHelper.componentToJson(component));
|
||||||
} else {
|
} else {
|
||||||
@@ -816,8 +816,8 @@ public class PacketConsumers {
|
|||||||
}
|
}
|
||||||
if (!tokens2.isEmpty()) {
|
if (!tokens2.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(json2);
|
Component component = AdventureHelper.jsonToComponent(json2);
|
||||||
for (Map.Entry<String, String> token : tokens2.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens2.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeUtf(AdventureHelper.componentToJson(component));
|
buf.writeUtf(AdventureHelper.componentToJson(component));
|
||||||
} else {
|
} else {
|
||||||
@@ -836,16 +836,16 @@ public class PacketConsumers {
|
|||||||
if (nbt1 == null) return;
|
if (nbt1 == null) return;
|
||||||
Tag nbt2 = buf.readNbt(false);
|
Tag nbt2 = buf.readNbt(false);
|
||||||
if (nbt2 == null) return;
|
if (nbt2 == null) return;
|
||||||
Map<String, String> tokens1 = CraftEngine.instance().imageManager().matchTags(nbt1.getAsString());
|
Map<String, Component> tokens1 = CraftEngine.instance().imageManager().matchTags(nbt1.getAsString());
|
||||||
Map<String, String> tokens2 = CraftEngine.instance().imageManager().matchTags(nbt2.getAsString());
|
Map<String, Component> tokens2 = CraftEngine.instance().imageManager().matchTags(nbt2.getAsString());
|
||||||
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
if (tokens1.isEmpty() && tokens2.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
if (!tokens1.isEmpty()) {
|
if (!tokens1.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(nbt1);
|
Component component = AdventureHelper.tagToComponent(nbt1);
|
||||||
for (Map.Entry<String, String> token : tokens1.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens1.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -853,8 +853,8 @@ public class PacketConsumers {
|
|||||||
}
|
}
|
||||||
if (!tokens2.isEmpty()) {
|
if (!tokens2.isEmpty()) {
|
||||||
Component component = AdventureHelper.tagToComponent(nbt2);
|
Component component = AdventureHelper.tagToComponent(nbt2);
|
||||||
for (Map.Entry<String, String> token : tokens2.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens2.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
buf.writeNbt(AdventureHelper.componentToTag(component), false);
|
||||||
} else {
|
} else {
|
||||||
@@ -872,12 +872,12 @@ public class PacketConsumers {
|
|||||||
int containerId = buf.readVarInt();
|
int containerId = buf.readVarInt();
|
||||||
int type = buf.readVarInt();
|
int type = buf.readVarInt();
|
||||||
String json = buf.readUtf();
|
String json = buf.readUtf();
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
event.setChanged(true);
|
event.setChanged(true);
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -897,11 +897,11 @@ public class PacketConsumers {
|
|||||||
int type = buf.readVarInt();
|
int type = buf.readVarInt();
|
||||||
Tag nbt = buf.readNbt(false);
|
Tag nbt = buf.readNbt(false);
|
||||||
if (nbt == null) return;
|
if (nbt == null) return;
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
|
||||||
if (tokens.isEmpty()) return;
|
if (tokens.isEmpty()) return;
|
||||||
Component component = AdventureHelper.tagToComponent(nbt);
|
Component component = AdventureHelper.tagToComponent(nbt);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
buf.clear();
|
buf.clear();
|
||||||
buf.writeVarInt(event.packetID());
|
buf.writeVarInt(event.packetID());
|
||||||
@@ -1861,11 +1861,11 @@ public class PacketConsumers {
|
|||||||
if (optionalTextComponent.isPresent()) {
|
if (optionalTextComponent.isPresent()) {
|
||||||
Object textComponent = optionalTextComponent.get();
|
Object textComponent = optionalTextComponent.get();
|
||||||
String json = ComponentUtils.minecraftToJson(textComponent);
|
String json = ComponentUtils.minecraftToJson(textComponent);
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (!tokens.isEmpty()) {
|
if (!tokens.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
||||||
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(
|
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(
|
||||||
@@ -1894,11 +1894,11 @@ public class PacketConsumers {
|
|||||||
Object textComponent = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$value(packedItem);
|
Object textComponent = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$value(packedItem);
|
||||||
if (textComponent == Reflections.instance$Component$empty) break;
|
if (textComponent == Reflections.instance$Component$empty) break;
|
||||||
String json = ComponentUtils.minecraftToJson(textComponent);
|
String json = ComponentUtils.minecraftToJson(textComponent);
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (!tokens.isEmpty()) {
|
if (!tokens.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
||||||
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(entityDataId, serializer, ComponentUtils.adventureToMinecraft(component)));
|
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(entityDataId, serializer, ComponentUtils.adventureToMinecraft(component)));
|
||||||
@@ -1916,11 +1916,11 @@ public class PacketConsumers {
|
|||||||
if (optionalTextComponent.isPresent()) {
|
if (optionalTextComponent.isPresent()) {
|
||||||
Object textComponent = optionalTextComponent.get();
|
Object textComponent = optionalTextComponent.get();
|
||||||
String json = ComponentUtils.minecraftToJson(textComponent);
|
String json = ComponentUtils.minecraftToJson(textComponent);
|
||||||
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
Map<String, Component> tokens = CraftEngine.instance().imageManager().matchTags(json);
|
||||||
if (!tokens.isEmpty()) {
|
if (!tokens.isEmpty()) {
|
||||||
Component component = AdventureHelper.jsonToComponent(json);
|
Component component = AdventureHelper.jsonToComponent(json);
|
||||||
for (Map.Entry<String, String> token : tokens.entrySet()) {
|
for (Map.Entry<String, Component> token : tokens.entrySet()) {
|
||||||
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
|
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(token.getValue()));
|
||||||
}
|
}
|
||||||
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
Object serializer = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$serializer(packedItem);
|
||||||
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(entityDataId, serializer, Optional.of(ComponentUtils.adventureToMinecraft(component))));
|
packedItems.set(i, FastNMS.INSTANCE.constructor$SynchedEntityData$DataValue(entityDataId, serializer, Optional.of(ComponentUtils.adventureToMinecraft(component))));
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
package net.momirealms.craftengine.core.font;
|
package net.momirealms.craftengine.core.font;
|
||||||
|
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.momirealms.craftengine.core.pack.LoadingSequence;
|
import net.momirealms.craftengine.core.pack.LoadingSequence;
|
||||||
import net.momirealms.craftengine.core.pack.Pack;
|
import net.momirealms.craftengine.core.pack.Pack;
|
||||||
import net.momirealms.craftengine.core.pack.ResourceLocation;
|
import net.momirealms.craftengine.core.pack.ResourceLocation;
|
||||||
import net.momirealms.craftengine.core.plugin.CraftEngine;
|
import net.momirealms.craftengine.core.plugin.CraftEngine;
|
||||||
import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser;
|
import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser;
|
||||||
import net.momirealms.craftengine.core.plugin.locale.TranslationManager;
|
import net.momirealms.craftengine.core.plugin.locale.TranslationManager;
|
||||||
import net.momirealms.craftengine.core.util.CharacterUtils;
|
import net.momirealms.craftengine.core.util.*;
|
||||||
import net.momirealms.craftengine.core.util.FormatUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import org.ahocorasick.trie.Token;
|
import org.ahocorasick.trie.Token;
|
||||||
import org.ahocorasick.trie.Trie;
|
import org.ahocorasick.trie.Trie;
|
||||||
|
|
||||||
@@ -31,7 +29,7 @@ public abstract class AbstractFontManager implements FontManager {
|
|||||||
|
|
||||||
private OffsetFont offsetFont;
|
private OffsetFont offsetFont;
|
||||||
private Trie trie;
|
private Trie trie;
|
||||||
private Map<String, String> tagMapper;
|
private Map<String, Component> tagMapper;
|
||||||
|
|
||||||
public AbstractFontManager(CraftEngine plugin) {
|
public AbstractFontManager(CraftEngine plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@@ -54,11 +52,11 @@ public abstract class AbstractFontManager implements FontManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, String> matchTags(String json) {
|
public Map<String, Component> matchTags(String json) {
|
||||||
if (this.trie == null) {
|
if (this.trie == null) {
|
||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
Map<String, String> tags = new HashMap<>();
|
Map<String, Component> tags = new HashMap<>();
|
||||||
for (Token token : this.trie.tokenize(json)) {
|
for (Token token : this.trie.tokenize(json)) {
|
||||||
if (token.isMatch()) {
|
if (token.isMatch()) {
|
||||||
tags.put(token.getFragment(), this.tagMapper.get(token.getFragment()));
|
tags.put(token.getFragment(), this.tagMapper.get(token.getFragment()));
|
||||||
@@ -82,15 +80,18 @@ public abstract class AbstractFontManager implements FontManager {
|
|||||||
this.tagMapper = new HashMap<>();
|
this.tagMapper = new HashMap<>();
|
||||||
for (BitmapImage image : this.images.values()) {
|
for (BitmapImage image : this.images.values()) {
|
||||||
String id = image.id().toString();
|
String id = image.id().toString();
|
||||||
this.tagMapper.put(addImageTag(id), image.miniMessage(0, 0));
|
this.tagMapper.put(imageTag(id), AdventureHelper.miniMessage().deserialize(image.miniMessage(0, 0)));
|
||||||
|
this.tagMapper.put("\\" + imageTag(id), Component.text(imageTag(id)));
|
||||||
for (int i = 0; i < image.rows(); i++) {
|
for (int i = 0; i < image.rows(); i++) {
|
||||||
for (int j = 0; j < image.columns(); j++) {
|
for (int j = 0; j < image.columns(); j++) {
|
||||||
this.tagMapper.put(addImageTag(id + ":" + i + ":" + j), image.miniMessage(i, j));
|
this.tagMapper.put(imageTag(id + ":" + i + ":" + j), AdventureHelper.miniMessage().deserialize(image.miniMessage(i, j)));
|
||||||
|
this.tagMapper.put(imageTag("\\" + id + ":" + i + ":" + j), Component.text(imageTag(id + ":" + i + ":" + j)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = -256; i <= 256; i++) {
|
for (int i = -256; i <= 256; i++) {
|
||||||
this.tagMapper.put("<shift:" + i + ">", this.offsetFont.createOffset(i, FormatUtils::miniMessageFont));
|
this.tagMapper.put("<shift:" + i + ">", AdventureHelper.miniMessage().deserialize(this.offsetFont.createOffset(i, FormatUtils::miniMessageFont)));
|
||||||
|
this.tagMapper.put("\\<shift:" + i + ">", Component.text("<shift:" + i + ">"));
|
||||||
}
|
}
|
||||||
this.trie = Trie.builder()
|
this.trie = Trie.builder()
|
||||||
.ignoreOverlaps()
|
.ignoreOverlaps()
|
||||||
@@ -98,7 +99,7 @@ public abstract class AbstractFontManager implements FontManager {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String addImageTag(String text) {
|
private static String imageTag(String text) {
|
||||||
return "<image:" + text + ">";
|
return "<image:" + text + ">";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.momirealms.craftengine.core.font;
|
package net.momirealms.craftengine.core.font;
|
||||||
|
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.momirealms.craftengine.core.plugin.Manageable;
|
import net.momirealms.craftengine.core.plugin.Manageable;
|
||||||
import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser;
|
import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser;
|
||||||
import net.momirealms.craftengine.core.util.CharacterUtils;
|
import net.momirealms.craftengine.core.util.CharacterUtils;
|
||||||
@@ -64,5 +65,5 @@ public interface FontManager extends Manageable {
|
|||||||
return createOffsets(offset, (raw, font) -> raw);
|
return createOffsets(offset, (raw, font) -> raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, String> matchTags(String json);
|
Map<String, Component> matchTags(String json);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user