Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-28 00:50:13 +01:00
Cherry-pick some changes from dev
Dieser Commit ist enthalten in:
Ursprung
641171a14f
Commit
8aa7898755
@ -18,6 +18,7 @@
|
|||||||
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2;
|
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import com.viaversion.viaversion.api.Via;
|
import com.viaversion.viaversion.api.Via;
|
||||||
import com.viaversion.viaversion.libs.kyori.adventure.text.Component;
|
import com.viaversion.viaversion.libs.kyori.adventure.text.Component;
|
||||||
@ -28,9 +29,15 @@ import com.viaversion.viaversion.libs.kyori.adventure.text.serializer.legacy.Leg
|
|||||||
|
|
||||||
public final class ChatRewriter {
|
public final class ChatRewriter {
|
||||||
public static final GsonComponentSerializer HOVER_GSON_SERIALIZER = GsonComponentSerializer.builder().emitLegacyHoverEvent().legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get()).build();
|
public static final GsonComponentSerializer HOVER_GSON_SERIALIZER = GsonComponentSerializer.builder().emitLegacyHoverEvent().legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get()).build();
|
||||||
public static final JsonElement EMPTY_COMPONENT = GsonComponentSerializer.gson().serializeToTree(Component.empty());
|
|
||||||
|
|
||||||
public static void init() {
|
public static JsonObject emptyComponent() {
|
||||||
|
final JsonObject object = new JsonObject();
|
||||||
|
object.addProperty("text", "");
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String emptyComponentString() {
|
||||||
|
return "{\"text\":\"\"}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String legacyTextToJsonString(String message, boolean itemData) {
|
public static String legacyTextToJsonString(String message, boolean itemData) {
|
||||||
|
@ -26,8 +26,6 @@ import com.viaversion.viaversion.api.type.Type;
|
|||||||
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
||||||
import com.viaversion.viaversion.api.type.types.version.Types1_19_4;
|
import com.viaversion.viaversion.api.type.types.version.Types1_19_4;
|
||||||
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
||||||
import com.viaversion.viaversion.libs.kyori.adventure.text.Component;
|
|
||||||
import com.viaversion.viaversion.libs.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
|
||||||
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ChatRewriter;
|
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ChatRewriter;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ClientboundPackets1_19_3;
|
import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ClientboundPackets1_19_3;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ServerboundPackets1_19_3;
|
import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ServerboundPackets1_19_3;
|
||||||
@ -78,11 +76,14 @@ public final class Protocol1_19_4To1_19_3 extends AbstractProtocol<ClientboundPa
|
|||||||
if (element != null) {
|
if (element != null) {
|
||||||
wrapper.write(Type.COMPONENT, element);
|
wrapper.write(Type.COMPONENT, element);
|
||||||
} else {
|
} else {
|
||||||
wrapper.write(Type.COMPONENT, ChatRewriter.EMPTY_COMPONENT);
|
wrapper.write(Type.COMPONENT, ChatRewriter.emptyComponent());
|
||||||
}
|
}
|
||||||
|
|
||||||
final String iconBase64 = wrapper.read(Type.OPTIONAL_STRING);
|
final String iconBase64 = wrapper.read(Type.OPTIONAL_STRING);
|
||||||
final byte[] iconBytes = iconBase64 != null ? Base64.getDecoder().decode(iconBase64.substring("data:image/png;base64,".length()).getBytes(StandardCharsets.UTF_8)) : null;
|
byte[] iconBytes = null;
|
||||||
|
if (iconBase64 != null && iconBase64.startsWith("data:image/png;base64,")) {
|
||||||
|
iconBytes = Base64.getDecoder().decode(iconBase64.substring("data:image/png;base64,".length()).getBytes(StandardCharsets.UTF_8));
|
||||||
|
}
|
||||||
wrapper.write(Type.OPTIONAL_BYTE_ARRAY_PRIMITIVE, iconBytes);
|
wrapper.write(Type.OPTIONAL_BYTE_ARRAY_PRIMITIVE, iconBytes);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -30,11 +30,8 @@ public class RecipeRewriter1_19_4<C extends ClientboundPacketType> extends Recip
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCraftingShapeless(final PacketWrapper wrapper) throws Exception {
|
public void handleCraftingShaped(final PacketWrapper wrapper) throws Exception {
|
||||||
wrapper.passthrough(Type.STRING); // Group
|
super.handleCraftingShaped(wrapper);
|
||||||
wrapper.passthrough(Type.VAR_INT); // Crafting book category
|
|
||||||
handleIngredients(wrapper);
|
|
||||||
rewrite(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Result
|
|
||||||
wrapper.passthrough(Type.BOOLEAN); // Show notification
|
wrapper.passthrough(Type.BOOLEAN); // Show notification
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,9 @@ import com.viaversion.viaversion.api.type.Type;
|
|||||||
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
||||||
import com.viaversion.viaversion.api.type.types.version.Types1_19;
|
import com.viaversion.viaversion.api.type.types.version.Types1_19;
|
||||||
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
||||||
import com.viaversion.viaversion.libs.kyori.adventure.text.Component;
|
|
||||||
import com.viaversion.viaversion.libs.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
|
||||||
import com.viaversion.viaversion.protocols.base.ClientboundLoginPackets;
|
import com.viaversion.viaversion.protocols.base.ClientboundLoginPackets;
|
||||||
import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets;
|
import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ChatRewriter;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17;
|
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.data.MappingData;
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.data.MappingData;
|
||||||
@ -124,7 +123,7 @@ public final class Protocol1_19To1_18_2 extends AbstractProtocol<ClientboundPack
|
|||||||
if (!isTextComponentNull(component)) {
|
if (!isTextComponentNull(component)) {
|
||||||
wrapper.write(Type.COMPONENT, component);
|
wrapper.write(Type.COMPONENT, component);
|
||||||
} else {
|
} else {
|
||||||
wrapper.write(Type.COMPONENT, GsonComponentSerializer.gson().serializeToTree(Component.empty()));
|
wrapper.write(Type.COMPONENT, ChatRewriter.emptyComponent());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
registerClientbound(ClientboundPackets1_18.TITLE_TEXT, titleHandler);
|
registerClientbound(ClientboundPackets1_18.TITLE_TEXT, titleHandler);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren