NPCLib/src/net/jitse/npclib/nms/v1_9_r1/packets/PacketPlayOutNamedEntitySpa...

48 lines
2.2 KiB
Java
Raw Normal View History

2018-04-13 18:23:46 +02:00
/*
2018-04-19 18:00:24 +02:00
* Copyright (c) 2018 Jitse Boonstra
2018-04-13 18:23:46 +02:00
*/
2018-04-13 08:07:59 +02:00
package net.jitse.npclib.nms.v1_9_r1.packets;
import com.comphenix.tinyprotocol.Reflection;
import net.minecraft.server.v1_9_R1.DataWatcher;
import net.minecraft.server.v1_9_R1.DataWatcherObject;
import net.minecraft.server.v1_9_R1.DataWatcherRegistry;
import net.minecraft.server.v1_9_R1.PacketPlayOutNamedEntitySpawn;
2018-04-13 08:07:59 +02:00
import org.bukkit.Location;
import java.util.UUID;
2018-04-13 18:23:46 +02:00
/**
* @author Jitse Boonstra
*/
2018-04-13 08:07:59 +02:00
public class PacketPlayOutNamedEntitySpawnWrapper {
public PacketPlayOutNamedEntitySpawn create(UUID uuid, Location location, int entityId) {
PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn = new PacketPlayOutNamedEntitySpawn();
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "a", int.class)
.set(packetPlayOutNamedEntitySpawn, entityId);
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "b", UUID.class)
.set(packetPlayOutNamedEntitySpawn, uuid);
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "c", double.class)
.set(packetPlayOutNamedEntitySpawn, location.getX());
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "d", double.class)
.set(packetPlayOutNamedEntitySpawn, location.getY());
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "e", double.class)
.set(packetPlayOutNamedEntitySpawn, location.getZ());
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "f", byte.class)
.set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getYaw() * 256.0F / 360.0F)));
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "g", byte.class)
.set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getPitch() * 256.0F / 360.0F)));
DataWatcher dataWatcher = new DataWatcher(null);
dataWatcher.register(new DataWatcherObject<>(12, DataWatcherRegistry.a), (byte) 127);
2018-04-13 08:07:59 +02:00
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "h", DataWatcher.class)
.set(packetPlayOutNamedEntitySpawn, dataWatcher);
return packetPlayOutNamedEntitySpawn;
}
}