Advertisement
Guest User

NpcCreator

a guest
Jul 29th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. package plugin;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.Location;
  5. import org.bukkit.command.Command;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.plugin.java.JavaPlugin;
  10.  
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.UUID;
  14.  
  15. import net.minecraft.server.v1_8_R1.EntityHuman;
  16. import net.minecraft.server.v1_8_R1.EntityPlayer;
  17. import net.minecraft.server.v1_8_R1.MinecraftServer;
  18. import net.minecraft.server.v1_8_R1.PacketPlayOutEntityDestroy;
  19. import net.minecraft.server.v1_8_R1.PacketPlayOutNamedEntitySpawn;
  20. import net.minecraft.server.v1_8_R1.PlayerInteractManager;
  21. import net.minecraft.server.v1_8_R1.WorldServer;
  22.  
  23.  
  24.  
  25. import org.bukkit.Bukkit;
  26. import org.bukkit.Location;
  27. import org.bukkit.craftbukkit.v1_8_R1.CraftServer;
  28. import org.bukkit.craftbukkit.v1_8_R1.CraftWorld;
  29. import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
  30. import org.bukkit.entity.Player;
  31. import org.bukkit.event.EventHandler;
  32. import org.bukkit.event.Listener;
  33. import org.bukkit.event.player.PlayerChatEvent;
  34. import org.bukkit.plugin.java.JavaPlugin;
  35.  
  36. import com.mojang.authlib.GameProfile;
  37.  
  38.  
  39. public class ClonePlugin extends JavaPlugin implements Listener{
  40.  
  41.  
  42.  
  43.  
  44. static HashMap<String,EntityPlayer> npcs = new HashMap<String,EntityPlayer>();
  45. @Override
  46. public void onEnable() {
  47. Bukkit.getServer().getPluginManager().registerEvents(this,this);
  48. }
  49.  
  50. @Override
  51. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  52. if(!(sender instanceof Player)){
  53. return false;
  54.  
  55. }
  56. Player p = (Player) sender;
  57. if(command.getName().equalsIgnoreCase("npc")){
  58. if(args.length>0){
  59. if(args.length>1){
  60. if(args[0].equalsIgnoreCase("create")){
  61. if(Bukkit.getOfflinePlayer(args[1]).getUniqueId() != null){
  62. Location l = p.getLocation();
  63. UUID id =Bukkit.getOfflinePlayer(args[1]).getUniqueId();
  64. sendNPCToPlayer(p, l, args[1], id);
  65. }
  66. }
  67. if(args[0].equalsIgnoreCase("destroy")){
  68. if(npcs.containsKey(args[1])){
  69. destroyEntity(npcs.get(args[1]).getId(), p);
  70. }
  71.  
  72. }
  73.  
  74. }
  75. }
  76.  
  77.  
  78. }
  79.  
  80.  
  81. return false;
  82. }
  83. public static int sendNPCToPlayer(Player p, Location loc, String npcName, UUID npcUUID){
  84. MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer();
  85. WorldServer nmsWorld = ((CraftWorld) loc.getWorld()).getHandle();
  86. EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(npcUUID, npcName), new PlayerInteractManager(nmsWorld));
  87. npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
  88. PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(npc);
  89. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn);
  90. npcs.put(npc.getName(),npc);
  91. return npc.getId();
  92. }
  93. public static void destroyEntity(int id, Player p){
  94. PacketPlayOutEntityDestroy removePacket = new PacketPlayOutEntityDestroy(id);
  95. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(removePacket);
  96. }
  97.  
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement