Compare commits

...

19 Commits

Author SHA1 Message Date
FlorianMichael 35642a468b
Fix 1.20.5 boot 2024-04-26 20:22:51 +02:00
FlorianMichael f2541bcca9
0.4.14 2024-04-26 15:54:40 +02:00
FlorianMichael fdcb845a4a
Update version references 2024-04-24 08:39:05 +02:00
FlorianMichael 75fd16de9d
1.20.1 support
Starting with this commit, VF will now support LTS or generally common versions (besides the latest minor of every major version). Many people have requested this in the past and there is no reason to not just provide it, now 1.20.1 users don't have to use ViaProxy if they are using Fabric anyway.
2024-04-24 08:34:19 +02:00
FlorianMichael 56b3e56c9f
Move out handshake accessor interface 2024-04-21 18:26:59 +02:00
FlorianMichael fc1bd8a1cc
Fix 1.20.4 version range
Also allowing 1.20.3 since Mojang only changed one line of code between those versions.
2024-04-21 18:20:20 +02:00
FlorianMichael 80dc92e177
1.20.5 support
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
2024-04-21 18:05:25 +02:00
FlorianMichael 40689b6400
Fix config screen rendering order in 1.20.4 2024-04-21 18:04:56 +02:00
FlorianMichael 16dd9002b3
Move GH actions to J21
Co-authored-by: Kichura <68134602+kichura@users.noreply.github.com>
2024-04-21 17:08:42 +02:00
FlorianMichael 057bdc925f
Repackage modern fabric platforms 2024-04-21 17:02:13 +02:00
FlorianMichael 5651643360
Repackage legacy fabric platforms 2024-04-21 16:29:57 +02:00
FlorianMichael 2aced1f5f5
Rename submodules to their explicit mc version
This is split into several commits so that Git doesn't break completely
2024-04-21 15:20:34 +02:00
FlorianMichael 644d592561
Merge branch 'refs/heads/main' into dev
# Conflicts:
#	gradle.properties
2024-04-14 02:22:26 +02:00
FlorianMichael cf999c38ab
Merge branch 'main' into dev
# Conflicts:
#	gradle.properties
2024-03-05 20:17:32 +01:00
FlorianMichael 0023b789e2
Updated Via API usage 2024-02-24 10:26:16 +01:00
FlorianMichael 9cd0ac3abf
Merge remote-tracking branch 'origin/main' into dev
# Conflicts:
#	gradle.properties
2024-02-24 10:21:56 +01:00
FlorianMichael fbd46800c0
Port to upstream changes (maybe) 2024-02-14 20:35:36 +01:00
FlorianMichael 2971cdedeb
Merge branch 'main' into dev
# Conflicts:
#	gradle.properties
2024-02-14 02:30:09 +01:00
EnZaXD ea875acac9
24w06a 2024-02-07 19:56:44 +01:00
392 changed files with 5479 additions and 1945 deletions

View File

@ -9,11 +9,11 @@ jobs:
uses: actions/checkout@v4
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
java-version: 21
check-latest: true
- name: Cache Dependencies
uses: actions/cache@v4

View File

@ -10,11 +10,11 @@ jobs:
uses: actions/checkout@v4
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
java-version: 21
check-latest: true
- name: Build and Publish
env:

View File

@ -10,7 +10,7 @@
Allows the connection to/from different Minecraft versions on your Minecraft client/server (LAN worlds too)
This mod can be installed on 1.8.9, 1.12.2, 1.14.4, 1.15.2, 1.16.5, 1.17.1, 1.18.2, 1.19.4, 1.20.4 with Fabric Loader.
This mod can be installed on 1.8.9, 1.12.2, 1.14.4, 1.15.2, 1.16.5, 1.17.1, 1.18.2, 1.19.4, 1.20.1, 1.20.4, 1.20.5 with Fabric Loader.
## Dependencies

View File

@ -20,7 +20,7 @@ def ENV = System.getenv()
group = "com.viaversion.fabric"
description = "Client-side and server-side ViaVersion implementation for Fabric"
version = "0.4.13+" + ENV.GITHUB_RUN_NUMBER + "-" + getBranch()
version = "0.4.14+" + ENV.GITHUB_RUN_NUMBER + "-" + getBranch()
logger.lifecycle("Building ViaFabric: $version")
def getBranch() {
@ -43,7 +43,7 @@ allprojects {
java {
toolchain {
// lwjgl2 works with Adoptium
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.ADOPTIUM
}
withSourcesJar()
@ -166,7 +166,7 @@ processResources {
List<String> mcReleases = Arrays.stream(rootProject.publish_mc_versions.toString().split(","))
.map({ it -> it.trim() })
.collect(Collectors.toList())
List<String> javaVersions = IntStream.rangeClosed(8, 17)
List<String> javaVersions = IntStream.rangeClosed(8, 21)
.mapToObj { n -> (String) "Java $n" }
.collect(Collectors.toList())
String changelogMsg = "A changelog can be found at https://github.com/ViaVersion/ViaFabric/commits"

View File

@ -2,10 +2,10 @@
org.gradle.jvmargs=-Xms32M -Xmx4G -XX:+UseG1GC -XX:+UseStringDeduplication
loader_version=0.15.10
viaver_version=4.9.4-SNAPSHOT
viaver_version=4.10.0
yaml_version=2.2
publish_mc_versions=1.20.4, 1.19.4, 1.18.2, 1.17.1, 1.16.5, 1.15.2, 1.14.4, 1.12.2, 1.8.9
publish_mc_versions=1.20.5, 1.20.4, 1.20.1, 1.19.4, 1.18.2, 1.17.1, 1.16.5, 1.15.2, 1.14.4, 1.12.2, 1.8.9
# example: 1.19.1-rc1. Can be a blank value
modrinth_mc_snapshot=
# example: 1.19-Snapshot. Can be a blank value

View File

@ -1,7 +1,7 @@
# Deploys the latest stable JDK 17 available and sets it to default without having to manually specify it here,
# Deploys the latest stable JDK 21 available and sets it to default without having to manually specify it here,
# Which includes using temurin as the distribution.
before_install:
- curl -s "https://get.sdkman.io" | bash
- source ~/.sdkman/bin/sdkman-init.sh
- sdk install java 17.0.10-tem
- sdk use java 17.0.10-tem
- sdk install java 21.0.2-tem
- sdk use java 21.0.2-tem

View File

@ -7,15 +7,17 @@ pluginManagement {
rootProject.name = "ViaFabric"
include("viafabric-mc18")
include("viafabric-mc112")
include("viafabric-mc114")
include("viafabric-mc115")
include("viafabric-mc116")
include("viafabric-mc117")
include("viafabric-mc118")
include("viafabric-mc119")
include("viafabric-mc120")
include("viafabric-mc189")
include("viafabric-mc1122")
include("viafabric-mc1144")
include("viafabric-mc1152")
include("viafabric-mc1165")
include("viafabric-mc1171")
include("viafabric-mc1182")
include("viafabric-mc1194")
include("viafabric-mc1201")
include("viafabric-mc1204")
include("viafabric-mc1205")
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"

View File

@ -18,14 +18,15 @@
package com.viaversion.fabric.common.config;
import com.viaversion.fabric.common.util.ProtocolUtils;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
public interface AbstractViaConfigScreen {
String TITLE_TRANSLATE_ID = "gui.viafabric_config.title";
String VERSION_TRANSLATE_ID = "gui.protocol_version_field.name";
default int getProtocolTextColor(int version, boolean parsedValid) {
default int getProtocolTextColor(ProtocolVersion version, boolean parsedValid) {
if (!parsedValid) return 0xff0000; // Red
if (version == -1 || version == -2) return 0x5555FF; // Blue
if (!ProtocolUtils.isValid(version)) return 0x5555FF; // Blue
if (!ProtocolUtils.isSupportedClientSide(version)) return 0xFFA500; // Orange
return 0xE0E0E0; // Default
}

View File

@ -68,7 +68,7 @@ public class VFConfig extends Config {
}
public Collection<?> getClientSideForceDisable() {
return (List<?>) get(CLIENT_SIDE_FORCE_DISABLE, List.class, Collections.emptyList());
return get(CLIENT_SIDE_FORCE_DISABLE, Collections.emptyList());
}
public void setHideButton(boolean val) {

View File

@ -21,13 +21,15 @@ import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.platform.ViaInjector;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import com.viaversion.viaversion.libs.fastutil.ints.IntLinkedOpenHashSet;
import com.viaversion.viaversion.libs.fastutil.ints.IntSortedSet;
import com.viaversion.viaversion.libs.fastutil.ints.IntSortedSets;
import com.viaversion.viaversion.libs.gson.JsonObject;
import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet;
import it.unimi.dsi.fastutil.objects.ObjectSortedSet;
import it.unimi.dsi.fastutil.objects.ObjectSortedSets;
import net.fabricmc.api.EnvType;
import net.fabricmc.loader.api.FabricLoader;
import java.util.OptionalInt;
public class FabricInjector implements ViaInjector {
@Override
public void inject() {
@ -55,23 +57,21 @@ public class FabricInjector implements ViaInjector {
}
@Override
public IntSortedSet getServerProtocolVersions() {
public ObjectSortedSet<ProtocolVersion> getServerProtocolVersions() {
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.SERVER) {
int version = Via.getManager().getProviders().get(NativeVersionProvider.class).getNativeServerVersion();
return IntSortedSets.singleton(version);
final ProtocolVersion version = Via.getManager().getProviders().get(NativeVersionProvider.class).getNativeServerProtocolVersion();
return ObjectSortedSets.singleton(version);
}
// On client-side we can connect to any server version
IntSortedSet versions = new IntLinkedOpenHashSet();
versions.add(ProtocolVersion.v1_8.getOriginalVersion());
versions.add(ProtocolVersion.getProtocols()
.stream()
.mapToInt(ProtocolVersion::getOriginalVersion)
.max().getAsInt());
ObjectSortedSet<ProtocolVersion> versions = new ObjectLinkedOpenHashSet<>();
versions.add(ProtocolVersion.v1_8);
final OptionalInt highestSupportedVersion = ProtocolVersion.getProtocols().stream().mapToInt(ProtocolVersion::getOriginalVersion).max();
versions.add(ProtocolVersion.getProtocol(highestSupportedVersion.getAsInt()));
return versions;
}
@Override
public int getServerProtocolVersion() {
return getServerProtocolVersions().firstInt();
public ProtocolVersion getServerProtocolVersion() {
return getServerProtocolVersions().first();
}
}

View File

@ -18,8 +18,20 @@
package com.viaversion.fabric.common.platform;
import com.viaversion.viaversion.ViaAPIBase;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import io.netty.buffer.ByteBuf;
import java.util.UUID;
public class FabricViaAPI extends ViaAPIBase<UUID> {
public class FabricViaAPI extends ViaAPIBase<UserConnection> {
@Override
public ProtocolVersion getPlayerProtocolVersion(UserConnection player) {
return player.getProtocolInfo().protocolVersion();
}
@Override
public void sendRawPacket(UserConnection player, ByteBuf packet) {
player.scheduleSendRawPacket(packet);
}
}

View File

@ -18,7 +18,13 @@
package com.viaversion.fabric.common.platform;
import com.viaversion.viaversion.api.platform.providers.Provider;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
public interface NativeVersionProvider extends Provider {
int getNativeServerVersion();
default ProtocolVersion getNativeServerProtocolVersion() {
return ProtocolVersion.getProtocol(getNativeServerVersion());
}
}

View File

@ -26,6 +26,7 @@ import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.ViaAPI;
import com.viaversion.viaversion.api.configuration.ConfigurationProvider;
import com.viaversion.viaversion.api.configuration.ViaVersionConfig;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.platform.UnsupportedSoftware;
import com.viaversion.viaversion.api.platform.ViaPlatform;
import com.viaversion.viaversion.libs.gson.JsonArray;
@ -54,11 +55,11 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
public abstract class AbstractFabricPlatform implements ViaPlatform<UUID> {
public abstract class AbstractFabricPlatform implements ViaPlatform<UserConnection> {
private final Logger logger = new JLoggerToLog4j(LogManager.getLogger("ViaVersion"));
private FabricViaConfig config;
private File dataFolder;
private final ViaAPI<UUID> api;
private final ViaAPI<UserConnection> api;
{
api = new FabricViaAPI();
@ -148,7 +149,7 @@ public abstract class AbstractFabricPlatform implements ViaPlatform<UUID> {
}
@Override
public ViaAPI<UUID> getApi() {
public ViaAPI<UserConnection> getApi() {
return api;
}
@ -214,7 +215,7 @@ public abstract class AbstractFabricPlatform implements ViaPlatform<UUID> {
platformSpecific.add("mods", mods);
NativeVersionProvider ver = Via.getManager().getProviders().get(NativeVersionProvider.class);
if (ver != null) {
platformSpecific.addProperty("native version", ver.getNativeServerVersion());
platformSpecific.addProperty("native version", ver.getNativeServerProtocolVersion().getVersion());
}
return platformSpecific;
}

View File

@ -82,11 +82,11 @@ public abstract class AbstractFabricVersionProvider extends BaseVersionProvider
}
@Override
public int getClosestServerProtocol(UserConnection connection) throws Exception {
public ProtocolVersion getClosestServerProtocol(UserConnection connection) throws Exception {
if (connection.isClientSide()) {
ProtocolInfo info = Objects.requireNonNull(connection.getProtocolInfo());
if (!getConfig().isClientSideEnabled()) return info.getProtocolVersion();
if (!getConfig().isClientSideEnabled()) return info.protocolVersion();
int serverVer = getConfig().getClientSideVersion();
SocketAddress addr = connection.getChannel().remoteAddress();
@ -112,18 +112,20 @@ public abstract class AbstractFabricVersionProvider extends BaseVersionProvider
}
}
boolean blocked = checkAddressBlocked(addr);
boolean supported = ProtocolUtils.isSupported(serverVer, info.getProtocolVersion());
ProtocolVersion serverVersion = ProtocolVersion.getProtocol(serverVer);
handleMulticonnectPing(connection, info, blocked, serverVer);
boolean blocked = checkAddressBlocked(addr);
boolean supported = ProtocolUtils.isSupported(serverVersion, info.protocolVersion());
handleMulticonnectPing(connection, info, blocked, serverVersion);
if (blocked || !supported) serverVer = info.getProtocolVersion();
return serverVer;
return ProtocolVersion.getProtocol(serverVer);
}
NativeVersionProvider natProvider = Via.getManager().getProviders().get(NativeVersionProvider.class);
if (natProvider != null) {
return ProtocolVersion.getProtocol(natProvider.getNativeServerVersion()).getVersion();
return natProvider.getNativeServerProtocolVersion();
}
return super.getClosestServerProtocol(connection);
}
@ -135,15 +137,15 @@ public abstract class AbstractFabricVersionProvider extends BaseVersionProvider
|| isDisabled(((InetSocketAddress) addr).getAddress().getHostName()))));
}
private void handleMulticonnectPing(UserConnection connection, ProtocolInfo info, boolean blocked, int serverVer) throws Exception {
private void handleMulticonnectPing(UserConnection connection, ProtocolInfo info, boolean blocked, ProtocolVersion serverVer) throws Exception {
if (info.getState() == State.STATUS
&& info.getProtocolVersion() == -1
&& isMulticonnectHandler(connection.getChannel().pipeline())
&& (blocked || ProtocolUtils.isSupported(serverVer, getVersionForMulticonnect(serverVer)))) { // Intercept the connection
int multiconnectSuggestion = blocked ? -1 : getVersionForMulticonnect(serverVer);
getLogger().info("Sending " + ProtocolVersion.getProtocol(multiconnectSuggestion) + " for multiconnect version detector");
ProtocolVersion multiconnectSuggestion = blocked ? ProtocolVersion.unknown : getVersionForMulticonnect(serverVer);
getLogger().info("Sending " + multiconnectSuggestion + " for multiconnect version detector");
PacketWrapper newAnswer = PacketWrapper.create(ClientboundStatusPackets.STATUS_RESPONSE, null, connection);
newAnswer.write(Type.STRING, "{\"version\":{\"name\":\"viafabric integration\",\"protocol\":" + multiconnectSuggestion + "}}");
newAnswer.write(Type.STRING, "{\"version\":{\"name\":\"viafabric integration\",\"protocol\":" + multiconnectSuggestion.getVersion() + "}}");
newAnswer.send(info.getPipeline().contains(BaseProtocol1_16.class) ? BaseProtocol1_16.class : BaseProtocol1_7.class);
throw CancelException.generate();
}
@ -153,23 +155,23 @@ public abstract class AbstractFabricVersionProvider extends BaseVersionProvider
return false;
}
private int getVersionForMulticonnect(int clientSideVersion) {
private ProtocolVersion getVersionForMulticonnect(ProtocolVersion clientSideVersion) {
// https://github.com/ViaVersion/ViaVersion/blob/master/velocity/src/main/java/us/myles/ViaVersion/velocity/providers/VelocityVersionProvider.java
int[] compatibleProtocols = multiconnectSupportedVersions;
if (Arrays.binarySearch(compatibleProtocols, clientSideVersion) >= 0) {
if (Arrays.binarySearch(compatibleProtocols, clientSideVersion.getVersion()) >= 0) {
return clientSideVersion;
}
if (clientSideVersion < compatibleProtocols[0]) {
return compatibleProtocols[0];
if (clientSideVersion.getVersion() < compatibleProtocols[0]) {
return ProtocolVersion.getProtocol(compatibleProtocols[0]);
}
// TODO: This needs a better fix, i.e checking ProtocolRegistry to see if it would work.
for (int i = compatibleProtocols.length - 1; i >= 0; i--) {
int protocol = compatibleProtocols[i];
if (clientSideVersion > protocol && ProtocolVersion.isRegistered(protocol)) {
return protocol;
if (clientSideVersion.getVersion() > protocol && ProtocolVersion.isRegistered(protocol)) {
return ProtocolVersion.getProtocol(protocol);
}
}

View File

@ -25,14 +25,14 @@ import java.util.Arrays;
import java.util.stream.Stream;
public class ProtocolUtils {
public static boolean isSupportedClientSide(int server) {
public static boolean isSupportedClientSide(ProtocolVersion server) {
return isSupported(server, Via.getManager().getProviders()
.get(NativeVersionProvider.class)
.getNativeServerVersion());
.getNativeServerProtocolVersion());
}
public static boolean isSupported(int server, int client) {
return server == client || Via.getManager().getProtocolManager().getProtocolPath(client, server) != null;
public static boolean isSupported(ProtocolVersion server, ProtocolVersion client) {
return server.equals(client) || Via.getManager().getProtocolManager().getProtocolPath(client, server) != null;
}
public static String getProtocolName(int id) {
@ -40,6 +40,10 @@ public class ProtocolUtils {
return ProtocolVersion.getProtocol(id).getName();
}
public static boolean isValid(final ProtocolVersion version) {
return version.isKnown() && version.getVersion() != -2;
}
public static boolean isStartOfProtocolText(String s) {
try {
Integer.parseInt(s);

View File

@ -13,8 +13,8 @@
},
"depends": {
"fabricloader": ">=0.14.0",
"minecraft": ["1.8.9", "1.12.2", "1.14.4", "1.15.2", "1.16.5", "1.17.1", "1.18.2", "1.19.4", ">=1.20.3"],
"viaversion": ">=4.9.3"
"minecraft": ["1.8.9", "1.12.2", "1.14.4", "1.15.2", "1.16.5", "1.17.1", "1.18.2", "1.19.4", "1.20.1", "1.20.3", "1.20.4", "1.20.5"],
"viaversion": ">=4.10.0"
},
"breaks": {
"viafabricplus": "*"

View File

@ -15,18 +15,17 @@
* 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 com.viaversion.fabric.mc18;
package com.viaversion.fabric.mc1122;
import com.google.common.collect.Range;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.viaversion.fabric.common.config.VFConfig;
import com.viaversion.fabric.common.platform.FabricInjector;
import com.viaversion.fabric.common.protocol.HostnameParserProtocol;
import com.viaversion.fabric.common.util.JLoggerToLog4j;
import com.viaversion.fabric.mc18.commands.NMSCommandImpl;
import com.viaversion.fabric.mc18.commands.VFCommandHandler;
import com.viaversion.fabric.mc18.platform.FabricPlatform;
import com.viaversion.fabric.mc18.platform.VFLoader;
import com.viaversion.fabric.mc1122.commands.NMSCommandImpl;
import com.viaversion.fabric.mc1122.commands.VFCommandHandler;
import com.viaversion.fabric.mc1122.platform.FabricPlatform;
import com.viaversion.fabric.mc1122.platform.VFLoader;
import com.viaversion.viaversion.ViaManagerImpl;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@ -72,7 +71,8 @@ public class ViaFabric implements ModInitializer {
ViaManagerImpl manager = (ViaManagerImpl) Via.getManager();
manager.init();
Via.getManager().getProtocolManager().registerBaseProtocol(HostnameParserProtocol.INSTANCE, Range.lessThan(Integer.MIN_VALUE));
HostnameParserProtocol.INSTANCE.initialize();
HostnameParserProtocol.INSTANCE.register(Via.getManager().getProviders());
ProtocolVersion.register(-2, "AUTO");
FabricLoader.getInstance().getEntrypoints("viafabric:via_api_initialized", Runnable.class).forEach(Runnable::run);

View File

@ -15,10 +15,9 @@
* 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 com.viaversion.fabric.mc112.commands;
package com.viaversion.fabric.mc1122.commands;
import net.minecraft.command.AbstractCommand;
import net.minecraft.command.CommandException;
import net.minecraft.command.CommandSource;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.BlockPos;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.commands;
package com.viaversion.fabric.mc1122.commands;
import com.viaversion.viaversion.api.command.ViaCommandSender;
import com.viaversion.viaversion.util.ComponentUtil;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.commands;
package com.viaversion.fabric.mc1122.commands;
import com.viaversion.fabric.common.commands.subs.LeakDetectSubCommand;
import com.viaversion.viaversion.commands.ViaCommandHandler;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc18.gui;
package com.viaversion.fabric.mc1122.gui;
import net.minecraft.client.gui.widget.PagedEntryListWidget;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc18.gui;
package com.viaversion.fabric.mc1122.gui;
import net.minecraft.client.gui.widget.ButtonWidget;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc18.gui;
package com.viaversion.fabric.mc1122.gui;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MinecraftClient;

View File

@ -15,11 +15,12 @@
* 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 com.viaversion.fabric.mc112.gui;
package com.viaversion.fabric.mc1122.gui;
import com.viaversion.fabric.common.config.AbstractViaConfigScreen;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.common.util.ProtocolUtils;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
@ -95,7 +96,7 @@ public class ViaConfigScreen extends Screen implements AbstractViaConfigScreen {
validProtocol = false;
}
protocolVersion.setEditableColor(getProtocolTextColor(newVersion, validProtocol));
protocolVersion.setEditableColor(getProtocolTextColor(ProtocolVersion.getProtocol(newVersion), validProtocol));
int finalNewVersion = newVersion;
if (latestProtocolSave == null) latestProtocolSave = CompletableFuture.completedFuture(null);

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.address.client;
package com.viaversion.fabric.mc1122.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.address.client;
package com.viaversion.fabric.mc1122.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.network.ServerAddress;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.address.client;
package com.viaversion.fabric.mc1122.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.client.network.MultiplayerServerListPinger;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc116.mixin.debug.client;
package com.viaversion.fabric.mc1122.mixin.debug.client;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.debug.client;
package com.viaversion.fabric.mc1122.mixin.debug.client;
import io.netty.channel.Channel;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc18.mixin.debug.client;
package com.viaversion.fabric.mc1122.mixin.debug.client;
import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;

View File

@ -15,11 +15,11 @@
* 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 com.viaversion.fabric.mc112.mixin.gui.client;
package com.viaversion.fabric.mc1122.mixin.gui.client;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc112.gui.ViaButton;
import com.viaversion.fabric.mc112.gui.ViaConfigScreen;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.mc1122.gui.ViaButton;
import com.viaversion.fabric.mc1122.gui.ViaConfigScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.pipeline;
package com.viaversion.fabric.mc1122.mixin.pipeline;
import com.viaversion.fabric.common.handler.PipelineReorderEvent;
import io.netty.channel.Channel;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.pipeline;
package com.viaversion.fabric.mc1122.mixin.pipeline;
import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc112.mixin.pipeline.client;
package com.viaversion.fabric.mc1122.mixin.pipeline.client;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc112.service.ProtocolAutoDetector;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.mc1122.service.ProtocolAutoDetector;
import net.minecraft.network.ClientConnection;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.pipeline.client;
package com.viaversion.fabric.mc1122.mixin.pipeline.client;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;
import com.viaversion.fabric.common.handler.FabricEncodeHandler;

View File

@ -1,12 +1,12 @@
package com.viaversion.fabric.mc112.mixin.pipeline.client;
package com.viaversion.fabric.mc1122.mixin.pipeline.client;
import com.viaversion.fabric.mc112.service.ProtocolAutoDetector;
import com.viaversion.fabric.mc1122.service.HandshakeInterceptor;
import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(HandshakeC2SPacket.class)
public class MixinHandshakeC2SPacket implements ProtocolAutoDetector.IHandshakeC2SPacket {
public class MixinHandshakeC2SPacket implements HandshakeInterceptor {
@Shadow
private int protocolVersion;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.platform;
package com.viaversion.fabric.mc1122.platform;
import com.viaversion.fabric.common.platform.NativeVersionProvider;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@ -24,7 +24,6 @@ import net.fabricmc.api.Environment;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.MinecraftClient;
import net.minecraft.realms.RealmsSharedConstants;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.ServerMetadata;
public class FabricNativeVersionProvider implements NativeVersionProvider {
@ -35,7 +34,7 @@ public class FabricNativeVersionProvider implements NativeVersionProvider {
}
ServerMetadata.Version version = MinecraftClient.getInstance().getServer().getServerMetadata().getVersion();
if (version == null) return ProtocolVersion.v1_8.getVersion();
if (version == null) return ProtocolVersion.v1_12_2.getVersion();
return version.getProtocolVersion();
}
@ -46,6 +45,6 @@ public class FabricNativeVersionProvider implements NativeVersionProvider {
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
return ProtocolVersion.v1_8.getVersion(); // fallback
return ProtocolVersion.v1_12_2.getVersion(); // fallback
}
}

View File

@ -15,14 +15,14 @@
* 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 com.viaversion.fabric.mc112.platform;
package com.viaversion.fabric.mc1122.platform;
import com.viaversion.fabric.common.commands.UserCommandSender;
import com.viaversion.fabric.common.platform.NativeVersionProvider;
import com.viaversion.fabric.common.provider.AbstractFabricPlatform;
import com.viaversion.fabric.common.util.FutureTaskId;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc112.commands.NMSCommandSender;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.mc1122.commands.NMSCommandSender;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.command.ViaCommandSender;
import com.viaversion.viaversion.util.ComponentUtil;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc18.platform;
package com.viaversion.fabric.mc1122.platform;
import com.viaversion.fabric.mc18.providers.VFHandItemProvider;
import com.viaversion.fabric.mc18.providers.FabricVersionProvider;
import com.viaversion.fabric.mc1122.providers.VFHandItemProvider;
import com.viaversion.fabric.mc1122.providers.FabricVersionProvider;
import net.fabricmc.api.EnvType;
import net.fabricmc.loader.api.FabricLoader;
import com.viaversion.viaversion.api.Via;

View File

@ -15,12 +15,12 @@
* 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 com.viaversion.fabric.mc112.providers;
package com.viaversion.fabric.mc1122.providers;
import com.viaversion.fabric.common.config.VFConfig;
import com.viaversion.fabric.common.provider.AbstractFabricVersionProvider;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc112.service.ProtocolAutoDetector;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.mc1122.service.ProtocolAutoDetector;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import java.net.InetSocketAddress;

View File

@ -15,9 +15,9 @@
* 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 com.viaversion.fabric.mc112.providers;
package com.viaversion.fabric.mc1122.providers;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;

View File

@ -0,0 +1,6 @@
package com.viaversion.fabric.mc1122.service;
public interface HandshakeInterceptor {
void viaFabric$setProtocolVersion(final int version);
}

View File

@ -15,9 +15,9 @@
* 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 com.viaversion.fabric.mc112.service;
package com.viaversion.fabric.mc1122.service;
import com.viaversion.fabric.mc112.ViaFabric;
import com.viaversion.fabric.mc1122.ViaFabric;
import com.viaversion.fabric.common.AddressParser;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
@ -113,7 +113,7 @@ public class ProtocolAutoDetector {
HandshakeC2SPacket handshakeC2SPacket = new HandshakeC2SPacket(address.getHostString(),
address.getPort(), NetworkState.STATUS);
((IHandshakeC2SPacket) handshakeC2SPacket).viaFabric$setProtocolVersion(
((HandshakeInterceptor) handshakeC2SPacket).viaFabric$setProtocolVersion(
Via.getAPI().getServerVersion().lowestSupportedVersion());
clientConnection.send(handshakeC2SPacket);
clientConnection.send(new QueryRequestC2SPacket());
@ -138,9 +138,4 @@ public class ProtocolAutoDetector {
return CompletableFuture.completedFuture(null);
}
}
public interface IHandshakeC2SPacket {
void viaFabric$setProtocolVersion(final int version);
}
}

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"id": "viafabric-mc112",
"id": "viafabric-mc1122",
"name": "ViaFabric for 1.12",
"version": "${version}",
"description": "${description}",
@ -39,7 +39,7 @@
],
"entrypoints": {
"main": [
"com.viaversion.fabric.mc112.ViaFabric"
"com.viaversion.fabric.mc1122.ViaFabric"
]
},
"depends": {
@ -51,9 +51,9 @@
"legacy-fabric-command-api-v1": "*"
},
"mixins": [
"mixins.viafabric112.address.json",
"mixins.viafabric112.gui.json",
"mixins.viafabric112.debug.json",
"mixins.viafabric112.pipeline.json"
"mixins.viafabric1122.address.json",
"mixins.viafabric1122.gui.json",
"mixins.viafabric1122.debug.json",
"mixins.viafabric1122.pipeline.json"
]
}

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc112.mixin.address",
"package": "com.viaversion.fabric.mc1122.mixin.address",
"mixins": [
],
"client": [

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc115.mixin.debug",
"package": "com.viaversion.fabric.mc1122.mixin.debug",
"mixins": [
],
"client": [

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc112.mixin.gui",
"package": "com.viaversion.fabric.mc1122.mixin.gui",
"mixins": [
],
"client": [

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc112.mixin.pipeline",
"package": "com.viaversion.fabric.mc1122.mixin.pipeline",
"mixins": [
"MixinClientConnection",
"MixinServerNetworkIoChInit"

View File

@ -15,9 +15,8 @@
* 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 com.viaversion.fabric.mc114;
package com.viaversion.fabric.mc1144;
import com.google.common.collect.Range;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
@ -26,9 +25,9 @@ import com.viaversion.fabric.common.config.VFConfig;
import com.viaversion.fabric.common.platform.FabricInjector;
import com.viaversion.fabric.common.protocol.HostnameParserProtocol;
import com.viaversion.fabric.common.util.JLoggerToLog4j;
import com.viaversion.fabric.mc114.commands.VFCommandHandler;
import com.viaversion.fabric.mc114.platform.FabricPlatform;
import com.viaversion.fabric.mc114.platform.VFLoader;
import com.viaversion.fabric.mc1144.commands.VFCommandHandler;
import com.viaversion.fabric.mc1144.platform.FabricPlatform;
import com.viaversion.fabric.mc1144.platform.VFLoader;
import com.viaversion.viaversion.ViaManagerImpl;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@ -86,7 +85,8 @@ public class ViaFabric implements ModInitializer {
ViaManagerImpl manager = (ViaManagerImpl) Via.getManager();
manager.init();
Via.getManager().getProtocolManager().registerBaseProtocol(HostnameParserProtocol.INSTANCE, Range.lessThan(Integer.MIN_VALUE));
HostnameParserProtocol.INSTANCE.initialize();
HostnameParserProtocol.INSTANCE.register(Via.getManager().getProviders());
ProtocolVersion.register(-2, "AUTO");
FabricLoader.getInstance().getEntrypoints("viafabric:via_api_initialized", Runnable.class).forEach(Runnable::run);

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.commands;
package com.viaversion.fabric.mc1144.commands;
import com.viaversion.viaversion.api.command.ViaCommandSender;
import com.viaversion.viaversion.util.ComponentUtil;

View File

@ -15,9 +15,9 @@
* 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 com.viaversion.fabric.mc114.commands;
package com.viaversion.fabric.mc1144.commands;
import com.viaversion.fabric.mc114.ViaFabric;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.mojang.brigadier.CommandDispatcher;
import io.github.cottonmc.clientcommands.ClientCommandPlugin;
import io.github.cottonmc.clientcommands.CottonClientCommandSource;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.commands;
package com.viaversion.fabric.mc1144.commands;
import com.viaversion.fabric.common.commands.subs.LeakDetectSubCommand;
import com.mojang.brigadier.arguments.StringArgumentType;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.gui;
package com.viaversion.fabric.mc1144.gui;
import io.github.prospector.modmenu.api.ModMenuApi;
import net.minecraft.client.gui.screen.Screen;

View File

@ -15,11 +15,12 @@
* 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 com.viaversion.fabric.mc114.gui;
package com.viaversion.fabric.mc1144.gui;
import com.viaversion.fabric.common.config.AbstractViaConfigScreen;
import com.viaversion.fabric.mc114.ViaFabric;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.viaversion.fabric.common.util.ProtocolUtils;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
@ -93,7 +94,7 @@ public class ViaConfigScreen extends Screen implements AbstractViaConfigScreen {
}
}
protocolVersion.setEditableColor(getProtocolTextColor(newVersion, validProtocol));
protocolVersion.setEditableColor(getProtocolTextColor(ProtocolVersion.getProtocol(newVersion), validProtocol));
int finalNewVersion = newVersion;
if (latestProtocolSave == null) latestProtocolSave = CompletableFuture.completedFuture(null);

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc116.mixin.address.client;
package com.viaversion.fabric.mc1144.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc18.mixin.address.client;
package com.viaversion.fabric.mc1144.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.network.ServerAddress;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc116.mixin.address.client;
package com.viaversion.fabric.mc1144.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.client.network.MultiplayerServerListPinger;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.debug.client;
package com.viaversion.fabric.mc1144.mixin.debug.client;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.debug.client;
package com.viaversion.fabric.mc1144.mixin.debug.client;
import io.netty.channel.Channel;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.debug.client;
package com.viaversion.fabric.mc1144.mixin.debug.client;
import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc114.mixin.gui.client;
package com.viaversion.fabric.mc1144.mixin.gui.client;
import com.viaversion.fabric.mc114.ViaFabric;
import com.viaversion.fabric.mc114.gui.ViaConfigScreen;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.viaversion.fabric.mc1144.gui.ViaConfigScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;

View File

@ -15,12 +15,12 @@
* 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 com.viaversion.fabric.mc115.mixin.gui.client;
package com.viaversion.fabric.mc1144.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;
import com.viaversion.fabric.mc115.mixin.debug.client.MixinClientConnectionAccessor;
import com.viaversion.fabric.mc1144.mixin.debug.client.MixinClientConnectionAccessor;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.listener.ClientQueryPacketListener;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.gui.client;
package com.viaversion.fabric.mc1144.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc117.mixin.gui.client;
package com.viaversion.fabric.mc1144.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import net.minecraft.client.network.ServerInfo;

View File

@ -0,0 +1,38 @@
/*
* This file is part of ViaFabric - https://github.com/ViaVersion/ViaFabric
* Copyright (C) 2018-2024 ViaVersion 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 com.viaversion.fabric.mc1144.mixin.pipeline;
import com.viaversion.fabric.common.handler.PipelineReorderEvent;
import io.netty.channel.Channel;
import net.minecraft.network.ClientConnection;
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;
@Mixin(ClientConnection.class)
public class MixinClientConnection {
@Shadow
private Channel channel;
@Inject(method = "setCompressionThreshold", at = @At("RETURN"))
private void reorderCompression(int compressionThreshold, CallbackInfo ci) {
channel.pipeline().fireUserEventTriggered(new PipelineReorderEvent());
}
}

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.pipeline;
package com.viaversion.fabric.mc1144.mixin.pipeline;
import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc115.mixin.pipeline.client;
package com.viaversion.fabric.mc1144.mixin.pipeline.client;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc115.service.ProtocolAutoDetector;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.viaversion.fabric.mc1144.service.ProtocolAutoDetector;
import net.minecraft.network.ClientConnection;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.pipeline.client;
package com.viaversion.fabric.mc1144.mixin.pipeline.client;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;
import com.viaversion.fabric.common.handler.FabricEncodeHandler;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.platform;
package com.viaversion.fabric.mc1144.platform;
import com.viaversion.fabric.common.platform.NativeVersionProvider;
import net.minecraft.SharedConstants;

View File

@ -15,14 +15,14 @@
* 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 com.viaversion.fabric.mc115.platform;
package com.viaversion.fabric.mc1144.platform;
import com.viaversion.fabric.common.commands.UserCommandSender;
import com.viaversion.fabric.common.platform.NativeVersionProvider;
import com.viaversion.fabric.common.provider.AbstractFabricPlatform;
import com.viaversion.fabric.common.util.FutureTaskId;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc115.commands.NMSCommandSender;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.viaversion.fabric.mc1144.commands.NMSCommandSender;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.command.ViaCommandSender;
import io.netty.channel.EventLoop;
@ -54,21 +54,6 @@ public class FabricPlatform extends AbstractFabricPlatform {
return MinecraftClient.getInstance().getServer();
}
@Override
protected void installNativeVersionProvider() {
Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider());
}
@Override
protected ExecutorService asyncService() {
return ViaFabric.ASYNC_EXECUTOR;
}
@Override
protected EventLoop eventLoop() {
return ViaFabric.EVENT_LOOP;
}
@Override
public FutureTaskId runSync(Runnable runnable) {
if (getServer() != null) {
@ -138,4 +123,19 @@ public class FabricPlatform extends AbstractFabricPlatform {
}
return false; // Can't know if it worked
}
@Override
protected void installNativeVersionProvider() {
Via.getManager().getProviders().use(NativeVersionProvider.class, new FabricNativeVersionProvider());
}
@Override
protected ExecutorService asyncService() {
return ViaFabric.ASYNC_EXECUTOR;
}
@Override
protected EventLoop eventLoop() {
return ViaFabric.EVENT_LOOP;
}
}

View File

@ -15,11 +15,11 @@
* 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 com.viaversion.fabric.mc114.platform;
package com.viaversion.fabric.mc1144.platform;
import com.viaversion.fabric.mc114.providers.VFHandItemProvider;
import com.viaversion.fabric.mc114.providers.FabricVersionProvider;
import com.viaversion.fabric.mc114.providers.VFPlayerLookTargetProvider;
import com.viaversion.fabric.mc1144.providers.VFHandItemProvider;
import com.viaversion.fabric.mc1144.providers.FabricVersionProvider;
import com.viaversion.fabric.mc1144.providers.VFPlayerLookTargetProvider;
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.PlayerLookTargetProvider;
import net.fabricmc.api.EnvType;
import net.fabricmc.loader.api.FabricLoader;

View File

@ -15,12 +15,12 @@
* 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 com.viaversion.fabric.mc18.providers;
package com.viaversion.fabric.mc1144.providers;
import com.viaversion.fabric.common.config.VFConfig;
import com.viaversion.fabric.common.provider.AbstractFabricVersionProvider;
import com.viaversion.fabric.mc18.ViaFabric;
import com.viaversion.fabric.mc18.service.ProtocolAutoDetector;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.viaversion.fabric.mc1144.service.ProtocolAutoDetector;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import java.net.InetSocketAddress;
@ -42,4 +42,4 @@ public class FabricVersionProvider extends AbstractFabricVersionProvider {
protected CompletableFuture<ProtocolVersion> detectVersion(InetSocketAddress address) {
return ProtocolAutoDetector.detectVersion(address);
}
}
}

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc114.providers;
package com.viaversion.fabric.mc1144.providers;
import com.viaversion.fabric.common.util.RemappingUtil;
import com.viaversion.fabric.mc114.ViaFabric;
import com.viaversion.fabric.mc1144.ViaFabric;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc117.providers;
package com.viaversion.fabric.mc1144.providers;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.Position;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc115.service;
package com.viaversion.fabric.mc1144.service;
import com.viaversion.fabric.common.AddressParser;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc1144.ViaFabric;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"id": "viafabric-mc114",
"id": "viafabric-mc1144",
"name": "ViaFabric for 1.14",
"version": "${version}",
"description": "${description}",
@ -47,13 +47,13 @@
],
"entrypoints": {
"main": [
"com.viaversion.fabric.mc114.ViaFabric"
"com.viaversion.fabric.mc1144.ViaFabric"
],
"cotton-client-commands": [
"com.viaversion.fabric.mc114.commands.VFClientCommands"
"com.viaversion.fabric.mc1144.commands.VFClientCommands"
],
"modmenu": [
"com.viaversion.fabric.mc114.gui.ModMenuConfig"
"com.viaversion.fabric.mc1144.gui.ModMenuConfig"
]
},
"depends": {
@ -66,10 +66,10 @@
"cotton-client-commands": "*"
},
"mixins": [
"mixins.viafabric114.address.json",
"mixins.viafabric114.gui.json",
"mixins.viafabric114.debug.json",
"mixins.viafabric114.pipeline.json"
"mixins.viafabric1144.address.json",
"mixins.viafabric1144.gui.json",
"mixins.viafabric1144.debug.json",
"mixins.viafabric1144.pipeline.json"
],
"custom": {
"modmenu": {

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc115.mixin.address",
"package": "com.viaversion.fabric.mc1144.mixin.address",
"mixins": [
],
"client": [

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc112.mixin.debug",
"package": "com.viaversion.fabric.mc1144.mixin.debug",
"mixins": [
],
"client": [

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc114.mixin.gui",
"package": "com.viaversion.fabric.mc1144.mixin.gui",
"mixins": [
"client.MixinMultiplayerServerListPingerListener"
],

View File

@ -1,7 +1,7 @@
{
"required": true,
"compatibilityLevel": "JAVA_8",
"package": "com.viaversion.fabric.mc114.mixin.pipeline",
"package": "com.viaversion.fabric.mc1144.mixin.pipeline",
"mixins": [
"MixinClientConnection",
"MixinServerNetworkIoChInit"

View File

@ -15,9 +15,8 @@
* 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 com.viaversion.fabric.mc115;
package com.viaversion.fabric.mc1152;
import com.google.common.collect.Range;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
@ -26,9 +25,9 @@ import com.viaversion.fabric.common.config.VFConfig;
import com.viaversion.fabric.common.platform.FabricInjector;
import com.viaversion.fabric.common.protocol.HostnameParserProtocol;
import com.viaversion.fabric.common.util.JLoggerToLog4j;
import com.viaversion.fabric.mc115.commands.VFCommandHandler;
import com.viaversion.fabric.mc115.platform.FabricPlatform;
import com.viaversion.fabric.mc115.platform.VFLoader;
import com.viaversion.fabric.mc1152.commands.VFCommandHandler;
import com.viaversion.fabric.mc1152.platform.FabricPlatform;
import com.viaversion.fabric.mc1152.platform.VFLoader;
import com.viaversion.viaversion.ViaManagerImpl;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@ -86,7 +85,8 @@ public class ViaFabric implements ModInitializer {
ViaManagerImpl manager = (ViaManagerImpl) Via.getManager();
manager.init();
Via.getManager().getProtocolManager().registerBaseProtocol(HostnameParserProtocol.INSTANCE, Range.lessThan(Integer.MIN_VALUE));
HostnameParserProtocol.INSTANCE.initialize();
HostnameParserProtocol.INSTANCE.register(Via.getManager().getProviders());
ProtocolVersion.register(-2, "AUTO");
FabricLoader.getInstance().getEntrypoints("viafabric:via_api_initialized", Runnable.class).forEach(Runnable::run);

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.commands;
package com.viaversion.fabric.mc1152.commands;
import com.viaversion.viaversion.api.command.ViaCommandSender;
import com.viaversion.viaversion.util.ComponentUtil;

View File

@ -15,9 +15,9 @@
* 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 com.viaversion.fabric.mc115.commands;
package com.viaversion.fabric.mc1152.commands;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc1152.ViaFabric;
import com.mojang.brigadier.CommandDispatcher;
import io.github.cottonmc.clientcommands.ClientCommandPlugin;
import io.github.cottonmc.clientcommands.CottonClientCommandSource;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.commands;
package com.viaversion.fabric.mc1152.commands;
import com.viaversion.fabric.common.commands.subs.LeakDetectSubCommand;
import com.mojang.brigadier.arguments.StringArgumentType;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.gui;
package com.viaversion.fabric.mc1152.gui;
import com.google.common.collect.ImmutableMap;
import io.github.prospector.modmenu.api.ConfigScreenFactory;

View File

@ -15,11 +15,12 @@
* 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 com.viaversion.fabric.mc115.gui;
package com.viaversion.fabric.mc1152.gui;
import com.viaversion.fabric.common.config.AbstractViaConfigScreen;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc1152.ViaFabric;
import com.viaversion.fabric.common.util.ProtocolUtils;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
@ -93,7 +94,7 @@ public class ViaConfigScreen extends Screen implements AbstractViaConfigScreen {
}
}
protocolVersion.setEditableColor(getProtocolTextColor(newVersion, validProtocol));
protocolVersion.setEditableColor(getProtocolTextColor(ProtocolVersion.getProtocol(newVersion), validProtocol));
int finalNewVersion = newVersion;
if (latestProtocolSave == null) latestProtocolSave = CompletableFuture.completedFuture(null);

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.address.client;
package com.viaversion.fabric.mc1152.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.address.client;
package com.viaversion.fabric.mc1152.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.network.ServerAddress;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.address.client;
package com.viaversion.fabric.mc1152.mixin.address.client;
import com.viaversion.fabric.common.AddressParser;
import net.minecraft.client.network.MultiplayerServerListPinger;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc112.mixin.debug.client;
package com.viaversion.fabric.mc1152.mixin.debug.client;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.debug.client;
package com.viaversion.fabric.mc1152.mixin.debug.client;
import io.netty.channel.Channel;
import net.minecraft.network.ClientConnection;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.debug.client;
package com.viaversion.fabric.mc1152.mixin.debug.client;
import com.viaversion.fabric.common.handler.CommonTransformer;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;

View File

@ -15,10 +15,10 @@
* 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 com.viaversion.fabric.mc115.mixin.gui.client;
package com.viaversion.fabric.mc1152.mixin.gui.client;
import com.viaversion.fabric.mc115.ViaFabric;
import com.viaversion.fabric.mc115.gui.ViaConfigScreen;
import com.viaversion.fabric.mc1152.ViaFabric;
import com.viaversion.fabric.mc1152.gui.ViaConfigScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;

View File

@ -15,12 +15,12 @@
* 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 com.viaversion.fabric.mc116.mixin.gui.client;
package com.viaversion.fabric.mc1152.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import com.viaversion.fabric.common.handler.FabricDecodeHandler;
import com.viaversion.fabric.mc116.mixin.debug.client.MixinClientConnectionAccessor;
import com.viaversion.fabric.mc1152.mixin.debug.client.MixinClientConnectionAccessor;
import net.minecraft.client.network.ServerInfo;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.listener.ClientQueryPacketListener;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.gui.client;
package com.viaversion.fabric.mc1152.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc114.mixin.gui.client;
package com.viaversion.fabric.mc1152.mixin.gui.client;
import com.viaversion.fabric.common.gui.ViaServerInfo;
import net.minecraft.client.network.ServerInfo;

View File

@ -15,7 +15,7 @@
* 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 com.viaversion.fabric.mc115.mixin.pipeline;
package com.viaversion.fabric.mc1152.mixin.pipeline;
import com.viaversion.fabric.common.handler.PipelineReorderEvent;
import io.netty.channel.Channel;

Some files were not shown because too many files have changed in this diff Show More