mirror of
https://github.com/ViaVersion/ViaBackwards.git
synced 2026-11-05 01:10:18 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07baf2d068 | ||
|
|
53a45d6ab6 | ||
|
|
831da784e6 | ||
|
|
69620f894b | ||
|
|
e5be7a8260 | ||
|
|
a20f6db968 | ||
|
|
a5949b9d4b | ||
|
|
e433fb3066 | ||
|
|
f3be21ed9d | ||
|
|
2a2150beed |
No files matched your search
+1
-1
@@ -1,3 +1,3 @@
|
||||
github: kennytv
|
||||
patreon: kennytv
|
||||
custom: ['https://florianmichael.de/donate']
|
||||
custom: ['https://florianreuth.de/donate']
|
||||
@@ -6,3 +6,9 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
- package-ecosystem: "gradle"
|
||||
cooldown:
|
||||
default-days: 7
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
@@ -11,13 +11,13 @@ jobs:
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Gradle
|
||||
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # 5.0.0
|
||||
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # 5.0.1
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # 5.1.0
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 5.2.0
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
@@ -16,13 +16,13 @@ jobs:
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Gradle
|
||||
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # 5.0.0
|
||||
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # 5.0.1
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # 5.1.0
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 5.2.0
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
name: Update Gradle Wrapper
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 0 * * 0"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
update-gradle-wrapper:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@512b1875f3b6270828abfe77b247d5895a2da1e5 # 2.1.0
|
||||
@@ -46,6 +46,7 @@ public class ViaBackwardsConfig extends Config implements com.viaversion.viaback
|
||||
private boolean suppressEmulationWarnings;
|
||||
private boolean dialogsViaChests;
|
||||
private DialogStyleConfig dialogStyleConfig;
|
||||
private boolean codeOfConductAsDialog;
|
||||
|
||||
public ViaBackwardsConfig(File configFile, Logger logger) {
|
||||
super(configFile, logger);
|
||||
@@ -73,6 +74,7 @@ public class ViaBackwardsConfig extends Config implements com.viaversion.viaback
|
||||
suppressEmulationWarnings = getBoolean("suppress-emulation-warnings", false);
|
||||
dialogsViaChests = getBoolean("dialogs-via-chests", true);
|
||||
dialogStyleConfig = loadDialogStyleConfig(getSection("dialog-style"));
|
||||
codeOfConductAsDialog = getBoolean("code-of-conduct-as-dialog", true);
|
||||
}
|
||||
|
||||
private DialogStyleConfig loadDialogStyleConfig(final ConfigSection section) {
|
||||
@@ -172,6 +174,11 @@ public class ViaBackwardsConfig extends Config implements com.viaversion.viaback
|
||||
return dialogStyleConfig;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean codeOfConductAsDialog() {
|
||||
return codeOfConductAsDialog;
|
||||
}
|
||||
|
||||
@Override
|
||||
public URL getDefaultConfigURL() {
|
||||
return getClass().getClassLoader().getResource("assets/viabackwards/config.yml");
|
||||
|
||||
@@ -126,4 +126,11 @@ public interface ViaBackwardsConfig extends Config {
|
||||
* @return the dialog style configuration
|
||||
*/
|
||||
DialogStyleConfig dialogStyleConfig();
|
||||
|
||||
/**
|
||||
* If true, the code of conduct will be displayed as a dialog for 1.21.7 clients on 1.21.9+ servers.
|
||||
*
|
||||
* @return true if enabled
|
||||
*/
|
||||
boolean codeOfConductAsDialog();
|
||||
}
|
||||
@@ -78,7 +78,7 @@ import java.util.logging.Logger;
|
||||
|
||||
public interface ViaBackwardsPlatform {
|
||||
|
||||
String MINIMUM_VV_VERSION = "5.7.1";
|
||||
String MINIMUM_VV_VERSION = "5.7.2";
|
||||
|
||||
default void init(final File configFile) {
|
||||
init(new ViaBackwardsConfig(configFile, getLogger()));
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ public final class BlockItemPacketRewriter1_20_2 extends BackwardsItemRewriter<C
|
||||
protocol.registerClientbound(ClientboundPackets1_20_2.BLOCK_ENTITY_DATA, wrapper -> {
|
||||
wrapper.passthrough(Types.BLOCK_POSITION1_14); // Position
|
||||
wrapper.passthrough(Types.VAR_INT); // Type
|
||||
wrapper.write(Types.NAMED_COMPOUND_TAG, handleBlockEntity(wrapper.read(Types.COMPOUND_TAG)));
|
||||
wrapper.write(Types.NAMED_COMPOUND_TAG, handleBlockEntity(wrapper.read(Types.TRUSTED_COMPOUND_TAG)));
|
||||
});
|
||||
|
||||
protocol.registerClientbound(ClientboundPackets1_20_2.LEVEL_CHUNK_WITH_LIGHT, wrapper -> {
|
||||
|
||||
+2
-2
@@ -363,13 +363,13 @@ public final class Protocol1_20_3To1_20_2 extends BackwardsProtocol<ClientboundP
|
||||
}
|
||||
|
||||
private void convertComponent(final PacketWrapper wrapper) {
|
||||
final Tag tag = wrapper.read(Types.TAG);
|
||||
final Tag tag = wrapper.read(Types.TRUSTED_TAG);
|
||||
translatableRewriter.processTag(wrapper.user(), tag);
|
||||
wrapper.write(Types.COMPONENT, ComponentUtil.tagToJson(tag));
|
||||
}
|
||||
|
||||
private void convertOptionalComponent(final PacketWrapper wrapper) {
|
||||
final Tag tag = wrapper.read(Types.OPTIONAL_TAG);
|
||||
final Tag tag = wrapper.read(Types.TRUSTED_OPTIONAL_TAG);
|
||||
translatableRewriter.processTag(wrapper.user(), tag);
|
||||
wrapper.write(Types.OPTIONAL_COMPONENT, ComponentUtil.tagToJson(tag));
|
||||
}
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ public final class Protocol1_20_5To1_20_3 extends BackwardsProtocol<ClientboundP
|
||||
});
|
||||
|
||||
registerClientbound(ClientboundPackets1_20_5.SERVER_DATA, wrapper -> {
|
||||
wrapper.passthrough(Types.TAG); // MOTD
|
||||
wrapper.passthrough(Types.TRUSTED_TAG); // MOTD
|
||||
wrapper.passthrough(Types.OPTIONAL_BYTE_ARRAY_PRIMITIVE); // Icon
|
||||
wrapper.write(Types.BOOLEAN, wrapper.user().get(SecureChatStorage.class).enforcesSecureChat());
|
||||
});
|
||||
|
||||
+2
-2
@@ -71,7 +71,7 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem
|
||||
protocol.registerClientbound(ClientboundPackets1_20_5.BLOCK_ENTITY_DATA, wrapper -> {
|
||||
wrapper.passthrough(Types.BLOCK_POSITION1_14); // Position
|
||||
wrapper.passthrough(Types.VAR_INT); // Block entity type
|
||||
final CompoundTag tag = wrapper.passthrough(Types.COMPOUND_TAG);
|
||||
final CompoundTag tag = wrapper.passthrough(Types.TRUSTED_COMPOUND_TAG);
|
||||
blockRewriter.updateBlockEntityTag(tag);
|
||||
});
|
||||
|
||||
@@ -196,7 +196,7 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem
|
||||
wrapper.passthrough(Types.BYTE); // X
|
||||
wrapper.passthrough(Types.BYTE); // Y
|
||||
wrapper.passthrough(Types.BYTE); // Rotation
|
||||
wrapper.passthrough(Types.OPTIONAL_TAG); // Display name
|
||||
wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG); // Display name
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+75
-5
@@ -130,7 +130,6 @@ public final class Protocol1_21_11To1_21_9 extends BackwardsProtocol<Clientbound
|
||||
final CompoundTag attributes = tag.getCompoundTag("attributes");
|
||||
moveAttribute(tag, attributes, "visual/cloud_height", "cloud_height", Function.identity(), null);
|
||||
moveAttribute(tag, attributes, "gameplay/can_start_raid", "has_raids", Function.identity(), trueTag);
|
||||
moveAttribute(tag, attributes, "gameplay/can_start_raid", "has_raids", Function.identity(), trueTag);
|
||||
moveAttribute(tag, attributes, "gameplay/piglins_zombify", "piglin_safe", attributeTag -> ((NumberTag) attributeTag).asBoolean() ? ByteTag.ZERO : trueTag, ByteTag.ZERO);
|
||||
moveAttribute(tag, attributes, "gameplay/respawn_anchor_works", "respawn_anchor_works", Function.identity(), trueTag);
|
||||
moveAttribute(tag, attributes, "gameplay/bed_rule", "bed_works", attributeTag -> {
|
||||
@@ -143,15 +142,86 @@ public final class Protocol1_21_11To1_21_9 extends BackwardsProtocol<Clientbound
|
||||
registryDataRewriter.addHandler("worldgen/biome", (key, tag) -> {
|
||||
final CompoundTag effects = tag.getCompoundTag("effects");
|
||||
|
||||
// Colors
|
||||
moveAttribute(effects, effects, "water_color", "water_color", this::mapColor, new IntTag(4159204));
|
||||
moveAttribute(effects, effects, "foliage_color", "foliage_color", this::mapColor, null);
|
||||
moveAttribute(effects, effects, "dry_foliage_color", "dry_foliage_color", this::mapColor, null);
|
||||
moveAttribute(effects, effects, "grass_color", "grass_color", this::mapColor, null);
|
||||
|
||||
final CompoundTag attributes = tag.removeUnchecked("attributes");
|
||||
moveAttribute(effects, attributes, "visual/sky_color", "sky_color", this::mapColor, new IntTag(0));
|
||||
moveAttribute(effects, attributes, "visual/water_fog_color", "water_fog_color", this::mapColor, new IntTag(-16448205));
|
||||
moveAttribute(effects, attributes, "visual/fog_color", "fog_color", this::mapColor, new IntTag(Key.equals(key, "the_end") ? END_FOG_COLOR : OVERWORLD_FOG_COLOR)); // overworld fog color as default
|
||||
|
||||
moveAttribute(effects, effects, "water_color", "water_color", this::mapColor, new IntTag(4159204));
|
||||
moveAttribute(effects, effects, "foliage_color", "foliage_color", this::mapColor, null);
|
||||
moveAttribute(effects, effects, "dry_foliage_color", "dry_foliage_color", this::mapColor, null);
|
||||
moveAttribute(effects, effects, "grass_color", "grass_color", this::mapColor, null);
|
||||
if (attributes == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Music and sounds
|
||||
final CompoundTag backgroundMusic = TagUtil.getNamespacedCompoundTag(attributes, "audio/background_music");
|
||||
if (backgroundMusic != null) {
|
||||
final CompoundTag def = backgroundMusic.getCompoundTag("default");
|
||||
if (def != null) {
|
||||
final CompoundTag data = new CompoundTag();
|
||||
final Tag maxDelay = def.get("max_delay");
|
||||
final Tag minDelay = def.get("min_delay");
|
||||
final Tag sound = def.get("sound");
|
||||
if (maxDelay != null) {
|
||||
data.put("max_delay", maxDelay);
|
||||
}
|
||||
if (minDelay != null) {
|
||||
data.put("min_delay", minDelay);
|
||||
}
|
||||
if (sound != null) {
|
||||
data.put("sound", sound);
|
||||
}
|
||||
|
||||
// Assume this by default
|
||||
if (!data.contains("replace_current_music")) {
|
||||
data.putBoolean("replace_current_music", false);
|
||||
}
|
||||
|
||||
final CompoundTag entry = new CompoundTag();
|
||||
entry.put("data", data);
|
||||
entry.putInt("weight", 1);
|
||||
|
||||
final ListTag<CompoundTag> musicList = new ListTag<>(CompoundTag.class);
|
||||
musicList.add(entry);
|
||||
effects.put("music", musicList);
|
||||
}
|
||||
}
|
||||
|
||||
final CompoundTag ambientSounds = TagUtil.getNamespacedCompoundTag(attributes, "audio/ambient_sounds");
|
||||
if (ambientSounds != null) {
|
||||
final Tag loop = ambientSounds.get("loop");
|
||||
if (loop != null) {
|
||||
effects.put("ambient_sound", loop);
|
||||
}
|
||||
|
||||
final Tag mood = ambientSounds.get("mood");
|
||||
if (mood != null) {
|
||||
effects.put("mood_sound", mood);
|
||||
}
|
||||
|
||||
final Tag additions = ambientSounds.get("additions");
|
||||
if (additions != null) {
|
||||
effects.put("additions_sound", additions);
|
||||
}
|
||||
}
|
||||
|
||||
// Particles
|
||||
final ListTag<CompoundTag> ambientParticles = TagUtil.getNamespacedCompoundTagList(attributes, "visual/ambient_particles");
|
||||
if (ambientParticles != null && !ambientParticles.isEmpty()) {
|
||||
final CompoundTag first = ambientParticles.get(0);
|
||||
final Tag probability = first.get("probability");
|
||||
final CompoundTag particle = first.getCompoundTag("particle");
|
||||
|
||||
// Single particle
|
||||
final CompoundTag options = new CompoundTag();
|
||||
options.put("probability", probability);
|
||||
options.put("options", particle);
|
||||
effects.put("particle", options);
|
||||
}
|
||||
});
|
||||
registryDataRewriter.addHandler("enchantment", (key, tag) -> {
|
||||
final CompoundTag effects = tag.getCompoundTag("effects");
|
||||
|
||||
+1
-1
@@ -402,7 +402,7 @@ public final class EntityPacketRewriter1_21_2 extends EntityRewriter<Clientbound
|
||||
wrapper.passthrough(Types.VAR_INT); // Latency
|
||||
}
|
||||
if (actions.get(5)) {
|
||||
final Tag displayName = wrapper.passthrough(Types.OPTIONAL_TAG);
|
||||
final Tag displayName = wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG);
|
||||
protocol.getComponentRewriter().processTag(wrapper.user(), displayName);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@ public final class Protocol1_21_4To1_21_2 extends BackwardsProtocol<ClientboundP
|
||||
wrapper.passthrough(Types.VAR_INT); // Latency
|
||||
}
|
||||
if (actions.get(5)) {
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.OPTIONAL_TAG));
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG));
|
||||
}
|
||||
if (actions.get(6)) {
|
||||
wrapper.passthrough(Types.VAR_INT); // List order
|
||||
|
||||
+3
-3
@@ -154,7 +154,7 @@ public final class Protocol1_21_5To1_21_4 extends BackwardsProtocol<ClientboundP
|
||||
}
|
||||
}
|
||||
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.OPTIONAL_TAG)); // Unsigned content
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG)); // Unsigned content
|
||||
|
||||
final int filterMaskType = wrapper.passthrough(Types.VAR_INT);
|
||||
if (filterMaskType == 2) { // Partially filtered
|
||||
@@ -162,8 +162,8 @@ public final class Protocol1_21_5To1_21_4 extends BackwardsProtocol<ClientboundP
|
||||
}
|
||||
|
||||
wrapper.passthrough(ChatType.TYPE); // Chat Type
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TAG)); // Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.OPTIONAL_TAG)); // Target Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_TAG)); // Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG)); // Target Name
|
||||
});
|
||||
registerServerbound(ServerboundPackets1_21_4.CHAT_COMMAND_SIGNED, wrapper -> {
|
||||
wrapper.passthrough(Types.STRING); // Command
|
||||
|
||||
+2
-2
@@ -225,8 +225,8 @@ public final class BlockItemPacketRewriter1_21_5 extends BackwardsStructuredItem
|
||||
|
||||
// Display data
|
||||
if (wrapper.passthrough(Types.BOOLEAN)) {
|
||||
final Tag title = wrapper.passthrough(Types.TAG);
|
||||
final Tag description = wrapper.passthrough(Types.TAG);
|
||||
final Tag title = wrapper.passthrough(Types.TRUSTED_TAG);
|
||||
final Tag description = wrapper.passthrough(Types.TRUSTED_TAG);
|
||||
final ComponentRewriter componentRewriter = protocol.getComponentRewriter();
|
||||
if (componentRewriter != null) {
|
||||
componentRewriter.processTag(wrapper.user(), title);
|
||||
|
||||
+3
-3
@@ -169,7 +169,7 @@ public final class Protocol1_21_6To1_21_5 extends BackwardsProtocol<ClientboundP
|
||||
final int id = wrapper.read(Types.VAR_INT) - 1;
|
||||
CompoundTag tag;
|
||||
if (id == -1) {
|
||||
tag = (CompoundTag) wrapper.read(Types.TAG);
|
||||
tag = (CompoundTag) wrapper.read(Types.TRUSTED_TAG);
|
||||
} else {
|
||||
tag = registryAndTags.fromRegistry(id);
|
||||
}
|
||||
@@ -185,7 +185,7 @@ public final class Protocol1_21_6To1_21_5 extends BackwardsProtocol<ClientboundP
|
||||
|
||||
final RegistryAndTags registryAndTags = wrapper.user().get(RegistryAndTags.class);
|
||||
final ServerLinks serverLinks = wrapper.user().get(ServerLinks.class);
|
||||
final CompoundTag tag = (CompoundTag) wrapper.read(Types.TAG);
|
||||
final CompoundTag tag = (CompoundTag) wrapper.read(Types.TRUSTED_TAG);
|
||||
|
||||
final DialogViewProvider provider = Via.getManager().getProviders().get(DialogViewProvider.class);
|
||||
provider.openDialog(wrapper.user(), new Dialog(registryAndTags, serverLinks, tag));
|
||||
@@ -317,7 +317,7 @@ public final class Protocol1_21_6To1_21_5 extends BackwardsProtocol<ClientboundP
|
||||
final String url = wrapper.passthrough(Types.STRING);
|
||||
serverLinks.storeLink(id, url);
|
||||
} else {
|
||||
final Tag tag = wrapper.passthrough(Types.TAG);
|
||||
final Tag tag = wrapper.passthrough(Types.TRUSTED_TAG);
|
||||
final String url = wrapper.passthrough(Types.STRING);
|
||||
serverLinks.storeLink(tag, url);
|
||||
}
|
||||
|
||||
+2
-2
@@ -113,7 +113,7 @@ public class ChestDialogViewProvider implements DialogViewProvider {
|
||||
final PacketWrapper openScreen = PacketWrapper.create(ClientboundPackets1_21_5.OPEN_SCREEN, connection);
|
||||
openScreen.write(Types.VAR_INT, storage.containerId());
|
||||
openScreen.write(Types.VAR_INT, 2); // Container type id
|
||||
openScreen.write(Types.TAG, handleTag(connection, storage.dialog().title()));
|
||||
openScreen.write(Types.TRUSTED_TAG, handleTag(connection, storage.dialog().title()));
|
||||
openScreen.send(Protocol1_21_6To1_21_5.class);
|
||||
updateDialog(connection, storage.dialog());
|
||||
}
|
||||
@@ -457,7 +457,7 @@ public class ChestDialogViewProvider implements DialogViewProvider {
|
||||
final PacketWrapper openScreen = PacketWrapper.create(ClientboundPackets1_21_5.OPEN_SCREEN, connection);
|
||||
openScreen.write(Types.VAR_INT, storage.containerId());
|
||||
openScreen.write(Types.VAR_INT, 8); // Container type id
|
||||
openScreen.write(Types.TAG, title);
|
||||
openScreen.write(Types.TRUSTED_TAG, title);
|
||||
openScreen.send(Protocol1_21_6To1_21_5.class);
|
||||
|
||||
final Item[] items = new Item[1];
|
||||
|
||||
+5
-3
@@ -18,6 +18,7 @@
|
||||
package com.viaversion.viabackwards.protocol.v1_21_9to1_21_7;
|
||||
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viabackwards.ViaBackwards;
|
||||
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
||||
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
|
||||
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
|
||||
@@ -139,8 +140,9 @@ public final class Protocol1_21_9To1_21_7 extends BackwardsProtocol<ClientboundP
|
||||
});
|
||||
|
||||
registerClientbound(ClientboundConfigurationPackets1_21_9.CODE_OF_CONDUCT, ClientboundConfigurationPackets1_21_6.SHOW_DIALOG, wrapper -> {
|
||||
if (wrapper.user().getProtocolInfo().protocolVersion().olderThanOrEqualTo(ProtocolVersion.v1_21_5)) {
|
||||
// TODO Remove once we implement dialogs during the configuration state in 1.21.6->1.21.5
|
||||
// TODO Remove once we implement dialogs during the configuration state in 1.21.6->1.21.5
|
||||
final boolean supportsDialogs = wrapper.user().getProtocolInfo().protocolVersion().newerThan(ProtocolVersion.v1_21_5);
|
||||
if (!ViaBackwards.getConfig().codeOfConductAsDialog() || !supportsDialogs) {
|
||||
wrapper.cancel();
|
||||
|
||||
final PacketWrapper acceptPacket = wrapper.create(ServerboundConfigurationPackets1_21_9.ACCEPT_CODE_OF_CONDUCT);
|
||||
@@ -181,7 +183,7 @@ public final class Protocol1_21_9To1_21_7 extends BackwardsProtocol<ClientboundP
|
||||
no.put("action", disconnectAction);
|
||||
tag.put("no", no);
|
||||
|
||||
wrapper.write(Types.TAG, tag);
|
||||
wrapper.write(Types.TRUSTED_TAG, tag);
|
||||
});
|
||||
|
||||
registerServerbound(ServerboundConfigurationPackets1_21_6.CUSTOM_CLICK_ACTION, wrapper -> {
|
||||
|
||||
+5
-5
@@ -277,7 +277,7 @@ public final class EntityPacketRewriter1_21_9 extends EntityRewriter<Clientbound
|
||||
playerInfo.write(Types.VAR_INT, 0); // Gamemode
|
||||
playerInfo.write(Types.BOOLEAN, false); // Listed
|
||||
playerInfo.write(Types.VAR_INT, 0); // Latency
|
||||
playerInfo.write(Types.OPTIONAL_TAG, null);
|
||||
playerInfo.write(Types.TRUSTED_OPTIONAL_TAG, null);
|
||||
playerInfo.write(Types.VAR_INT, 1000); // List order
|
||||
playerInfo.write(Types.BOOLEAN, true); // Show hat
|
||||
playerInfo.send(Protocol1_21_9To1_21_7.class);
|
||||
@@ -292,7 +292,7 @@ public final class EntityPacketRewriter1_21_9 extends EntityRewriter<Clientbound
|
||||
playerInfo.write(Types.PROFILE_ACTIONS_ENUM1_21_4, actions);
|
||||
playerInfo.write(Types.VAR_INT, 1);
|
||||
playerInfo.write(Types.UUID, mannequinData.uuid());
|
||||
playerInfo.write(Types.OPTIONAL_TAG, displayName);
|
||||
playerInfo.write(Types.TRUSTED_OPTIONAL_TAG, displayName);
|
||||
playerInfo.send(Protocol1_21_9To1_21_7.class);
|
||||
|
||||
sendPlayerTeamDisplayName(connection, mannequinData, displayName);
|
||||
@@ -304,13 +304,13 @@ public final class EntityPacketRewriter1_21_9 extends EntityRewriter<Clientbound
|
||||
final PacketWrapper addTeam = PacketWrapper.create(ClientboundPackets1_21_6.SET_PLAYER_TEAM, connection);
|
||||
addTeam.write(Types.STRING, mannequinData.name());
|
||||
addTeam.write(Types.BYTE, mannequinData.hasTeam() ? (byte) 2 : 0); // Mode
|
||||
addTeam.write(Types.TAG, nonNullDisplayName); // Display Name
|
||||
addTeam.write(Types.TRUSTED_TAG, nonNullDisplayName); // Display Name
|
||||
addTeam.write(Types.BYTE, (byte) 0); // Flags
|
||||
addTeam.write(Types.VAR_INT, 0); // Nametag visibility
|
||||
addTeam.write(Types.VAR_INT, 0); // Collision rule
|
||||
addTeam.write(Types.VAR_INT, 15); // Color
|
||||
addTeam.write(Types.TAG, nonNullDisplayName); // Prefix
|
||||
addTeam.write(Types.TAG, new StringTag("")); // Suffix
|
||||
addTeam.write(Types.TRUSTED_TAG, nonNullDisplayName); // Prefix
|
||||
addTeam.write(Types.TRUSTED_TAG, new StringTag("")); // Suffix
|
||||
if (!mannequinData.hasTeam()) {
|
||||
addTeam.write(Types.STRING_ARRAY, new String[]{mannequinData.name()});
|
||||
mannequinData.setHasTeam(true);
|
||||
|
||||
+4
-4
@@ -110,7 +110,7 @@ public final class Protocol1_21To1_20_5 extends BackwardsProtocol<ClientboundPac
|
||||
cancelClientbound(ClientboundConfigurationPackets1_21.SERVER_LINKS);
|
||||
|
||||
registerClientbound(ClientboundPackets1_21.DISGUISED_CHAT, wrapper -> {
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TAG)); // Message
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_TAG)); // Message
|
||||
|
||||
final Holder<ChatType> chatType = wrapper.read(ChatType.TYPE);
|
||||
if (chatType.isDirect()) {
|
||||
@@ -137,7 +137,7 @@ public final class Protocol1_21To1_20_5 extends BackwardsProtocol<ClientboundPac
|
||||
}
|
||||
}
|
||||
|
||||
wrapper.passthrough(Types.OPTIONAL_TAG); // Unsigned content
|
||||
wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG); // Unsigned content
|
||||
|
||||
final int filterMaskType = wrapper.passthrough(Types.VAR_INT);
|
||||
if (filterMaskType == 2) {
|
||||
@@ -152,8 +152,8 @@ public final class Protocol1_21To1_20_5 extends BackwardsProtocol<ClientboundPac
|
||||
wrapper.write(Types.VAR_INT, chatType.id());
|
||||
}
|
||||
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TAG)); // Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.OPTIONAL_TAG)); // Target Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_TAG)); // Name
|
||||
translatableRewriter.processTag(wrapper.user(), wrapper.passthrough(Types.TRUSTED_OPTIONAL_TAG)); // Target Name
|
||||
});
|
||||
|
||||
registerClientbound(ClientboundPackets1_21.UPDATE_ATTRIBUTES, wrapper -> {
|
||||
|
||||
@@ -63,3 +63,8 @@ dialog-style:
|
||||
previous-option: "&9Right click: &6Go to previous option"
|
||||
set-text: "&9Left click/close: &6Set text"
|
||||
close: "&9Left click: &6Close"
|
||||
#
|
||||
# If enabled, the code of conduct will be shown as a dialog for 1.21.7 clients on 1.21.9+ servers.
|
||||
# Note that this is not supported for clients below 1.21.6 right now due to missing support for
|
||||
# dialogs during the configuration phase.
|
||||
code-of-conduct-as-dialog: true
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
projectVersion=5.7.1
|
||||
projectVersion=5.7.2
|
||||
|
||||
# Smile emoji (note that modrinth may not have added the version on release yet)
|
||||
mcVersions=1.21.11, 1.21.10, 1.21.9, 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4, 1.21.3, 1.21.2, 1.21.1, 1.21, 1.20.6, 1.20.5, 1.20.4, 1.20.3, 1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14, 1.13.2, 1.13.1, 1.13, 1.12.2, 1.12.1, 1.12, 1.11.2, 1.11.1, 1.11, 1.10.2, 1.10.1, 1.10
|
||||
mcVersionRange=1.10-1.21.11
|
||||
velocityVersion=3.4
|
||||
velocityVersion=3.4-3.5
|
||||
|
||||
org.gradle.configureondemand=true
|
||||
org.gradle.parallel=true
|
||||
|
||||
@@ -3,7 +3,7 @@ metadata.format.version = "1.1"
|
||||
[versions]
|
||||
|
||||
# ViaVersion
|
||||
viaver = "5.7.1"
|
||||
viaver = "5.7.2-SNAPSHOT"
|
||||
|
||||
# Common provided
|
||||
netty = "4.0.20.Final"
|
||||
@@ -14,7 +14,7 @@ checkerQual = "3.52.1"
|
||||
|
||||
# Platforms
|
||||
paper = "1.16.5-R0.1-SNAPSHOT"
|
||||
velocity = "3.1.1"
|
||||
velocity = "3.4.0"
|
||||
fabricLoader = "0.11.6"
|
||||
viaProxy = "[3.0.0,4.0.0)"
|
||||
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,7 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||
distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
},
|
||||
{
|
||||
"id": "viaversion",
|
||||
"version": "[5.7.1-SNAPSHOT,)"
|
||||
"version": "[5.7.2-SNAPSHOT,)"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -48,6 +48,7 @@ public class VelocityPlugin implements ViaBackwardsPlatform {
|
||||
@DataDirectory
|
||||
private Path configPath;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Subscribe(order = PostOrder.LATE)
|
||||
public void onProxyStart(ProxyInitializeEvent event) {
|
||||
this.logger = new LoggerWrapper(loggerSlf4j);
|
||||
|
||||
Reference in new issue
Block a user