Send channels in one pass
This commit is contained in:
parent
2e3ff1e97f
commit
c05e80d6ff
@ -136,11 +136,6 @@ public abstract class PlayerListMixin implements PlayerListBridge {
|
||||
cserver = ArclightServer.createOrLoad((DedicatedServer) minecraftServer, (PlayerList) (Object) this);
|
||||
}
|
||||
|
||||
@Inject(method = "initializeConnectionToPlayer", at = @At(value = "INVOKE", remap = false, target = "Lnet/minecraftforge/fml/network/NetworkHooks;sendMCRegistryPackets(Lnet/minecraft/network/NetworkManager;Ljava/lang/String;)V"))
|
||||
private void arclight$sendChannel(NetworkManager netManager, ServerPlayerEntity playerIn, CallbackInfo ci) {
|
||||
((ServerPlayerEntityBridge) playerIn).bridge$getBukkitEntity().sendSupportedChannels();
|
||||
}
|
||||
|
||||
@Redirect(method = "initializeConnectionToPlayer", at = @At(value = "FIELD", target = "Lnet/minecraft/server/management/PlayerList;viewDistance:I"))
|
||||
private int arclight$spigotViewDistance(PlayerList playerList, NetworkManager netManager, ServerPlayerEntity playerIn) {
|
||||
return ((WorldBridge) playerIn.getServerWorld()).bridge$spigotConfig().viewDistance;
|
||||
|
||||
@ -6,8 +6,11 @@ import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
import net.minecraft.inventory.container.INamedContainerProvider;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.fml.network.NetworkHooks;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.craftbukkit.v.event.CraftEventFactory;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@ -15,6 +18,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@Mixin(NetworkHooks.class)
|
||||
@ -35,4 +39,9 @@ public class NetworkHooksMixin {
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "sendMCRegistryPackets", remap = false, locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/network/FMLMCRegisterPacketHandler;addChannels(Ljava/util/Set;Lnet/minecraft/network/NetworkManager;)V"))
|
||||
private static void arclight$withBukkitChannels(NetworkManager manager, String direction, CallbackInfo ci, Set<ResourceLocation> resourceLocations) {
|
||||
Bukkit.getMessenger().getIncomingChannels().stream().map(ResourceLocation::new).forEach(resourceLocations::add);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user