// Path: src/net/gamerservices/npclibfork/NpcSpawner.java
// public class NpcSpawner {
// 
//     protected static WorldServer GetWorldServer(World world) {
//         try {
//             CraftWorld w = (CraftWorld) world;
//             Field f;
//             f = CraftWorld.class.getDeclaredField("world");
// 
//             f.setAccessible(true);
//             return (WorldServer) f.get(w);
// 
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//         return null;
//     }
// 
//     private static MinecraftServer GetMinecraftServer(Server server) {
// 
//         if (server instanceof CraftServer) {
//             CraftServer cs = (CraftServer) server;
//             Field f;
//             try {
//                 f = CraftServer.class.getDeclaredField("console");
//             } catch (NoSuchFieldException ex) {
//                 return null;
//             } catch (SecurityException ex) {
//                 return null;
//             }
//             MinecraftServer ms;
//             try {
//                 f.setAccessible(true);
//                 ms = (MinecraftServer) f.get(cs);
//             } catch (IllegalArgumentException ex) {
//                 return null;
//             } catch (IllegalAccessException ex) {
//                 return null;
//             }
//             return ms;
//         }
//         return null;
//     }
// 
//     public static BasicHumanNpc SpawnBasicHumanNpc(myNPC parent, String uniqueId, String name, World world, double x, double y, double z, double yaw, double pitch) {
//         try {
//             WorldServer ws = GetWorldServer(world);
//             MinecraftServer ms = GetMinecraftServer(ws.getServer());
// 
//             CHumanNpc eh = new CHumanNpc(ms, ws, name, new ItemInWorldManager(ws));
//             eh.forceSetName(name);
//             Float yaw2 = new Float(yaw);
//             Float pitch2 = new Float(pitch);
// 
//             eh.setLocation(x, y, z, yaw2.floatValue(), pitch2.floatValue());
// 
//             int m = MathHelper.floor(eh.locX / 16.0D);
//             int n = MathHelper.floor(eh.locZ / 16.0D);
// 
//             ws.getChunkAt(m, n).a(eh);
//             ws.entityList.add(eh);
// 
//             // ws.b(eh);
//             Class params[] = new Class[1];
//             params[0] = Entity.class;
// 
//             Method method;
//             method = net.minecraft.server.World.class.getDeclaredMethod("c", params);
//             method.setAccessible(true);
//             Object margs[] = new Object[1];
//             margs[0] = eh;
//             method.invoke(ws, margs);
// 
//             return new BasicHumanNpc(parent, eh, uniqueId, name, x, y, z, yaw2, pitch2);
// 
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//         return null;
//     }
// 
//     public static void RemoveBasicHumanNpc(BasicHumanNpc npc) {
//         try {
//             npc.getMCEntity().world.removeEntity(npc.getMCEntity());
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//     }
// 
//     public static LivingEntity SpawnMob(CreatureType type, World world, double x, double y, double z) {
//         return world.spawnCreature(new org.bukkit.Location(world, x, y, z), type);
//     }
// 
// }


import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import net.gamerservices.npclibfork.NpcSpawner;
import org.bukkit.World;

package net.gamerservices.npcx;




public class mySpawngroup {
    public int id;
    public String name;
    public String category;
    public double x;
    public double y;
    public double z;
    public npcx parent;
    public boolean active = false;
    public World world;
    public HashMap<String, myNPC> npcs = new HashMap<String, myNPC>();
    public int activecountdown = 0;
    public float pitch;
    public float yaw;
    public myPathgroup pathgroup;
    public boolean chunkactive = true;

    public mySpawngroup(npcx parent) {
        this.parent = parent;
    }

    public boolean DBDelete() {
        // Go through my children

        try {
            for (myNPC npc : npcs.values()) {
                // Deleting npc
                sqlDeleteEntry(Integer.parseInt(npc.id));
                // Remove npcs from world
                if (npc.npc != null) {

// Path: src/net/gamerservices/npclibfork/NpcSpawner.java
// public class NpcSpawner {
// 
//     protected static WorldServer GetWorldServer(World world) {
//         try {
//             CraftWorld w = (CraftWorld) world;
//             Field f;
//             f = CraftWorld.class.getDeclaredField("world");
// 
//             f.setAccessible(true);
//             return (WorldServer) f.get(w);
// 
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//         return null;
//     }
// 
//     private static MinecraftServer GetMinecraftServer(Server server) {
// 
//         if (server instanceof CraftServer) {
//             CraftServer cs = (CraftServer) server;
//             Field f;
//             try {
//                 f = CraftServer.class.getDeclaredField("console");
//             } catch (NoSuchFieldException ex) {
//                 return null;
//             } catch (SecurityException ex) {
//                 return null;
//             }
//             MinecraftServer ms;
//             try {
//                 f.setAccessible(true);
//                 ms = (MinecraftServer) f.get(cs);
//             } catch (IllegalArgumentException ex) {
//                 return null;
//             } catch (IllegalAccessException ex) {
//                 return null;
//             }
//             return ms;
//         }
//         return null;
//     }
// 
//     public static BasicHumanNpc SpawnBasicHumanNpc(myNPC parent, String uniqueId, String name, World world, double x, double y, double z, double yaw, double pitch) {
//         try {
//             WorldServer ws = GetWorldServer(world);
//             MinecraftServer ms = GetMinecraftServer(ws.getServer());
// 
//             CHumanNpc eh = new CHumanNpc(ms, ws, name, new ItemInWorldManager(ws));
//             eh.forceSetName(name);
//             Float yaw2 = new Float(yaw);
//             Float pitch2 = new Float(pitch);
// 
//             eh.setLocation(x, y, z, yaw2.floatValue(), pitch2.floatValue());
// 
//             int m = MathHelper.floor(eh.locX / 16.0D);
//             int n = MathHelper.floor(eh.locZ / 16.0D);
// 
//             ws.getChunkAt(m, n).a(eh);
//             ws.entityList.add(eh);
// 
//             // ws.b(eh);
//             Class params[] = new Class[1];
//             params[0] = Entity.class;
// 
//             Method method;
//             method = net.minecraft.server.World.class.getDeclaredMethod("c", params);
//             method.setAccessible(true);
//             Object margs[] = new Object[1];
//             margs[0] = eh;
//             method.invoke(ws, margs);
// 
//             return new BasicHumanNpc(parent, eh, uniqueId, name, x, y, z, yaw2, pitch2);
// 
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//         return null;
//     }
// 
//     public static void RemoveBasicHumanNpc(BasicHumanNpc npc) {
//         try {
//             npc.getMCEntity().world.removeEntity(npc.getMCEntity());
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
// 
//     }
// 
//     public static LivingEntity SpawnMob(CreatureType type, World world, double x, double y, double z) {
//         return world.spawnCreature(new org.bukkit.Location(world, x, y, z), type);
//     }
// 
// }


// Path: src/net/gamerservices/npcx/mySpawngroup.java
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import net.gamerservices.npclibfork.NpcSpawner;
import org.bukkit.World;

package net.gamerservices.npcx;




public class mySpawngroup {
    public int id;
    public String name;
    public String category;
    public double x;
    public double y;
    public double z;
    public npcx parent;
    public boolean active = false;
    public World world;
    public HashMap<String, myNPC> npcs = new HashMap<String, myNPC>();
    public int activecountdown = 0;
    public float pitch;
    public float yaw;
    public myPathgroup pathgroup;
    public boolean chunkactive = true;

    public mySpawngroup(npcx parent) {
        this.parent = parent;
    }

    public boolean DBDelete() {
        // Go through my children

        try {
            for (myNPC npc : npcs.values()) {
                // Deleting npc
                sqlDeleteEntry(Integer.parseInt(npc.id));
                // Remove npcs from world
                if (npc.npc != null) {

                    NpcSpawner.RemoveBasicHumanNpc(npc.npc);
