fix plugin message

This commit is contained in:
tanyaofei 2025-07-22 09:26:35 +08:00
parent 61d4ba297d
commit fe316696d4
3 changed files with 32 additions and 5 deletions

View File

@ -3,6 +3,7 @@ package io.github.hello09x.fakeplayer.v1_21_5.network;
import io.github.hello09x.fakeplayer.api.spi.NMSServerGamePacketListener; import io.github.hello09x.fakeplayer.api.spi.NMSServerGamePacketListener;
import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.Main;
import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager;
import lombok.Lombok;
import net.minecraft.network.Connection; import net.minecraft.network.Connection;
import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket; import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket;
@ -16,6 +17,7 @@ import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_21_R4.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_21_R4.entity.CraftPlayer;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.lang.reflect.InvocationTargetException;
import java.util.Optional; import java.util.Optional;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -66,7 +68,7 @@ public class FakeServerGamePacketListenerImpl extends ServerGamePacketListenerIm
return; return;
} }
if (!(payload instanceof DiscardedPayload p)) { if (!(payload instanceof DiscardedPayload discardedPayload)) {
return; return;
} }
@ -82,8 +84,20 @@ public class FakeServerGamePacketListenerImpl extends ServerGamePacketListenerIm
return; return;
} }
var message = p.data().array(); var message = getDiscardedPayloadData(discardedPayload);
recipient.sendPluginMessage(Main.getInstance(), BUNGEE_CORD_CHANNEL, message); recipient.sendPluginMessage(Main.getInstance(), BUNGEE_CORD_CHANNEL, message);
} }
private byte[] getDiscardedPayloadData(@NotNull DiscardedPayload payload) {
try {
return payload.data().array();
} catch (NoSuchMethodError e) {
try {
return (byte[]) payload.getClass().getMethod("data").invoke(payload); // 1.21.5 actual is `public final byte[] data() {}`
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) {
throw Lombok.sneakyThrow(e);
}
}
}
} }

View File

@ -3,6 +3,7 @@ package io.github.hello09x.fakeplayer.v1_21_6.network;
import io.github.hello09x.fakeplayer.api.spi.NMSServerGamePacketListener; import io.github.hello09x.fakeplayer.api.spi.NMSServerGamePacketListener;
import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.Main;
import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager;
import lombok.Lombok;
import net.minecraft.network.Connection; import net.minecraft.network.Connection;
import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket; import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket;
@ -75,7 +76,7 @@ public class FakeServerGamePacketListenerImpl extends ServerGamePacketListenerIm
return; return;
} }
if (!(payload instanceof DiscardedPayload p)) { if (!(payload instanceof DiscardedPayload discardedPayload)) {
return; return;
} }
@ -91,8 +92,20 @@ public class FakeServerGamePacketListenerImpl extends ServerGamePacketListenerIm
return; return;
} }
var message = p.data().array(); var message = getDiscardedPayloadData(discardedPayload);
recipient.sendPluginMessage(Main.getInstance(), BUNGEE_CORD_CHANNEL, message); recipient.sendPluginMessage(Main.getInstance(), BUNGEE_CORD_CHANNEL, message);
} }
private byte[] getDiscardedPayloadData(@NotNull DiscardedPayload payload) {
try {
return payload.data().array();
} catch (NoSuchMethodError e) {
try {
return (byte[]) payload.getClass().getMethod("data").invoke(payload); // 1.21.5 actual is `public final byte[] data() {}`
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) {
throw Lombok.sneakyThrow(e);
}
}
}
} }

View File

@ -32,7 +32,7 @@
<properties> <properties>
<java.version>21</java.version> <java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>0.3.16</revision> <revision>0.3.17</revision>
<detools.version>0.1.6-SNAPSHOT</detools.version> <detools.version>0.1.6-SNAPSHOT</detools.version>
</properties> </properties>