mirror of
https://github.com/ViaVersion/ViaFabricPlus.git
synced 2025-02-23 02:51:34 +01:00
Merge remote-tracking branch 'origin/main' into 1.20-recode
This commit is contained in:
commit
193b0c2735
6
.idea/copyright/GPL_3_0.xml
Normal file
6
.idea/copyright/GPL_3_0.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus Copyright (C) 2021-&#36;today.year 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/>." />
|
||||
<option name="myName" value="GPL-3.0" />
|
||||
</copyright>
|
||||
</component>
|
10
.idea/copyright/profiles_settings.xml
Normal file
10
.idea/copyright/profiles_settings.xml
Normal 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>
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;"))
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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());
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -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",
|
||||
|
@ -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": "出错了!请稍后再试!"
|
||||
}
|
||||
|
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user