From cdd31f646d079755886a254fc4408509698b56af Mon Sep 17 00:00:00 2001 From: tanyaofei Date: Thu, 8 Aug 2024 15:55:44 +0800 Subject: [PATCH] Provide a FakePipeline --- fakeplayer-core/pom.xml | 7 + .../fakeplayer/core}/network/FakeChannel.java | 8 +- .../core/network/FakeChannelPipeline.java | 371 ++++++++++++++++++ fakeplayer-dist/pom.xml | 5 + .../v1_20_R1/network/FakeConnection.java | 7 +- .../v1_20_R2/network/FakeChannel.java | 101 ----- .../v1_20_R2/network/FakeConnection.java | 6 +- .../v1_20_R3_R4/network/FakeChannel.java | 100 ----- .../v1_20_R3_R4/network/FakeConnection.java | 6 +- .../v1_20_R5_R6/network/FakeChannel.java | 100 ----- .../v1_20_R5_R6/network/FakeConnection.java | 6 +- .../v1_21_R1/network/FakeChannel.java | 99 ----- .../v1_21_R1/network/FakeConnection.java | 11 +- 13 files changed, 395 insertions(+), 432 deletions(-) rename {fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1 => fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core}/network/FakeChannel.java (91%) create mode 100644 fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannelPipeline.java delete mode 100644 fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeChannel.java delete mode 100644 fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeChannel.java delete mode 100644 fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeChannel.java delete mode 100644 fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeChannel.java diff --git a/fakeplayer-core/pom.xml b/fakeplayer-core/pom.xml index a48639a..1d07a2d 100644 --- a/fakeplayer-core/pom.xml +++ b/fakeplayer-core/pom.xml @@ -70,6 +70,13 @@ provided + + io.netty + netty-transport + 4.1.82.Final + provided + + diff --git a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeChannel.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannel.java similarity index 91% rename from fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeChannel.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannel.java index b7b3875..d3e0d72 100644 --- a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeChannel.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannel.java @@ -1,4 +1,4 @@ -package io.github.hello09x.fakeplayer.v1_20_R1.network; +package io.github.hello09x.fakeplayer.core.network; import io.netty.channel.*; import org.jetbrains.annotations.NotNull; @@ -11,6 +11,7 @@ import java.net.SocketAddress; public class FakeChannel extends AbstractChannel { private final static EventLoop EVENT_LOOP = new DefaultEventLoop(); private final ChannelConfig config = new DefaultChannelConfig(this); + private final ChannelPipeline pipeline = new FakeChannelPipeline(this); private final InetAddress address; public FakeChannel(@Nullable Channel parent, @NotNull InetAddress address) { @@ -66,6 +67,11 @@ public class FakeChannel extends AbstractChannel { return true; } + @Override + public ChannelPipeline pipeline() { + return pipeline; + } + @Override protected SocketAddress localAddress0() { return new InetSocketAddress(address, 25565); diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannelPipeline.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannelPipeline.java new file mode 100644 index 0000000..699158e --- /dev/null +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/network/FakeChannelPipeline.java @@ -0,0 +1,371 @@ +package io.github.hello09x.fakeplayer.core.network; + +import io.netty.channel.*; +import io.netty.util.ReferenceCountUtil; +import io.netty.util.concurrent.EventExecutorGroup; +import org.jetbrains.annotations.NotNull; + +import java.net.SocketAddress; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * @author tanyaofei + * @since 2024/8/8 + **/ +public class FakeChannelPipeline implements ChannelPipeline { + + private final Channel channel; + + public FakeChannelPipeline(Channel channel) { + this.channel = channel; + } + + @Override + public ChannelPipeline addFirst(String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addFirst(EventExecutorGroup group, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addLast(String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addLast(EventExecutorGroup group, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addBefore(String baseName, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addBefore(EventExecutorGroup group, String baseName, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addAfter(String baseName, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addAfter(EventExecutorGroup group, String baseName, String name, ChannelHandler handler) { + return this; + } + + @Override + public ChannelPipeline addFirst(ChannelHandler... handlers) { + return this; + } + + @Override + public ChannelPipeline addFirst(EventExecutorGroup group, ChannelHandler... handlers) { + return this; + } + + @Override + public ChannelPipeline addLast(ChannelHandler... handlers) { + return this; + } + + @Override + public ChannelPipeline addLast(EventExecutorGroup group, ChannelHandler... handlers) { + return this; + } + + @Override + public ChannelPipeline remove(ChannelHandler handler) { + return this; + } + + @Override + public ChannelHandler remove(String name) { + return null; + } + + @Override + public T remove(Class handlerType) { + return null; + } + + @Override + public ChannelHandler removeFirst() { + return null; + } + + @Override + public ChannelHandler removeLast() { + return null; + } + + @Override + public ChannelPipeline replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler) { + return this; + } + + @Override + public ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler) { + return null; + } + + @Override + public T replace(Class oldHandlerType, String newName, ChannelHandler newHandler) { + return null; + } + + @Override + public ChannelHandler first() { + return null; + } + + @Override + public ChannelHandlerContext firstContext() { + return null; + } + + @Override + public ChannelHandler last() { + return null; + } + + @Override + public ChannelHandlerContext lastContext() { + return null; + } + + @Override + public ChannelHandler get(String name) { + return null; + } + + @Override + public T get(Class handlerType) { + return null; + } + + @Override + public ChannelHandlerContext context(ChannelHandler handler) { + return null; + } + + @Override + public ChannelHandlerContext context(String name) { + return null; + } + + @Override + public ChannelHandlerContext context(Class handlerType) { + return null; + } + + @Override + public Channel channel() { + return this.channel; + } + + @Override + public List names() { + return List.of(); + } + + @Override + public Map toMap() { + return Map.of(); + } + + @Override + public ChannelPipeline fireChannelRegistered() { + return this; + } + + @Override + public ChannelPipeline fireChannelUnregistered() { + return this; + } + + @Override + public ChannelPipeline fireChannelActive() { + return this; + } + + @Override + public ChannelPipeline fireChannelInactive() { + return this; + } + + @Override + public ChannelPipeline fireExceptionCaught(Throwable cause) { + return this; + } + + @Override + public ChannelPipeline fireUserEventTriggered(Object event) { + return this; + } + + @Override + public ChannelPipeline fireChannelRead(Object msg) { + ReferenceCountUtil.release(msg); + return this; + } + + @Override + public ChannelPipeline fireChannelReadComplete() { + return this; + } + + @Override + public ChannelPipeline fireChannelWritabilityChanged() { + return this; + } + + @Override + public ChannelFuture bind(SocketAddress localAddress) { + return newSucceededFuture(); + } + + @Override + public ChannelFuture connect(SocketAddress remoteAddress) { + return newSucceededFuture(); + } + + @Override + public ChannelFuture connect(SocketAddress remoteAddress, SocketAddress localAddress) { + return newSucceededFuture(); + } + + @Override + public ChannelFuture disconnect() { + return newSucceededFuture(); + } + + @Override + public ChannelFuture close() { + return newSucceededFuture(); + } + + @Override + public ChannelFuture deregister() { + return newSucceededFuture(); + } + + @Override + public ChannelFuture bind(SocketAddress localAddress, ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture connect(SocketAddress remoteAddress, ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture disconnect(ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture close(ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture deregister(ChannelPromise promise) { + promise.setSuccess(); + return promise; + } + + @Override + public ChannelOutboundInvoker read() { + return null; + } + + @Override + public ChannelFuture write(Object msg) { + ReferenceCountUtil.release(msg); + return newSucceededFuture(); + } + + @Override + public ChannelFuture write(Object msg, ChannelPromise promise) { + ReferenceCountUtil.release(msg); + promise.setSuccess(); + return promise; + } + + @Override + public ChannelPipeline flush() { + return this; + } + + @Override + public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) { + ReferenceCountUtil.release(msg); + promise.setSuccess(); + return promise; + } + + @Override + public ChannelFuture writeAndFlush(Object msg) { + ReferenceCountUtil.release(msg); + return newSucceededFuture(); + } + + @Override + public ChannelPromise newPromise() { + return new DefaultChannelPromise(this.channel); + } + + @Override + public ChannelProgressivePromise newProgressivePromise() { + return null; + } + + @Override + public ChannelFuture newSucceededFuture() { + var promise = new DefaultChannelPromise(this.channel); + promise.setSuccess(null); + return promise; + } + + @Override + public ChannelFuture newFailedFuture(Throwable cause) { + var promise = new DefaultChannelPromise(this.channel); + promise.setFailure(cause); + return promise; + } + + @Override + public ChannelPromise voidPromise() { + var promise = new DefaultChannelPromise(this.channel); + promise.setSuccess(null); + return promise; + } + + @NotNull + @Override + public Iterator> iterator() { + return Collections.emptyMap().entrySet().iterator(); + } + +} diff --git a/fakeplayer-dist/pom.xml b/fakeplayer-dist/pom.xml index 6cfbdcc..9310f37 100644 --- a/fakeplayer-dist/pom.xml +++ b/fakeplayer-dist/pom.xml @@ -99,6 +99,11 @@ package + + + + + diff --git a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeConnection.java b/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeConnection.java index 872c47a..e27ff64 100644 --- a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeConnection.java +++ b/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/network/FakeConnection.java @@ -1,11 +1,10 @@ package io.github.hello09x.fakeplayer.v1_20_R1.network; -import io.netty.channel.ChannelDuplexHandler; +import io.github.hello09x.fakeplayer.core.network.FakeChannel; import net.minecraft.network.Connection; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; -import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; import java.net.InetAddress; @@ -15,9 +14,6 @@ public class FakeConnection extends Connection { super(PacketFlow.SERVERBOUND); this.channel = new FakeChannel(null, address); this.address = this.channel.remoteAddress(); - if (Bukkit.getServer().getName().contains("Leaves")) { - this.channel.pipeline().addLast("packet_handler", new ChannelDuplexHandler()); - } } @Override @@ -35,6 +31,5 @@ public class FakeConnection extends Connection { @Override public void handleDisconnection() { - super.handleDisconnection(); } } \ No newline at end of file diff --git a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeChannel.java b/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeChannel.java deleted file mode 100644 index 11f03af..0000000 --- a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeChannel.java +++ /dev/null @@ -1,101 +0,0 @@ -package io.github.hello09x.fakeplayer.v1_20_R2.network; - -import io.netty.channel.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; - -public class FakeChannel extends AbstractChannel { - - private final static EventLoop EVENT_LOOP = new DefaultEventLoop(); - - private final ChannelConfig config = new DefaultChannelConfig(this); - - private final InetAddress address; - - public FakeChannel(@Nullable Channel parent, @NotNull InetAddress address) { - super(parent); - this.address = address; - } - - @Override - public ChannelConfig config() { - config.setAutoRead(true); - return config; - } - - @Override - protected void doBeginRead() throws Exception { - } - - @Override - protected void doBind(SocketAddress arg0) throws Exception { - } - - @Override - protected void doClose() throws Exception { - } - - @Override - protected void doDisconnect() throws Exception { - } - - @Override - protected void doWrite(ChannelOutboundBuffer in) throws Exception { - for (;;) { - Object msg = in.current(); - if (msg == null) { - break; - } - in.remove(); - } - } - - @Override - public boolean isActive() { - return true; - } - - @Override - protected boolean isCompatible(EventLoop arg0) { - return true; - } - - @Override - public boolean isOpen() { - return true; - } - - @Override - protected SocketAddress localAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public ChannelMetadata metadata() { - return new ChannelMetadata(true); - } - - @Override - protected AbstractUnsafe newUnsafe() { - return new AbstractUnsafe() { - @Override - public void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { - safeSetSuccess(promise); - } - }; - } - - @Override - protected SocketAddress remoteAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public EventLoop eventLoop() { - return EVENT_LOOP; - } -} diff --git a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeConnection.java b/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeConnection.java index 191bc32..ab3d62c 100644 --- a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeConnection.java +++ b/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/network/FakeConnection.java @@ -1,12 +1,11 @@ package io.github.hello09x.fakeplayer.v1_20_R2.network; -import io.netty.channel.ChannelDuplexHandler; +import io.github.hello09x.fakeplayer.core.network.FakeChannel; import net.minecraft.network.Connection; import net.minecraft.network.ConnectionProtocol; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; -import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; import java.net.InetAddress; @@ -18,9 +17,6 @@ public class FakeConnection extends Connection { this.channel = new FakeChannel(null, address); this.address = this.channel.remoteAddress(); Connection.configureSerialization(this.channel.pipeline(), PacketFlow.SERVERBOUND, null); - if (Bukkit.getServer().getName().contains("Leaves")) { - this.channel.pipeline().addLast("packet_handler", new ChannelDuplexHandler()); - } } @Override diff --git a/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeChannel.java b/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeChannel.java deleted file mode 100644 index f03a3f7..0000000 --- a/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeChannel.java +++ /dev/null @@ -1,100 +0,0 @@ -package io.github.hello09x.fakeplayer.v1_20_R3_R4.network; - -import io.netty.channel.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; - -public class FakeChannel extends AbstractChannel { - - private final static EventLoop EVENT_LOOP = new DefaultEventLoop(); - private final ChannelConfig config = new DefaultChannelConfig(this); - - private final InetAddress address; - - public FakeChannel(@Nullable Channel parent, @NotNull InetAddress address) { - super(parent); - this.address = address; - } - - @Override - public ChannelConfig config() { - config.setAutoRead(true); - return config; - } - - @Override - protected void doBeginRead() throws Exception { - } - - @Override - protected void doBind(SocketAddress arg0) throws Exception { - } - - @Override - protected void doClose() throws Exception { - } - - @Override - protected void doDisconnect() throws Exception { - } - - @Override - protected void doWrite(ChannelOutboundBuffer in) throws Exception { - for (;;) { - Object msg = in.current(); - if (msg == null) { - break; - } - in.remove(); - } - } - - @Override - public boolean isActive() { - return true; - } - - @Override - protected boolean isCompatible(EventLoop arg0) { - return true; - } - - @Override - public boolean isOpen() { - return true; - } - - @Override - protected SocketAddress localAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public ChannelMetadata metadata() { - return new ChannelMetadata(true); - } - - @Override - protected AbstractUnsafe newUnsafe() { - return new AbstractUnsafe() { - @Override - public void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { - safeSetSuccess(promise); - } - }; - } - - @Override - protected SocketAddress remoteAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public EventLoop eventLoop() { - return EVENT_LOOP; - } -} diff --git a/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeConnection.java b/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeConnection.java index cdf540a..6286b43 100644 --- a/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeConnection.java +++ b/fakeplayer-v1_20_R3_R4/src/main/java/io/github/hello09x/fakeplayer/v1_20_R3_R4/network/FakeConnection.java @@ -1,12 +1,11 @@ package io.github.hello09x.fakeplayer.v1_20_R3_R4.network; -import io.netty.channel.ChannelDuplexHandler; +import io.github.hello09x.fakeplayer.core.network.FakeChannel; import net.minecraft.network.Connection; import net.minecraft.network.ConnectionProtocol; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; -import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; import java.net.InetAddress; @@ -18,9 +17,6 @@ public class FakeConnection extends Connection { this.channel = new FakeChannel(null, address); this.address = this.channel.remoteAddress(); Connection.configureSerialization(this.channel.pipeline(), PacketFlow.SERVERBOUND, null); - if (Bukkit.getServer().getName().contains("Leaves")) { - this.channel.pipeline().addLast("packet_handler", new ChannelDuplexHandler()); - } } @Override diff --git a/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeChannel.java b/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeChannel.java deleted file mode 100644 index 8c836c4..0000000 --- a/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeChannel.java +++ /dev/null @@ -1,100 +0,0 @@ -package io.github.hello09x.fakeplayer.v1_20_R5_R6.network; - -import io.netty.channel.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; - -public class FakeChannel extends AbstractChannel { - - private final static EventLoop EVENT_LOOP = new DefaultEventLoop(); - private final ChannelConfig config = new DefaultChannelConfig(this); - - private final InetAddress address; - - public FakeChannel(@Nullable Channel parent, @NotNull InetAddress address) { - super(parent); - this.address = address; - } - - @Override - public ChannelConfig config() { - config.setAutoRead(true); - return config; - } - - @Override - protected void doBeginRead() throws Exception { - } - - @Override - protected void doBind(SocketAddress arg0) throws Exception { - } - - @Override - protected void doClose() throws Exception { - } - - @Override - protected void doDisconnect() throws Exception { - } - - @Override - protected void doWrite(ChannelOutboundBuffer in) throws Exception { - for (;;) { - Object msg = in.current(); - if (msg == null) { - break; - } - in.remove(); - } - } - - @Override - public boolean isActive() { - return true; - } - - @Override - protected boolean isCompatible(EventLoop arg0) { - return true; - } - - @Override - public boolean isOpen() { - return true; - } - - @Override - protected SocketAddress localAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public ChannelMetadata metadata() { - return new ChannelMetadata(true); - } - - @Override - protected AbstractUnsafe newUnsafe() { - return new AbstractUnsafe() { - @Override - public void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { - safeSetSuccess(promise); - } - }; - } - - @Override - protected SocketAddress remoteAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public EventLoop eventLoop() { - return EVENT_LOOP; - } -} diff --git a/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeConnection.java b/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeConnection.java index ff0bfec..bb91a06 100644 --- a/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeConnection.java +++ b/fakeplayer-v1_20_R5_R6/src/main/java/io/github/hello09x/fakeplayer/v1_20_R5_R6/network/FakeConnection.java @@ -1,11 +1,10 @@ package io.github.hello09x.fakeplayer.v1_20_R5_R6.network; -import io.netty.channel.ChannelDuplexHandler; +import io.github.hello09x.fakeplayer.core.network.FakeChannel; import net.minecraft.network.Connection; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; -import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; import java.net.InetAddress; @@ -17,9 +16,6 @@ public class FakeConnection extends Connection { this.channel = new FakeChannel(null, address); this.address = this.channel.remoteAddress(); Connection.configureSerialization(this.channel.pipeline(), PacketFlow.SERVERBOUND, false, null); - if (Bukkit.getServer().getName().contains("Leaves")) { - this.channel.pipeline().addLast("packet_handler", new ChannelDuplexHandler()); - } } @Override diff --git a/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeChannel.java b/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeChannel.java deleted file mode 100644 index 2006b5d..0000000 --- a/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeChannel.java +++ /dev/null @@ -1,99 +0,0 @@ -package io.github.hello09x.fakeplayer.v1_21_R1.network; - -import io.netty.channel.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; - -public class FakeChannel extends AbstractChannel { - private final static EventLoop EVENT_LOOP = new DefaultEventLoop(); - private final ChannelConfig config = new DefaultChannelConfig(this); - - private final InetAddress address; - - public FakeChannel(@Nullable Channel parent, @NotNull InetAddress address) { - super(parent); - this.address = address; - } - - @Override - public ChannelConfig config() { - config.setAutoRead(true); - return config; - } - - @Override - protected void doBeginRead() throws Exception { - } - - @Override - protected void doBind(SocketAddress arg0) throws Exception { - } - - @Override - protected void doClose() throws Exception { - } - - @Override - protected void doDisconnect() throws Exception { - } - - @Override - protected void doWrite(ChannelOutboundBuffer in) throws Exception { - for (;;) { - Object msg = in.current(); - if (msg == null) { - break; - } - in.remove(); - } - } - - @Override - public boolean isActive() { - return true; - } - - @Override - protected boolean isCompatible(EventLoop arg0) { - return true; - } - - @Override - public boolean isOpen() { - return true; - } - - @Override - protected SocketAddress localAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public ChannelMetadata metadata() { - return new ChannelMetadata(true); - } - - @Override - protected AbstractUnsafe newUnsafe() { - return new AbstractUnsafe() { - @Override - public void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { - safeSetSuccess(promise); - } - }; - } - - @Override - protected SocketAddress remoteAddress0() { - return new InetSocketAddress(address, 25565); - } - - @Override - public EventLoop eventLoop() { - return EVENT_LOOP; - } -} diff --git a/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeConnection.java b/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeConnection.java index cc1d70c..bb274da 100644 --- a/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeConnection.java +++ b/fakeplayer-v1_21_R1/src/main/java/io/github/hello09x/fakeplayer/v1_21_R1/network/FakeConnection.java @@ -2,12 +2,11 @@ package io.github.hello09x.fakeplayer.v1_21_R1.network; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; -import io.netty.channel.ChannelDuplexHandler; +import io.github.hello09x.fakeplayer.core.network.FakeChannel; import net.minecraft.network.Connection; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; -import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -24,9 +23,6 @@ public class FakeConnection extends Connection { this.channel = new FakeChannel(null, address); this.address = this.channel.remoteAddress(); Connection.configureSerialization(this.channel.pipeline(), PacketFlow.SERVERBOUND, false, null); - if (Bukkit.getServer().getName().contains("Leaves")) { - this.channel.pipeline().addLast("packet_handler", new ChannelDuplexHandler()); - } } @Override @@ -44,9 +40,4 @@ public class FakeConnection extends Connection { } -// public void setProtocolAttr(@NotNull ConnectionProtocol protocol) { -// this.channel.attr(Connection.ATTRIBUTE_SERVERBOUND_PROTOCOL).set(protocol.codec(PacketFlow.SERVERBOUND)); -// this.channel.attr(Connection.ATTRIBUTE_CLIENTBOUND_PROTOCOL).set(protocol.codec(PacketFlow.CLIENTBOUND)); -// } - } \ No newline at end of file