Advertisement
Lisenochek

Untitled

Dec 18th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. package ru.lisenochek.npcandother.NPC;
  2.  
  3. import net.minecraft.server.v1_8_R3.NBTTagCompound;
  4. import org.bukkit.Location;
  5. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
  6. import org.bukkit.entity.Entity;
  7. import org.bukkit.entity.Villager;
  8. import ru.lisenochek.npcandother.config.configSettings.NPC_DiscSettings;
  9. import ru.lisenochek.npcandother.utils.C;
  10.  
  11. import java.util.HashMap;
  12.  
  13. public class CreatorNPC {
  14.  
  15. public static HashMap<String, Entity> entitySave = new HashMap<>();
  16. public static HashMap<Entity, String> entityCommand = new HashMap<>();
  17.  
  18. public static void createNPC(Location loc, String age, String name) {
  19.  
  20. Villager ent = (Villager) loc.getWorld().spawn(loc, Villager.class);
  21.  
  22. ent.setCustomNameVisible(true);
  23. ent.setCustomName(C.c(name.replace("_", " ")));
  24.  
  25. disableAI(ent);
  26. entitySave.put(name, ent);
  27.  
  28. NPC_DiscSettings.addNPCToConfig();
  29.  
  30. if (!age.equalsIgnoreCase("baby")) return;
  31. ent.setBaby();
  32. ent.setAgeLock(true);
  33. }
  34.  
  35. public static void deleteNPC(String name) {
  36.  
  37. entitySave.get(name).remove();
  38. entitySave.remove(name);
  39.  
  40. NPC_DiscSettings.deleteFromDisc(name);
  41. }
  42.  
  43. public static void renameNPC(String age, String cmd, String name, String newName) {
  44.  
  45. createNPC(entitySave.get(name).getLocation(), age, newName);
  46. setCommandNPC(newName, cmd);
  47.  
  48. deleteCommandNPC(name);
  49. deleteNPC(name);
  50. }
  51.  
  52. public static void setCommandNPC(String name, String command) {
  53.  
  54. entityCommand.put(entitySave.get(name), command);
  55. NPC_DiscSettings.addCommandToNPC(name);
  56. }
  57.  
  58. public static void deleteCommandNPC(String name) {
  59.  
  60. NPC_DiscSettings.deleteCommandFromDisc(name);
  61. entityCommand.remove(entitySave.get(name));
  62. }
  63.  
  64. private static void disableAI(Entity ent) {
  65.  
  66. net.minecraft.server.v1_8_R3.Entity nmsEntity = ((CraftEntity) ent).getHandle();
  67. NBTTagCompound tag = nmsEntity.getNBTTag();
  68.  
  69. if (tag == null) tag = new NBTTagCompound();
  70.  
  71. nmsEntity.c(tag);
  72. tag.setInt("NoAI", 1);
  73. nmsEntity.f(tag);
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement