Skip to content

Commit 3a2002e

Browse files
committed
chore: use bukkit api to send payloads
1 parent 697b280 commit 3a2002e

File tree

1 file changed

+5
-34
lines changed

1 file changed

+5
-34
lines changed

bukkit/src/main/java/com/github/juliarn/npclib/bukkit/protocol/ProtocolLibPacketAdapter.java

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@
3232
import com.comphenix.protocol.events.PacketEvent;
3333
import com.comphenix.protocol.utility.MinecraftReflection;
3434
import com.comphenix.protocol.utility.MinecraftVersion;
35-
import com.comphenix.protocol.wrappers.CustomPacketPayloadWrapper;
3635
import com.comphenix.protocol.wrappers.EnumWrappers;
37-
import com.comphenix.protocol.wrappers.MinecraftKey;
3836
import com.comphenix.protocol.wrappers.Pair;
3937
import com.comphenix.protocol.wrappers.PlayerInfoData;
4038
import com.comphenix.protocol.wrappers.WrappedChatComponent;
@@ -64,8 +62,6 @@
6462
import com.google.common.collect.Lists;
6563
import io.leangen.geantyref.GenericTypeReflector;
6664
import io.leangen.geantyref.TypeFactory;
67-
import io.netty.buffer.ByteBuf;
68-
import io.netty.buffer.Unpooled;
6965
import java.lang.reflect.ParameterizedType;
7066
import java.lang.reflect.Type;
7167
import java.util.AbstractMap;
@@ -209,6 +205,9 @@ final class ProtocolLibPacketAdapter implements PlatformPacketAdapter<World, Pla
209205
.build();
210206
}
211207

208+
// MonotonicNonNull, lazily initialized
209+
private Platform<World, Player, ItemStack, Plugin> platform;
210+
212211
private static @Nullable WrappedWatchableObject createWatchableObject(
213212
int index,
214213
@NotNull Type type,
@@ -494,36 +493,8 @@ final class ProtocolLibPacketAdapter implements PlatformPacketAdapter<World, Pla
494493
byte[] payload
495494
) {
496495
return (player, npc) -> {
497-
// CustomPayload (https://wiki.vg/Protocol#Custom_Payload)
498-
PacketContainer container = new PacketContainer(PacketType.Play.Server.CUSTOM_PAYLOAD);
499-
500-
if (MinecraftVersion.AQUATIC_UPDATE.atOrAbove()) {
501-
// mc 1.13: channel id is now in the format of a resource location
502-
String[] parts = channelId.split(":", 2);
503-
MinecraftKey key = parts.length == 1 ? new MinecraftKey(channelId) : new MinecraftKey(parts[0], parts[1]);
504-
505-
if (MinecraftVersion.CONFIG_PHASE_PROTOCOL_UPDATE.atOrAbove()) {
506-
// mc 1.20.2: custom payload info is in a wrapper object
507-
CustomPacketPayloadWrapper payloadWrapper = new CustomPacketPayloadWrapper(payload, key);
508-
container.getCustomPacketPayloads().write(0, payloadWrapper);
509-
} else {
510-
// pre 1.20.2: payload key is a plain field
511-
container.getMinecraftKeys().write(0, key);
512-
}
513-
} else {
514-
// mc 1.8: channel id is a string
515-
container.getStrings().write(0, channelId);
516-
}
517-
518-
if (!MinecraftVersion.CONFIG_PHASE_PROTOCOL_UPDATE.atOrAbove()) {
519-
// pre 1.20.2: payload data is a ByteBuf field
520-
ByteBuf buffer = Unpooled.copiedBuffer(payload);
521-
Object wrappedSerializableBuffer = MinecraftReflection.getPacketDataSerializer(buffer);
522-
container.getModifier().withType(ByteBuf.class).write(0, wrappedSerializableBuffer);
523-
}
524-
525-
// send the packet without notifying any bound packet listeners
526-
PROTOCOL_MANAGER.sendServerPacket(player, container, false);
496+
Plugin plugin = this.platform.extension();
497+
player.sendPluginMessage(plugin, channelId, payload);
527498
};
528499
}
529500

0 commit comments

Comments
 (0)