diff --git a/deprecated/fabric-networking-v0/src/client/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java b/deprecated/fabric-networking-v0/src/client/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java index 5436b81d2..b3b8d3e78 100644 --- a/deprecated/fabric-networking-v0/src/client/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java +++ b/deprecated/fabric-networking-v0/src/client/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java @@ -44,7 +44,7 @@ public class ClientSidePacketRegistryImpl implements ClientSidePacketRegistry, P @Override public void sendToServer(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> completionListener) { if (MinecraftClient.getInstance().getNetworkHandler() != null) { - MinecraftClient.getInstance().getNetworkHandler().getConnection().send(packet, completionListener); + MinecraftClient.getInstance().getNetworkHandler().getConnection().send(packet, GenericFutureListenerHolder.create(completionListener)); return; } diff --git a/deprecated/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java b/deprecated/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java index 49c1122cf..287320459 100644 --- a/deprecated/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java +++ b/deprecated/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java @@ -49,7 +49,7 @@ public class ServerSidePacketRegistryImpl implements ServerSidePacketRegistry, P @Override public void sendToPlayer(PlayerEntity player, Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> completionListener) { if (player instanceof ServerPlayerEntity) { - ((ServerPlayerEntity) player).networkHandler.sendPacket(packet, completionListener); + ((ServerPlayerEntity) player).networkHandler.sendPacket(packet, GenericFutureListenerHolder.create(completionListener)); return; } diff --git a/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/api/message/v1/ServerMessageEvents.java b/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/api/message/v1/ServerMessageEvents.java index e944a818d..371ffff66 100644 --- a/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/api/message/v1/ServerMessageEvents.java +++ b/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/api/message/v1/ServerMessageEvents.java @@ -20,7 +20,6 @@ import net.minecraft.network.message.MessageType; import net.minecraft.network.message.SignedMessage; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; -import net.minecraft.server.filter.FilteredMessage; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; @@ -147,7 +146,7 @@ public final class ServerMessageEvents { * @param params the {@link MessageType.Parameters} * @return {@code true} if the message should be broadcast, otherwise {@code false} */ - boolean allowChatMessage(FilteredMessage<SignedMessage> message, ServerPlayerEntity sender, MessageType.Parameters params); + boolean allowChatMessage(SignedMessage message, ServerPlayerEntity sender, MessageType.Parameters params); } @FunctionalInterface @@ -183,7 +182,7 @@ public final class ServerMessageEvents { * @param params the {@link MessageType.Parameters} * @return {@code true} if the message should be broadcast, otherwise {@code false} */ - boolean allowCommandMessage(FilteredMessage<SignedMessage> message, ServerCommandSource source, MessageType.Parameters params); + boolean allowCommandMessage(SignedMessage message, ServerCommandSource source, MessageType.Parameters params); } @FunctionalInterface @@ -201,7 +200,7 @@ public final class ServerMessageEvents { * @param sender the player that sent the message * @param params the {@link MessageType.Parameters} */ - void onChatMessage(FilteredMessage<SignedMessage> message, ServerPlayerEntity sender, MessageType.Parameters params); + void onChatMessage(SignedMessage message, ServerPlayerEntity sender, MessageType.Parameters params); } @FunctionalInterface @@ -232,6 +231,6 @@ public final class ServerMessageEvents { * @param source the command source that sent the message * @param params the {@link MessageType.Parameters} */ - void onCommandMessage(FilteredMessage<SignedMessage> message, ServerCommandSource source, MessageType.Parameters params); + void onCommandMessage(SignedMessage message, ServerCommandSource source, MessageType.Parameters params); } } diff --git a/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/mixin/message/PlayerManagerMixin.java b/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/mixin/message/PlayerManagerMixin.java index e87b001ca..10959275f 100644 --- a/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/mixin/message/PlayerManagerMixin.java +++ b/fabric-message-api-v1/src/main/java/net/fabricmc/fabric/mixin/message/PlayerManagerMixin.java @@ -30,7 +30,6 @@ import net.minecraft.network.message.SignedMessage; import net.minecraft.server.MinecraftServer; import net.minecraft.server.PlayerManager; import net.minecraft.server.command.ServerCommandSource; -import net.minecraft.server.filter.FilteredMessage; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; @@ -42,8 +41,8 @@ public class PlayerManagerMixin { @Final private MinecraftServer server; - @Inject(method = "broadcast(Lnet/minecraft/server/filter/FilteredMessage;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At("HEAD"), cancellable = true) - private void onSendChatMessage(FilteredMessage<SignedMessage> message, ServerPlayerEntity sender, MessageType.Parameters params, CallbackInfo ci) { + @Inject(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At("HEAD"), cancellable = true) + private void onSendChatMessage(SignedMessage message, ServerPlayerEntity sender, MessageType.Parameters params, CallbackInfo ci) { if (!ServerMessageEvents.ALLOW_CHAT_MESSAGE.invoker().allowChatMessage(message, sender, params)) { ci.cancel(); return; @@ -62,8 +61,8 @@ public class PlayerManagerMixin { ServerMessageEvents.GAME_MESSAGE.invoker().onGameMessage(this.server, message, overlay); } - @Inject(method = "broadcast(Lnet/minecraft/server/filter/FilteredMessage;Lnet/minecraft/server/command/ServerCommandSource;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At("HEAD"), cancellable = true) - private void onSendCommandMessage(FilteredMessage<SignedMessage> message, ServerCommandSource source, MessageType.Parameters params, CallbackInfo ci) { + @Inject(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Lnet/minecraft/server/command/ServerCommandSource;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At("HEAD"), cancellable = true) + private void onSendCommandMessage(SignedMessage message, ServerCommandSource source, MessageType.Parameters params, CallbackInfo ci) { if (!ServerMessageEvents.ALLOW_COMMAND_MESSAGE.invoker().allowCommandMessage(message, source, params)) { ci.cancel(); return; diff --git a/fabric-message-api-v1/src/testmod/java/net/fabricmc/fabric/test/message/ChatTest.java b/fabric-message-api-v1/src/testmod/java/net/fabricmc/fabric/test/message/ChatTest.java index 60213bd82..a782f4c79 100644 --- a/fabric-message-api-v1/src/testmod/java/net/fabricmc/fabric/test/message/ChatTest.java +++ b/fabric-message-api-v1/src/testmod/java/net/fabricmc/fabric/test/message/ChatTest.java @@ -95,7 +95,7 @@ public class ChatTest implements ModInitializer { // ServerMessageEvents blocking ServerMessageEvents.ALLOW_CHAT_MESSAGE.register( - (message, sender, params) -> !message.raw().getContent().getString().contains("sadtater") + (message, sender, params) -> !message.getContent().getString().contains("sadtater") ); ServerMessageEvents.ALLOW_GAME_MESSAGE.register((server, message, overlay) -> { if (message.getContent() instanceof TranslatableTextContent translatable) { @@ -105,7 +105,7 @@ public class ChatTest implements ModInitializer { return true; }); ServerMessageEvents.ALLOW_COMMAND_MESSAGE.register( - (message, source, params) -> !message.raw().getContent().getString().contains("sadtater") + (message, source, params) -> !message.getContent().getString().contains("sadtater") ); } } diff --git a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientLoginNetworkAddon.java b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientLoginNetworkAddon.java index e847c7602..d2e6c8983 100644 --- a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientLoginNetworkAddon.java +++ b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientLoginNetworkAddon.java @@ -39,6 +39,7 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientLoginNetworking; import net.fabricmc.fabric.api.networking.v1.FutureListeners; import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.impl.networking.AbstractNetworkAddon; +import net.fabricmc.fabric.impl.networking.GenericFutureListenerHolder; @Environment(EnvType.CLIENT) public final class ClientLoginNetworkAddon extends AbstractNetworkAddon<ClientLoginNetworking.LoginQueryRequestHandler> { @@ -91,7 +92,7 @@ public final class ClientLoginNetworkAddon extends AbstractNetworkAddon<ClientLo listener = FutureListeners.union(listener, each); } - this.handler.getConnection().send(packet, listener); + this.handler.getConnection().send(packet, GenericFutureListenerHolder.create(listener)); }); } catch (Throwable ex) { this.logger.error("Encountered exception while handling in channel with name \"{}\"", channelName, ex); diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PacketSender.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PacketSender.java index 6b45f60b8..c33190f0b 100644 --- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PacketSender.java +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PacketSender.java @@ -23,6 +23,7 @@ import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import org.jetbrains.annotations.Nullable; +import net.minecraft.class_7648; import net.minecraft.network.Packet; import net.minecraft.network.PacketByteBuf; import net.minecraft.util.Identifier; @@ -55,6 +56,14 @@ public interface PacketSender { */ void sendPacket(Packet<?> packet, @Nullable GenericFutureListener<? extends Future<? super Void>> callback); + /** + * Sends a packet. + * + * @param packet the packet + * @param callback an optional callback to execute after the packet is sent, may be {@code null}. The callback may also accept a {@link ChannelFutureListener}. + */ + void sendPacket(Packet<?> packet, @Nullable class_7648 callback); + /** * Sends a packet to a channel. * @@ -76,7 +85,7 @@ public interface PacketSender { * @param callback an optional callback to execute after the packet is sent, may be {@code null} */ // the generic future listener can accept ChannelFutureListener - default void sendPacket(Identifier channel, PacketByteBuf buf, @Nullable GenericFutureListener<? extends Future<? super Void>> callback) { + default void sendPacket(Identifier channel, PacketByteBuf buf, @Nullable class_7648 callback) { Objects.requireNonNull(channel, "Channel cannot be null"); Objects.requireNonNull(buf, "Payload cannot be null"); diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/AbstractChanneledNetworkAddon.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/AbstractChanneledNetworkAddon.java index 7f764836e..477b9f4fe 100644 --- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/AbstractChanneledNetworkAddon.java +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/AbstractChanneledNetworkAddon.java @@ -30,6 +30,7 @@ import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import org.jetbrains.annotations.Nullable; +import net.minecraft.class_7648; import net.minecraft.network.ClientConnection; import net.minecraft.network.Packet; import net.minecraft.network.PacketByteBuf; @@ -176,7 +177,12 @@ public abstract class AbstractChanneledNetworkAddon<H> extends AbstractNetworkAd } @Override - public void sendPacket(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> callback) { + public void sendPacket(Packet<?> packet, @Nullable GenericFutureListener<? extends Future<? super Void>> callback) { + sendPacket(packet, GenericFutureListenerHolder.create(callback)); + } + + @Override + public void sendPacket(Packet<?> packet, class_7648 callback) { Objects.requireNonNull(packet, "Packet cannot be null"); this.connection.send(packet, callback); diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/GenericFutureListenerHolder.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/GenericFutureListenerHolder.java new file mode 100644 index 000000000..98b529ac0 --- /dev/null +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/GenericFutureListenerHolder.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2016, 2017, 2018, 2019 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.fabricmc.fabric.impl.networking; + +import java.util.Objects; + +import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.GenericFutureListener; +import org.jetbrains.annotations.Nullable; + +import net.minecraft.class_7648; +import net.minecraft.network.ClientConnection; +import net.minecraft.network.Packet; + +/** + * We still need to support {@link GenericFutureListener} so we use this disguise impl {@link class_7648} + * to get our {@link GenericFutureListener} to into {@link ClientConnection} + */ +public final class GenericFutureListenerHolder implements class_7648 { + private final GenericFutureListener<? extends Future<? super Void>> delegate; + + private GenericFutureListenerHolder(GenericFutureListener<? extends Future<? super Void>> delegate) { + this.delegate = Objects.requireNonNull(delegate); + } + + @Nullable + public static GenericFutureListenerHolder create(@Nullable GenericFutureListener<? extends Future<? super Void>> delegate) { + if (delegate == null) { + return null; + } + + return new GenericFutureListenerHolder(delegate); + } + + public GenericFutureListener<? extends Future<? super Void>> getDelegate() { + return delegate; + } + + @Override + public void method_45083() { + throw new AssertionError("Should not be called"); + } + + @Nullable + @Override + public Packet<?> method_45086() { + throw new AssertionError("Should not be called"); + } +} diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon.java index c471b26ca..26be0becf 100644 --- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon.java +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon.java @@ -29,6 +29,7 @@ import java.util.concurrent.atomic.AtomicReference; import io.netty.util.concurrent.GenericFutureListener; import org.jetbrains.annotations.Nullable; +import net.minecraft.class_7648; import net.minecraft.network.ClientConnection; import net.minecraft.network.Packet; import net.minecraft.network.PacketByteBuf; @@ -44,6 +45,7 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.fabricmc.fabric.api.networking.v1.ServerLoginConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerLoginNetworking; import net.fabricmc.fabric.impl.networking.AbstractNetworkAddon; +import net.fabricmc.fabric.impl.networking.GenericFutureListenerHolder; import net.fabricmc.fabric.mixin.networking.accessor.LoginQueryResponseC2SPacketAccessor; import net.fabricmc.fabric.mixin.networking.accessor.ServerLoginNetworkHandlerAccessor; @@ -113,8 +115,8 @@ public final class ServerLoginNetworkAddon extends AbstractNetworkAddon<ServerLo private void sendCompressionPacket() { // Compression is not needed for local transport if (this.server.getNetworkCompressionThreshold() >= 0 && !this.connection.isLocal()) { - this.connection.send(new LoginCompressionS2CPacket(this.server.getNetworkCompressionThreshold()), (channelFuture) -> - this.connection.setCompressionThreshold(this.server.getNetworkCompressionThreshold(), true) + this.connection.send(new LoginCompressionS2CPacket(this.server.getNetworkCompressionThreshold()), + class_7648.method_45084(() -> connection.setCompressionThreshold(server.getNetworkCompressionThreshold(), true)) ); } } @@ -174,7 +176,12 @@ public final class ServerLoginNetworkAddon extends AbstractNetworkAddon<ServerLo } @Override - public void sendPacket(Packet<?> packet, GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> callback) { + public void sendPacket(Packet<?> packet, @Nullable GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> callback) { + sendPacket(packet, GenericFutureListenerHolder.create(callback)); + } + + @Override + public void sendPacket(Packet<?> packet, class_7648 callback) { Objects.requireNonNull(packet, "Packet cannot be null"); this.connection.send(packet, callback); diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ClientConnectionMixin.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ClientConnectionMixin.java index c04686245..72b2cf97c 100644 --- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ClientConnectionMixin.java +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ClientConnectionMixin.java @@ -20,9 +20,10 @@ import java.util.Collection; import java.util.Collections; import java.util.concurrent.ConcurrentHashMap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.GenericFutureListener; +import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -30,9 +31,12 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import net.minecraft.class_7648; import net.minecraft.network.ClientConnection; import net.minecraft.network.NetworkSide; +import net.minecraft.network.NetworkState; import net.minecraft.network.Packet; import net.minecraft.network.listener.PacketListener; import net.minecraft.text.Text; @@ -40,6 +44,7 @@ import net.minecraft.util.Identifier; import net.fabricmc.fabric.impl.networking.ChannelInfoHolder; import net.fabricmc.fabric.impl.networking.DisconnectPacketSource; +import net.fabricmc.fabric.impl.networking.GenericFutureListenerHolder; import net.fabricmc.fabric.impl.networking.NetworkHandlerExtensions; import net.fabricmc.fabric.impl.networking.PacketCallbackListener; @@ -49,10 +54,10 @@ abstract class ClientConnectionMixin implements ChannelInfoHolder { private PacketListener packetListener; @Shadow - public abstract void send(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> callback); + public abstract void disconnect(Text disconnectReason); @Shadow - public abstract void disconnect(Text disconnectReason); + public abstract void send(Packet<?> packet, @Nullable class_7648 arg); @Unique private Collection<Identifier> playChannels; @@ -63,9 +68,8 @@ abstract class ClientConnectionMixin implements ChannelInfoHolder { } // Must be fully qualified due to mixin not working in production without it - @SuppressWarnings("UnnecessaryQualifiedMemberReference") - @Redirect(method = "Lnet/minecraft/network/ClientConnection;exceptionCaught(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/ClientConnection;send(Lnet/minecraft/network/Packet;Lio/netty/util/concurrent/GenericFutureListener;)V")) - private void resendOnExceptionCaught(ClientConnection self, Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> listener, ChannelHandlerContext context, Throwable ex) { + @Redirect(method = "exceptionCaught", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/ClientConnection;send(Lnet/minecraft/network/Packet;Lnet/minecraft/class_7648;)V")) + private void resendOnExceptionCaught(ClientConnection self, Packet<?> packet, class_7648 listener, ChannelHandlerContext context, Throwable ex) { PacketListener handler = this.packetListener; Text disconnectMessage = Text.translatable("disconnect.genericReason", "Internal Exception: " + ex); @@ -77,7 +81,7 @@ abstract class ClientConnectionMixin implements ChannelInfoHolder { } @Inject(method = "sendImmediately", at = @At(value = "FIELD", target = "Lnet/minecraft/network/ClientConnection;packetsSentCounter:I")) - private void checkPacket(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> callback, CallbackInfo ci) { + private void checkPacket(Packet<?> packet, class_7648 callback, CallbackInfo ci) { if (this.packetListener instanceof PacketCallbackListener) { ((PacketCallbackListener) this.packetListener).sent(packet); } @@ -90,6 +94,15 @@ abstract class ClientConnectionMixin implements ChannelInfoHolder { } } + @Inject(method = "sendInternal", at = @At(value = "INVOKE_ASSIGN", target = "Lio/netty/channel/Channel;writeAndFlush(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;"), locals = LocalCapture.CAPTURE_FAILHARD) + private void sendInternal(Packet<?> packet, @Nullable class_7648 listener, NetworkState packetState, NetworkState currentState, CallbackInfo ci, ChannelFuture channelFuture) { + if (listener instanceof GenericFutureListenerHolder holder) { + channelFuture.addListener(holder.getDelegate()); + channelFuture.addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE); + ci.cancel(); + } + } + @Override public Collection<Identifier> getPendingChannelsNames() { return this.playChannels; diff --git a/gradle.properties b/gradle.properties index 3464e4beb..922f2569b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ org.gradle.jvmargs=-Xmx2560M org.gradle.parallel=true -version=0.58.2 -minecraft_version=1.19.1-rc2 +version=0.58.3 +minecraft_version=1.19.1-rc3 yarn_version=+build.1 loader_version=0.14.8 @@ -16,10 +16,10 @@ fabric-blockrenderlayer-v1-version=1.1.18 fabric-command-api-v1-version=1.2.9 fabric-command-api-v2-version=2.1.5 fabric-commands-v0-version=0.2.26 -fabric-containers-v0-version=0.1.29 +fabric-containers-v0-version=0.1.30 fabric-content-registries-v0-version=3.2.1 fabric-crash-report-info-v1-version=0.2.3 -fabric-data-generation-api-v1-version=5.1.3 +fabric-data-generation-api-v1-version=5.1.4 fabric-dimensions-v1-version=2.1.28 fabric-entity-events-v1-version=1.4.16 fabric-events-interaction-v0-version=0.4.26 @@ -33,14 +33,14 @@ fabric-keybindings-v0-version=0.2.16 fabric-lifecycle-events-v1-version=2.1.0 fabric-loot-api-v2-version=1.1.1 fabric-loot-tables-v1-version=1.1.4 -fabric-message-api-v1-version=4.0.0 +fabric-message-api-v1-version=5.0.0 fabric-mining-level-api-v1-version=2.1.11 fabric-models-v0-version=0.3.15 -fabric-networking-api-v1-version=1.1.0 -fabric-networking-v0-version=0.3.16 +fabric-networking-api-v1-version=1.2.0 +fabric-networking-v0-version=0.3.17 fabric-object-builder-api-v1-version=4.0.8 fabric-particles-v1-version=1.0.8 -fabric-registry-sync-v0-version=0.9.19 +fabric-registry-sync-v0-version=0.9.20 fabric-renderer-api-v1-version=1.0.8 fabric-renderer-indigo-version=0.6.10 fabric-renderer-registries-v1-version=3.2.18 @@ -51,7 +51,7 @@ fabric-rendering-v1-version=1.10.14 fabric-resource-conditions-api-v1-version=2.0.9 fabric-resource-loader-v0-version=0.5.6 fabric-screen-api-v1-version=1.0.24 -fabric-screen-handler-api-v1-version=1.2.8 +fabric-screen-handler-api-v1-version=1.2.9 fabric-textures-v0-version=1.0.18 fabric-transfer-api-v1-version=2.0.9 fabric-transitive-access-wideners-v1-version=1.1.1