Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.gervobis.netty;
- import java.util.List;
- import java.util.UUID;
- import net.minecraft.server.v1_8_R3.DataWatcher;
- import net.minecraft.server.v1_8_R3.MathHelper;
- import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutEntityLook;
- import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
- import net.minecraft.server.v1_8_R3.PacketPlayOutEntityHeadRotation;
- import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
- import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
- import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
- import net.minecraft.server.v1_8_R3.WorldSettings.EnumGamemode;
- import org.bukkit.Location;
- import org.bukkit.craftbukkit.v1_8_R3.util.CraftChatMessage;
- import com.mojang.authlib.GameProfile;
- import com.mojang.authlib.properties.Property;
- public class NPC extends Reflections {
- private int entityID;
- private Location location;
- private GameProfile gameprofile;
- public NPC(String name,Location location){
- entityID = (int)Math.ceil(Math.random() * 1000) + 2000;
- gameprofile = new GameProfile(UUID.randomUUID(), name);
- changeSkin();
- this.location = location.clone();
- }
- public void changeSkin(){
- String value = "eyJ0aW1lc3RhbXAiOjE0NDI4MzY1MTU1NzksInByb2ZpbGVJZCI6IjkwZWQ3YWY0NmU4YzRkNTQ4MjRkZTc0YzI1MTljNjU1IiwicHJvZmlsZU5hbWUiOiJDb25DcmFmdGVyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xMWNlZDMzMjNmYjczMmFjMTc3MTc5Yjg5NWQ5YzJmNjFjNzczZWYxNTVlYmQ1Y2M4YzM5NTZiZjlhMDlkMTIifX19";
- String signature = "tFGNBQNpxNGvD27SN7fqh3LqNinjJJFidcdF8LTRHOdoMNXcE5ezN172BnDlRsExspE9X4z7FPglqh/b9jrLFDfQrdqX3dGm1cKjYbvOXL9BO2WIOEJLTDCgUQJC4/n/3PZHEG2mVADc4v125MFYMfjzkznkA6zbs7w6z8f7pny9eCWNXPOQklstcdc1h/LvflnR+E4TUuxCf0jVsdT5AZsUYIsJa6fvr0+vItUXUdQ3pps0zthObPEnBdLYMtNY3G6ZLGVKcSGa/KRK2D/k69fmu/uTKbjAWtniFB/sdO0VNhLuvyr/PcZVXB78l1SfBR88ZMiW6XSaVqNnSP+MEfRkxgkJWUG+aiRRLE8G5083EQ8vhIle5GxzK68ZR48IrEX/JwFjALslCLXAGR05KrtuTD3xyq2Nut12GCaooBEhb46sipWLq4AXI9IpJORLOW8+GvY+FcDwMqXYN94juDQtbJGCQo8PX670YjbmVx7+IeFjLJJTZotemXu1wiQmDmtAAmug4U5jgMYIJryXMitD7r5pEop/cw42JbCO2u0b5NB7sI/mr4OhBKEesyC5usiARzuk6e/4aJUvwQ9nsiXfeYxZz8L/mh6e8YPJMyhVkFtblbt/4jPe0bs3xSUXO9XrDyhy9INC0jlLT22QjNzrDkD8aiGAopVvfnTTAug=";
- gameprofile.getProperties().put("textures", new Property("textures", value, signature));
- }
- public void spawn(){
- PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
- setValue(packet, "a", entityID);
- setValue(packet, "b", gameprofile.getId());
- setValue(packet, "c", getFixLocation(location.getX()));
- setValue(packet, "d", getFixLocation(location.getY()));
- setValue(packet, "e", getFixLocation(location.getZ()));
- setValue(packet, "f", getFixRotation(location.getYaw()));
- setValue(packet, "g", getFixRotation(location.getPitch()));
- setValue(packet, "h", 0);
- DataWatcher w = new DataWatcher(null);
- w.a(6,(float)20);
- w.a(10,(byte)127);
- setValue(packet, "i", w);
- addToTablist();
- sendPacket(packet);
- }
- public void destroy(){
- PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(new int[] {entityID});
- rmvFromTablist();
- sendPacket(packet);
- }
- public void addToTablist(){
- PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
- PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameprofile, 1, EnumGamemode.NOT_SET, CraftChatMessage.fromString(gameprofile.getName())[0]);
- @SuppressWarnings("unchecked")
- List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
- players.add(data);
- setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
- setValue(packet, "b", players);
- sendPacket(packet);
- }
- public void rmvFromTablist(){
- PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
- PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameprofile, 1, EnumGamemode.NOT_SET, CraftChatMessage.fromString(gameprofile.getName())[0]);
- @SuppressWarnings("unchecked")
- List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
- players.add(data);
- setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER);
- setValue(packet, "b", players);
- sendPacket(packet);
- }
- public int getFixLocation(double pos){
- return (int)MathHelper.floor(pos * 32.0D);
- }
- public byte getFixRotation(float yawpitch){
- return (byte) ((int) (yawpitch * 256.0F / 360.0F));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement