Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.lisenochek.npcandother.NPC;
- import net.minecraft.server.v1_8_R3.NBTTagCompound;
- import org.bukkit.Location;
- import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.Villager;
- import ru.lisenochek.npcandother.config.configSettings.NPC_DiscSettings;
- import ru.lisenochek.npcandother.utils.C;
- import java.util.HashMap;
- public class CreatorNPC {
- public static HashMap<String, Entity> entitySave = new HashMap<>();
- public static HashMap<Entity, String> entityCommand = new HashMap<>();
- public static void createNPC(Location loc, String age, String name) {
- Villager ent = (Villager) loc.getWorld().spawn(loc, Villager.class);
- ent.setCustomNameVisible(true);
- ent.setCustomName(C.c(name.replace("_", " ")));
- disableAI(ent);
- entitySave.put(name, ent);
- NPC_DiscSettings.addNPCToConfig();
- if (!age.equalsIgnoreCase("baby")) return;
- ent.setBaby();
- ent.setAgeLock(true);
- }
- public static void deleteNPC(String name) {
- entitySave.get(name).remove();
- entitySave.remove(name);
- NPC_DiscSettings.deleteFromDisc(name);
- }
- public static void renameNPC(String age, String cmd, String name, String newName) {
- createNPC(entitySave.get(name).getLocation(), age, newName);
- setCommandNPC(newName, cmd);
- deleteCommandNPC(name);
- deleteNPC(name);
- }
- public static void setCommandNPC(String name, String command) {
- entityCommand.put(entitySave.get(name), command);
- NPC_DiscSettings.addCommandToNPC(name);
- }
- public static void deleteCommandNPC(String name) {
- NPC_DiscSettings.deleteCommandFromDisc(name);
- entityCommand.remove(entitySave.get(name));
- }
- private static void disableAI(Entity ent) {
- net.minecraft.server.v1_8_R3.Entity nmsEntity = ((CraftEntity) ent).getHandle();
- NBTTagCompound tag = nmsEntity.getNBTTag();
- if (tag == null) tag = new NBTTagCompound();
- nmsEntity.c(tag);
- tag.setInt("NoAI", 1);
- nmsEntity.f(tag);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement