下面列出了org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer#net.minecraft.util.io.netty.buffer.Unpooled 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static HawkAsyncPlayerMetadataEvent packetToPlayerMetadataEvent(PacketPlayOutEntityMetadata packet, Player p) {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer(0));
packet.b(serializer);
int id = serializer.readInt();
List metaData = DataWatcher.b(serializer);
if(id != p.getEntityId() || metaData == null)
return null;
List<WrappedWatchableObject> wrappedMetaData = new ArrayList<>();
for(Object object : metaData) {
if(object instanceof WatchableObject) {
WatchableObject wO = (WatchableObject) object;
WrappedWatchableObject wwO = new WrappedWatchableObject(wO.c(), wO.a(), wO.b());
wwO.setWatched(wO.d());
wrappedMetaData.add(wwO);
}
}
return new HawkAsyncPlayerMetadataEvent(p, wrappedMetaData);
}
public void setByte(int index, int value) {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer(0));
try {
((Packet) packet).b(serializer); //"b" method writes to PacketDataSerializer (reads from packet)
serializer.setByte(index, value);
((Packet) packet).a(serializer); //"a" method interprets PacketDataSerializer (writes to packet)
} catch (IOException e) {
e.printStackTrace();
}
}
public byte[] getBytes() {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer(0));
try {
((Packet) packet).b(serializer); //"b" method writes to PacketDataSerializer (reads from packet)
} catch (IOException e) {
e.printStackTrace();
}
return serializer.array();
}
public PacketDataSerializer readPacket() {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer(0));
try {
((Packet) packet).b(serializer); //"b" method writes to PacketDataSerializer (reads from packet)
} catch (IOException e) {
e.printStackTrace();
}
return serializer;
}
private void requestPlayerCount(String serverName) {
if (ServerUtil.getOnlinePlayers().size() == 0) {
return; // No players online; we can't send this request yet.
}
ByteBuf buf = Unpooled.buffer();
MiscUtil.writePrefixedString(buf, "PlayerCount");
MiscUtil.writePrefixedString(buf, serverName);
byte[] bytes = new byte[buf.readableBytes()];
buf.readBytes(bytes);
ServerUtil.getOnlinePlayer(0).sendPluginMessage(plugin, "BungeeCord", bytes);
buf.release();
}
@Override
public void run() {
if (ServerUtil.getOnlinePlayers().size() == 0) {
return;
}
ByteBuf buf = Unpooled.buffer();
MiscUtil.writePrefixedString(buf, "GetServers");
byte[] bytes = new byte[buf.readableBytes()];
buf.readBytes(bytes);
ServerUtil.getOnlinePlayer(0).sendPluginMessage(plugin, "BungeeCord", bytes);
buf.release();
}