Merge remote-tracking branch 'origin/main' into 1.20-recode

This commit is contained in:
FlorianMichael 2023-05-05 20:10:35 +02:00
commit 193b0c2735
12 changed files with 99 additions and 162 deletions

View File

@ -0,0 +1,6 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value="This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus&#10;Copyright (C) 2021-&amp;#36;today.year FlorianMichael/EnZaXD and contributors&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU General Public License as published by&#10;the Free Software Foundation, either version 3 of the License, or&#10;(at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU General Public License for more details.&#10;&#10;You should have received a copy of the GNU General Public License&#10;along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;." />
<option name="myName" value="GPL-3.0" />
</copyright>
</component>

View File

@ -0,0 +1,10 @@
<component name="CopyrightManager">
<settings>
<module2copyright>
<element module="Project Files" copyright="GPL-3.0" />
</module2copyright>
<LanguageOptions name="__TEMPLATE__">
<option name="addBlankAfter" value="false" />
</LanguageOptions>
</settings>
</component>

View File

@ -19,13 +19,13 @@ raknet_transport_version=1.0.0.CR1-SNAPSHOT
classic4j_version=1.2.0
# viaversion (and required) libs
viaversion_version=4.7.0-23w17a-SNAPSHOT
viabackwards_version=4.7.0-23w17a-SNAPSHOT
viaversion_version=4.7.0-23w18a-SNAPSHOT
viabackwards_version=4.7.0-23w18a-SNAPSHOT
snake_yml_version=2.0
# raphimc libs
vialegacy_version=2.2.16
viaaprilfools_version=2.0.6
viaaprilfools_version=2.0.7-SNAPSHOT
viabedrock_version=0.0.1-SNAPSHOT
minecraftauth_version=2.0.1

View File

@ -19,40 +19,28 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.packet;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerAbilities;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.network.packet.c2s.play.UpdatePlayerAbilitiesC2SPacket;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(UpdatePlayerAbilitiesC2SPacket.class)
public class MixinUpdatePlayerAbilitiesC2SPacket {
@Shadow
@Final
private boolean flying;
@Inject(method = "write", locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraft/network/PacketByteBuf;writeByte(I)Lio/netty/buffer/ByteBuf;", shift = At.Shift.BEFORE), cancellable = true)
public void injectWrite(PacketByteBuf buf, CallbackInfo ci) {
final PlayerAbilities abilities = MinecraftClient.getInstance().player.getAbilities();
byte b = 0;
@Redirect(method = "write", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/PacketByteBuf;writeByte(I)Lio/netty/buffer/ByteBuf;"))
public ByteBuf implementFlags(PacketByteBuf instance, int value) {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(ProtocolVersion.v1_15_2)) {
if (this.flying) b = (byte) (b | 2); // Minecraft
final PlayerAbilities playerAbilities = MinecraftClient.getInstance().player.getAbilities();
if (abilities.invulnerable) b |= 1;
if (abilities.allowFlying) b |= 4;
if (abilities.creativeMode) b |= 8; // Protocol Hack Fixes
buf.writeByte(b);
ci.cancel();
if (playerAbilities.invulnerable) value |= 1;
if (playerAbilities.allowFlying) value |= 4;
if (playerAbilities.creativeMode) value |= 8;
}
return instance.writeByte(value);
}
}

View File

@ -1,54 +0,0 @@
/*
* This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus
* Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaaprilfools;
import com.viaversion.viabackwards.api.BackwardsProtocol;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ClientboundPackets1_16;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPackets1_16;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerAbilities;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.ClientboundPackets20w14infinite;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.Protocol1_16to20w14infinite;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.ServerboundPackets20w14infinite;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(value = Protocol1_16to20w14infinite.class, remap = false)
public class MixinProtocol1_16to20w14infinite extends BackwardsProtocol<ClientboundPackets20w14infinite, ClientboundPackets1_16, ServerboundPackets20w14infinite, ServerboundPackets1_16> {
@Inject(method = "registerPackets", at = @At("RETURN"))
public void fixPlayerAbilities(CallbackInfo ci) {
this.registerServerbound(ServerboundPackets1_16.PLAYER_ABILITIES, ServerboundPackets20w14infinite.PLAYER_ABILITIES, new PacketHandlers() {
@Override
public void register() {
handler(wrapper -> {
wrapper.passthrough(Type.BYTE);
final PlayerAbilities abilities = MinecraftClient.getInstance().player.getAbilities();
wrapper.write(Type.FLOAT, abilities.getFlySpeed());
wrapper.write(Type.FLOAT, abilities.getWalkSpeed());
});
}
}, true);
}
}

View File

@ -45,7 +45,7 @@ public abstract class MixinProtocolVersion {
viafabricplus_remaps.put("1.16.4/5", new Pair<>("1.16.4-1.16.5", null));
viafabricplus_remaps.put("1.18/1.18.1", new Pair<>("1.18-1.18.1", null));
viafabricplus_remaps.put("1.19.1/2", new Pair<>("1.19.1-1.19.2", null));
viafabricplus_remaps.put("1.20", new Pair<>("23w17a", null));
viafabricplus_remaps.put("1.20", new Pair<>("23w18a", null));
}
@Redirect(method = "<clinit>", at = @At(value = "INVOKE", target = "Lcom/viaversion/viaversion/api/protocol/version/ProtocolVersion;register(ILjava/lang/String;)Lcom/viaversion/viaversion/api/protocol/version/ProtocolVersion;"))

View File

@ -1,52 +0,0 @@
/*
* This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus
* Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_16to1_15_2;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ClientboundPackets1_16;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPackets1_16;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerAbilities;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Protocol1_16To1_15_2.class)
public class MixinProtocol1_16To1_15_2 extends AbstractProtocol<ClientboundPackets1_15, ClientboundPackets1_16, ServerboundPackets1_14, ServerboundPackets1_16> {
@Inject(method = "registerPackets", at = @At("RETURN"), remap = false)
public void injectRegisterPackets(CallbackInfo ci) {
this.registerServerbound(ServerboundPackets1_16.PLAYER_ABILITIES, ServerboundPackets1_14.PLAYER_ABILITIES, new PacketHandlers() {
public void register() {
this.handler((wrapper) -> {
wrapper.passthrough(Type.BYTE);
final PlayerAbilities abilities = MinecraftClient.getInstance().player.getAbilities();
wrapper.write(Type.FLOAT, abilities.getFlySpeed());
wrapper.write(Type.FLOAT, abilities.getWalkSpeed());
});
}
}, true);
}
}

View File

@ -29,6 +29,7 @@ import com.viaversion.viaversion.libs.gson.JsonArray;
import com.viaversion.viaversion.libs.gson.JsonObject;
import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.PlayerLookTargetProvider;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.provider.PlayerAbilitiesProvider;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.HandItemProvider;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider;
import de.florianmichael.viafabricplus.ViaFabricPlus;
@ -48,6 +49,7 @@ import de.florianmichael.viafabricplus.protocolhack.provider.vialegacy.*;
import de.florianmichael.viafabricplus.protocolhack.provider.viaversion.ViaFabricPlusHandItemProvider;
import de.florianmichael.viafabricplus.protocolhack.provider.viaversion.ViaFabricPlusMovementTransmitterProvider;
import de.florianmichael.viafabricplus.protocolhack.provider.vialoadingbase.ViaFabricPlusVLBBaseVersionProvider;
import de.florianmichael.viafabricplus.protocolhack.provider.viaversion.ViaFabricPlusPlayerAbilitiesProvider;
import de.florianmichael.viafabricplus.protocolhack.provider.viaversion.ViaFabricPlusPlayerLookTargetProvider;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import de.florianmichael.vialoadingbase.model.ComparableProtocolVersion;
@ -173,6 +175,7 @@ public class ProtocolHack {
providers.use(MovementTransmitterProvider.class, new ViaFabricPlusMovementTransmitterProvider());
providers.use(HandItemProvider.class, new ViaFabricPlusHandItemProvider());
providers.use(PlayerLookTargetProvider.class, new ViaFabricPlusPlayerLookTargetProvider());
providers.use(PlayerAbilitiesProvider.class, new ViaFabricPlusPlayerAbilitiesProvider());
providers.use(CommandArgumentsProvider.class, new ViaFabricPlusCommandArgumentsProvider());

View File

@ -0,0 +1,35 @@
/*
* This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus
* Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.florianmichael.viafabricplus.protocolhack.provider.viaversion;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.provider.PlayerAbilitiesProvider;
import net.minecraft.client.MinecraftClient;
public class ViaFabricPlusPlayerAbilitiesProvider extends PlayerAbilitiesProvider {
@Override
public float getFlyingSpeed(UserConnection connection) {
return MinecraftClient.getInstance().player.getAbilities().getFlySpeed();
}
@Override
public float getWalkingSpeed(UserConnection connection) {
return MinecraftClient.getInstance().player.getAbilities().getWalkSpeed();
}
}

View File

@ -20,8 +20,11 @@
"general.viafabricplus.creative": "Usuwaj niedostępne przedmioty z ekwipunku trybu kreatywnego",
"general.viafabricplus.classiccommands": "Zezwalaj na używanie klasycznego protokołu komend",
"general.viafabricplus.protocolsync": "Automatycznie zmieniaj ustawienia na podstawie obecnej wersji gry",
"general.viafabricplus.autodetect": "Automatycznie wykrywaj wersję gry",
"experimental.viafabricplus.chunkborderfix": "Napraw granice chunków",
"experimental.viafabricplus.watermovement": "Wykrywanie krawędzi ruchu wody",
"experimental.viafabricplus.fontcachefix": "Napraw pamięć tymczasową czcionek",
"debug.viafabricplus.sequence": "Wyłącz sekwencjonowanie",
"debug.viafabricplus.merchant": "Wygładź ekrany kupców",

View File

@ -1,7 +1,7 @@
{
"words.viafabricplus.settings": "设置",
"words.viafabricplus.on": "开",
"words.viafabricplus.off": "关",
"words.viafabricplus.on": "开",
"words.viafabricplus.off": "关",
"words.viafabricplus.lt": "左上",
"words.viafabricplus.rt": "右上",
"words.viafabricplus.lb": "左下",
@ -13,29 +13,29 @@
"words.viafabricplus.reset": "重置",
"words.viafabricplus.copy": "复制代码",
"general.viafabricplus.secret": "显示“Super Secret Settings”超级秘密设置",
"general.viafabricplus.extrainformation": "在 \u00a76[调试]\u00a7r (F3) 中显示额外信息",
"general.viafabricplus.classicloading": "在连接服务器时使用旧版进度显示",
"general.viafabricplus.secret": "显示 “Super Secret Settings”超级秘密设置",
"general.viafabricplus.extrainformation": "在\u00a76 [调试]\u00a7r 中显示额外信息",
"general.viafabricplus.classicloading": "在连接服务器时使用旧版加载进度条",
"general.viafabricplus.main": "模组按钮位置",
"general.viafabricplus.creative": "从创造模式选项移除不可用的物品",
"general.viafabricplus.creative": "从创造模式选项移除不可用的物品",
"general.viafabricplus.classiccommands": "允许使用旧版命令协议",
"general.viafabricplus.protocolsync": "自动根据所选版本调整设置",
"general.viafabricplus.autodetect": "自动检测版本",
"experimental.viafabricplus.chunkborderfix": "修复区块边界",
"experimental.viafabricplus.watermovement": "水中移动边缘检测",
"experimental.viafabricplus.watermovement": "Water movement edge detection/\u00a78水中移动边缘检测",
"experimental.viafabricplus.fontcachefix": "修复字体缓存",
"debug.viafabricplus.sequence": "禁用排序",
"debug.viafabricplus.merchant": "平滑屏幕",
"debug.viafabricplus.sequence": "Disable sequencing/\u00a78禁用排序",
"debug.viafabricplus.merchant": "Smooth out merchant screens/\u00a78平滑屏幕",
"debug.viafabricplus.postfix": "同步执行输入",
"debug.viafabricplus.sneakinstant": "瞬间潜行",
"debug.viafabricplus.inventory": "发送“打开物品栏”数据包",
"debug.viafabricplus.inventory": "发送 “打开物品栏” 数据包",
"debug.viafabricplus.cooldown": "移除攻击冷却",
"debug.viafabricplus.idle": "发送“空闲”数据包",
"debug.viafabricplus.attribute": "替换属性修饰符为旧版本样式",
"debug.viafabricplus.idle": "发送 “空闲” 数据包",
"debug.viafabricplus.attribute": "替换属性修饰符样式",
"debug.viafabricplus.replacesneak": "替换潜行样式",
"debug.viafabricplus.longsneak": "保持潜行",
"debug.viafabricplus.longsneak": "Long sneaking/\u00a78保持潜行",
"debug.viafabricplus.legacypseeds": "远古版本挖掘速度",
"authentication.viafabricplus.betacraft": "使用 BetaCraft 身份验证",
@ -48,32 +48,32 @@
"visual.viafabricplus.secure": "禁用安全聊天警告",
"visual.viafabricplus.indicator": "隐藏聊天签名提示",
"visual.viafabricplus.jigsaw": "从拼图方块界面中移除新版本特性",
"visual.viafabricplus.stoneslab": "替换石化橡木台阶",
"visual.viafabricplus.armor": "模拟护甲值(护甲值不显示请打开)",
"visual.viafabricplus.command": "从命令方块编辑界面中移除新版本特性",
"visual.viafabricplus.oof": "将受伤音效替换为旧版本的“oof/噢!”",
"visual.viafabricplus.betahud": "移除新的 HUD 要素(包括饥饿值、护甲值)",
"visual.viafabricplus.jigsaw": "从\u00a7o拼图方块\u00a7r界面中移除新版本特性",
"visual.viafabricplus.stoneslab": "替换\u00a7o石化橡木台阶",
"visual.viafabricplus.armor": "Emulate Armor hud/\u00a78模拟护甲值",
"visual.viafabricplus.command": "从\u00a7o命令方块\u00a7r编辑界面中移除新版本特性",
"visual.viafabricplus.oof": "将受伤音效替换为旧版本的 “oof/噢!”",
"visual.viafabricplus.betahud": "移除新的 HUD 要素",
"visual.viafabricplus.classic": "将创造模式物品栏替换为旧版本样式",
"visual.viafabricplus.walkanimation": "旧版行走动画",
"visual.viafabricplus.sodium": "修复钠 (Sodium) 渲染器",
"visual.viafabricplus.sodium": "修复 钠/Sodium 渲染器",
"bedrocklogin.viafabricplus.text": "你的浏览器现在应该打开了。\n请输入这个代码%s\n关闭这个屏幕等于取消操作",
"bedrocklogin.viafabricplus.error": "发生错误!详情请查看 latest.log\n请在这个链接反馈 BUG\nhttps://github.com/FlorianMichael/ViaFabricPlus/issues",
"forceversion.viafabricplus.title": "请选择连接这个服务器要使用的版本",
"classicube.viafabricplus.account": "您可以这里创建一个账户: https://www.classicube.net",
"classicube.viafabricplus.loading": "正在加载个人信息和服务器列表…",
"classicube.viafabricplus.account": "你可以这里创建一个账户:https://www.classicube.net",
"classicube.viafabricplus.loading": "正在加载个人信息和服务器列表…",
"classicube.viafabricplus.error.token": "Token 不正确。你的 ViaFabricPlus 是否已经过时",
"classicube.viafabricplus.error.username": "无效用户名",
"classicube.viafabricplus.error.password": "无效密码",
"classicube.viafabricplus.error.verification": "用戶尚未验证电子邮箱地址",
"classicube.viafabricplus.error.token": "Token 不正确。你的 ViaFabricPlus 是否为最新版",
"classicube.viafabricplus.error.username": "无效用户名",
"classicube.viafabricplus.error.password": "无效密码",
"classicube.viafabricplus.error.verification": "用戶尚未验证电子邮箱地址",
"classicube.viafabricplus.error.logincode": "已请求身份验证。请查看你的电子邮箱!",
"classicube.viafabricplus.warning": "该功能会向 ClassiCube API 发送请求",
"betacraft.viafabricplus.warning": "点击这个按钮会向 \"betacraft.uk/serverlist\" 发送 API 请求",
"betacraft.viafabricplus.error": "出错了! 请稍后再试!"
"betacraft.viafabricplus.warning": "点击这个按钮会向 “betacraft.uk/serverlist” 发送 API 请求",
"betacraft.viafabricplus.error": "出错了请稍后再试!"
}

View File

@ -120,7 +120,6 @@
"fixes.minecraft.screen.screenhandler.MixinPlayerScreenHandler",
"fixes.minecraft.screen.screenhandler.MixinScreenHandler",
"fixes.sodium.MixinChunkTracker",
"fixes.viaaprilfools.MixinProtocol1_16to20w14infinite",
"fixes.viabedrock.MixinBedrockProtocol",
"fixes.viabedrock.MixinJoinPackets",
"fixes.vialegacy.MixinClassicProtocolExtension",
@ -143,7 +142,6 @@
"fixes.viaversion.protocol1_14to1_13_2.MixinInventoryPackets_2",
"fixes.viaversion.protocol1_15to1_14_4.MixinMetadataRewriter1_15To1_14_4",
"fixes.viaversion.protocol1_16_2to1_16_1.MixinWorldPackets_2",
"fixes.viaversion.protocol1_16to1_15_2.MixinProtocol1_16To1_15_2",
"fixes.viaversion.protocol1_17to1_16_4.MixinEntityPackets1_17",
"fixes.viaversion.protocol1_17to1_16_4.MixinInventoryAcknowledgements",
"fixes.viaversion.protocol1_17to1_16_4.MixinWorldPackets1_17",