use of org.bukkit.entity.Entity in project TotalFreedomMod by TotalFreedom.
the class Command_mobpurge method purgeMobs.
public static int purgeMobs() {
int removed = 0;
for (World world : Bukkit.getWorlds()) {
for (Entity ent : world.getLivingEntities()) {
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient) {
ent.remove();
removed++;
}
}
}
return removed;
}
use of org.bukkit.entity.Entity in project GameCore by Warvale.
the class GlobalEvent method onBlockBreak.
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
if (event.getBlock().getType().equals(Material.IRON_ORE)) {
event.getPlayer().giveExp(10);
for (int i = 0; i < NumberUtils.random(3, 1); i++) {
event.getPlayer().getInventory().addItem(new ItemStack(Material.IRON_INGOT));
}
event.setCancelled(true);
Location blockLoc = event.getBlock().getLocation();
event.getBlock().setType(Material.STONE);
List<Entity> entityList = new ArrayList<>();
for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
ItemStack stack = new ItemStack(Material.IRON_NUGGET);
stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
}
new BukkitRunnable() {
@Override
public void run() {
entityList.forEach(Entity::remove);
}
}.runTaskLater(Main.get(), 60L);
new BukkitRunnable() {
@Override
public void run() {
event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.IRON_ORE);
event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 5, 1);
}
}.runTaskLater(Main.get(), 400L);
}
if (event.getBlock().getType().equals(Material.GOLD_ORE)) {
event.getPlayer().giveExp(30);
for (int i = 0; i < NumberUtils.random(2, 0); i++) {
event.getPlayer().getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
}
event.setCancelled(true);
Location blockLoc = event.getBlock().getLocation();
event.getBlock().setType(Material.STONE);
List<Entity> entityList = new ArrayList<>();
for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
ItemStack stack = new ItemStack(Material.GOLD_NUGGET);
stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
}
new BukkitRunnable() {
@Override
public void run() {
entityList.stream().forEach(entity -> entity.remove());
}
}.runTaskLater(Main.get(), 60L);
new BukkitRunnable() {
@Override
public void run() {
event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.GOLD_ORE);
event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 10, 1);
}
}.runTaskLater(Main.get(), 400L);
}
if (event.getBlock().getType().equals(Material.DIAMOND_ORE)) {
event.getPlayer().giveExp(50);
for (int i = 0; i < NumberUtils.random(1, 0); i++) {
event.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND));
}
event.setCancelled(true);
Location blockLoc = event.getBlock().getLocation();
event.getBlock().setType(Material.STONE);
List<Entity> entityList = new ArrayList<>();
for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
ItemStack stack = new ItemStack(Material.PRISMARINE_CRYSTALS);
stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
}
new BukkitRunnable() {
@Override
public void run() {
entityList.stream().forEach(entity -> entity.remove());
}
}.runTaskLater(Main.get(), 60L);
new BukkitRunnable() {
@Override
public void run() {
event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.DIAMOND_ORE);
event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 25, 1);
}
}.runTaskLater(Main.get(), 400L);
}
if (event.getBlock().getType().equals(Material.LAPIS_ORE)) {
event.getPlayer().giveExp(50);
for (int i = 0; i < NumberUtils.random(1, 0); i++) {
event.getPlayer().getInventory().addItem(new ItemStack(Material.LAPIS_BLOCK));
}
event.setCancelled(true);
Location blockLoc = event.getBlock().getLocation();
event.getBlock().setType(Material.STONE);
List<Entity> entityList = new ArrayList<>();
for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
ItemStack stack = new ItemStack(Material.EYE_OF_ENDER);
stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
}
new BukkitRunnable() {
@Override
public void run() {
entityList.stream().forEach(entity -> entity.remove());
}
}.runTaskLater(Main.get(), 60L);
new BukkitRunnable() {
@Override
public void run() {
event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.LAPIS_ORE);
event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 15, 1);
}
}.runTaskLater(Main.get(), 400L);
}
}
use of org.bukkit.entity.Entity in project Minigames by AddstarMC.
the class RecorderData method cartkMoveItem.
@EventHandler(ignoreCancelled = true)
private void cartkMoveItem(InventoryMoveItemEvent event) {
if (!hasRegenArea() || !minigame.hasPlayers())
return;
Location loc = null;
if (event.getInitiator().getHolder() instanceof HopperMinecart) {
loc = ((HopperMinecart) event.getInitiator().getHolder()).getLocation().clone();
if (blockInRegenArea(loc))
addEntity((Entity) event.getInitiator().getHolder(), null, false);
}
loc = null;
if (event.getDestination().getHolder() instanceof HopperMinecart) {
loc = ((HopperMinecart) event.getDestination().getHolder()).getLocation().clone();
if (blockInRegenArea(loc))
addEntity((Entity) event.getInitiator().getHolder(), null, false);
}
}
use of org.bukkit.entity.Entity in project Denizen-For-Bukkit by DenizenScript.
the class RemoveCommand method execute.
@SuppressWarnings("unchecked")
@Override
public void execute(final ScriptEntry scriptEntry) throws CommandExecutionException {
// Get objects
List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
dWorld world = (dWorld) scriptEntry.getObject("world");
Element region = (Element) scriptEntry.getObject("region");
// Report to dB
dB.report(scriptEntry, getName(), aH.debugList("entities", entities) + (region != null ? aH.debugObj("region", region) : ""));
boolean conditionsMet;
for (dEntity entity : entities) {
conditionsMet = true;
if (!entity.isGeneric()) {
if (region != null) {
dB.echoError(scriptEntry.getResidingQueue(), "Region support is deprecated!");
/*conditionsMet = WorldGuardUtilities.inRegion
(entity.getBukkitEntity().getLocation(),
region.asString());*/
}
if (conditionsMet) {
if (entity.isCitizensNPC()) {
entity.getDenizenNPC().getCitizen().destroy();
} else {
entity.remove();
}
}
} else // If this is a generic unspawned entity, remove
// all entities of this type from the world (as
// long as they meet all other conditions)
{
for (Entity worldEntity : world.getEntities()) {
if (entity.getEntityType().equals(DenizenEntityType.getByEntity(worldEntity))) {
if (region != null) {
dB.echoError(scriptEntry.getResidingQueue(), "Region support is deprecated!");
/*conditionsMet = WorldGuardUtilities.inRegion
(worldEntity.getLocation(),
region.asString());*/
}
if (conditionsMet) {
worldEntity.remove();
}
}
}
}
}
}
use of org.bukkit.entity.Entity in project Denizen-For-Bukkit by DenizenScript.
the class FlyCommand method execute.
@SuppressWarnings("unchecked")
@Override
public void execute(final ScriptEntry scriptEntry) throws CommandExecutionException {
// Get objects
dLocation origin = (dLocation) scriptEntry.getObject("origin");
List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
final List<dLocation> destinations = scriptEntry.hasObject("destinations") ? (List<dLocation>) scriptEntry.getObject("destinations") : new ArrayList<dLocation>();
// Set freeflight to true only if there are no destinations
final boolean freeflight = destinations.size() < 1;
dEntity controller = (dEntity) scriptEntry.getObject("controller");
// If freeflight is on, we need to do some checks
if (freeflight) {
// flying entities, so try to find a player in the entity list
if (controller == null) {
for (dEntity entity : entities) {
if (entity.isPlayer()) {
// the controller
if (entities.get(entities.size() - 1) != entity) {
controller = entity;
dB.report(scriptEntry, getName(), "Flight control defaulting to " + controller);
break;
}
}
}
// If the controller is still null, we cannot continue
if (controller == null) {
dB.report(scriptEntry, getName(), "There is no one to control the flight's path!");
return;
}
} else // Else, if the controller was set, we need to make sure
// it is among the flying entities, and add it if it is not
{
boolean found = false;
for (dEntity entity : entities) {
if (entity.identify().equals(controller.identify())) {
found = true;
break;
}
}
// Add the controller to the entity list
if (!found) {
dB.report(scriptEntry, getName(), "Adding controller " + controller + " to flying entities.");
entities.add(0, controller);
}
}
}
final double speed = ((Element) scriptEntry.getObject("speed")).asDouble();
final float rotationThreshold = ((Element) scriptEntry.getObject("rotationThreshold")).asFloat();
boolean cancel = scriptEntry.hasObject("cancel");
// Report to dB
dB.report(scriptEntry, getName(), (cancel ? aH.debugObj("cancel", cancel) : "") + aH.debugObj("origin", origin) + aH.debugObj("entities", entities.toString()) + aH.debugObj("speed", speed) + aH.debugObj("rotation threshold degrees", rotationThreshold) + (freeflight ? aH.debugObj("controller", controller) : aH.debugObj("destinations", destinations.toString())));
// Mount or dismount all of the entities
if (!cancel) {
// Go through all the entities, spawning/teleporting them
for (dEntity entity : entities) {
entity.spawnAt(origin);
}
Position.mount(Conversion.convertEntities(entities));
} else {
Position.dismount(Conversion.convertEntities(entities));
// Go no further if we are dismounting entities
return;
}
// Get the last entity on the list
final Entity entity = entities.get(entities.size() - 1).getBukkitEntity();
final LivingEntity finalController = controller != null ? controller.getLivingEntity() : null;
BukkitRunnable task = new BukkitRunnable() {
Location location = null;
Boolean flying = true;
public void run() {
if (freeflight) {
if (!entity.isEmpty() && finalController.isInsideVehicle()) {
location = finalController.getEyeLocation().add(finalController.getEyeLocation().getDirection().multiply(30));
} else {
flying = false;
}
} else {
if (destinations.size() > 0) {
location = destinations.get(0);
} else {
flying = false;
}
}
if (flying && entity.isValid()) {
// when it really needs to
if (!NMSHandler.getInstance().getEntityHelper().isFacingLocation(entity, location, rotationThreshold)) {
NMSHandler.getInstance().getEntityHelper().faceLocation(entity, location);
}
Vector v1 = entity.getLocation().toVector();
Vector v2 = location.toVector();
Vector v3 = v2.clone().subtract(v1).normalize().multiply(speed);
entity.setVelocity(v3);
if (!freeflight) {
if (Math.abs(v2.getX() - v1.getX()) < 2 && Math.abs(v2.getY() - v1.getY()) < 2 && Math.abs(v2.getZ() - v1.getZ()) < 2) {
destinations.remove(0);
}
}
} else {
flying = false;
this.cancel();
}
}
};
task.runTaskTimer(DenizenAPI.getCurrentInstance(), 0, 3);
}
Aggregations