use of org.spongepowered.api.entity.Entity in project ClearMob by axle2005.
the class EntityLimiter method handle.
@Listener(beforeModifications = true)
public void handle(SpawnEntityEvent event) throws Exception {
List<Entity> entity = event.getEntities();
Integer count = 0;
Integer xpcount = 0;
for (World w : plugin.getWorlds()) {
for (Entity e : w.getEntities()) {
if (e instanceof Monster && !(e instanceof Boss)) {
count++;
}
if (e instanceof ExperienceOrb) {
xpcount++;
}
}
}
for (int i = 0; i < entity.size(); i++) {
if (entity.get(i) instanceof Monster && (count > plugin.getMobLimit()) && !(entity.get(i) instanceof Boss)) {
event.setCancelled(true);
}
if ((entity.get(i) instanceof ExperienceOrb && entity.get(i).getNearbyEntities(10).size() > 20)) {
event.setCancelled(true);
}
}
}
use of org.spongepowered.api.entity.Entity in project ClearMob by axle2005.
the class clearAnimals method run.
public int run(Entity e) {
int count = 0;
int removed = 0;
entityData = new ConcurrentHashMap<>();
for (Entity en : e.getNearbyEntities(3)) {
if (!en.isRemoved()) {
if (en.getType().equals(e.getType())) {
count++;
if (count > 20) {
entityData.put(en.getUniqueId(), en);
}
}
}
}
for (Entity en : entityData.values()) {
if (!en.isRemoved()) {
if (en.get(DisplayNameData.class).isPresent()) {
// Checks if entity has nametag and ignores it.
} else {
en.remove();
removed++;
}
en.remove();
removed++;
}
}
return removed;
}
use of org.spongepowered.api.entity.Entity in project ClearMob by axle2005.
the class ClearEntity method run.
public static void run(ClearMob plugin, EntityType tile, Collection<World> worlds, CommandSource src) {
int removedentities = 0;
Collection<Entity> e = new ArrayList<Entity>();
for (World world : worlds) {
for (Entity entity : world.getEntities()) {
e.add(entity);
}
}
if (!e.isEmpty()) {
for (Entity entity : e) {
if (!(entity instanceof Item) && !(entity instanceof Player) && !(entity instanceof ExperienceOrb)) {
if ((entity.getType().equals(tile))) {
entity.getLocation().removeBlock(Cause.source(Sponge.getPluginManager().fromInstance(plugin).get()).build());
removedentities++;
}
}
}
}
feedback(plugin, src, removedentities);
}
use of org.spongepowered.api.entity.Entity in project HuskyCrates-Sponge by codeHusky.
the class HuskyCrates method postGameStart.
@Listener(order = Order.POST)
public void postGameStart(GameStartedServerEvent event) {
Sponge.getScheduler().createTaskBuilder().async().execute(new Consumer<Task>() {
@Override
public void accept(Task task) {
try {
JSONObject obj = JsonReader.readJsonFromUrl("https://api.github.com/repos/codehusky/HuskyCrates-Sponge/releases");
String[] thisVersion = pC.getVersion().get().split("\\.");
String[] remoteVersion = obj.getJSONArray("releases").getJSONObject(0).getString("tag_name").replace("v", "").split("\\.");
for (int i = 0; i < Math.min(remoteVersion.length, thisVersion.length); i++) {
if (!thisVersion[i].equals(remoteVersion[i])) {
if (Integer.parseInt(thisVersion[i]) > Integer.parseInt(remoteVersion[i])) {
//we're ahead
logger.warn("----------------------------------------------------");
logger.warn("Running unreleased version. (Developer build?)");
logger.warn("----------------------------------------------------");
} else {
//we're behind
logger.warn("----------------------------------------------------");
logger.warn("Your version of HuskyCrates is out of date!");
logger.warn("Your version: v" + pC.getVersion().get());
logger.warn("Latest version: " + obj.getJSONArray("releases").getJSONObject(0).getString("tag_name"));
logger.warn("Update here: https://goo.gl/hgtPMR");
logger.warn("----------------------------------------------------");
}
return;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).submit(this);
Sponge.getScheduler().createTaskBuilder().execute(new Consumer<Task>() {
@Override
public void accept(Task task) {
logger.info("Deleting existing armor stands...");
for (World bit : Sponge.getServer().getWorlds()) {
for (Entity ent : bit.getEntities()) {
if (ent instanceof ArmorStand) {
ArmorStand arm = (ArmorStand) ent;
if (arm.getCreator().isPresent()) {
if (arm.getCreator().get().equals(UUID.fromString(armorStandIdentifier))) {
arm.remove();
}
}
}
}
}
logger.info("Initalizing config...");
if (!crateUtilities.hasInitalizedVirtualCrates) {
crateUtilities.generateVirtualCrates(crateConfig);
}
// doublecheck
crateUtilities.hasInitalizedVirtualCrates = true;
logger.info("Done initalizing config.");
logger.info("Populating physical crates...");
CommentedConfigurationNode root = null;
try {
root = crateConfig.load();
double max = root.getNode("positions").getChildrenList().size();
double count = 0;
for (CommentedConfigurationNode node : root.getNode("positions").getChildrenList()) {
count++;
Location<World> ee;
try {
ee = node.getNode("location").getValue(TypeToken.of(Location.class));
} catch (InvalidDataException err2) {
logger.warn("Bug sponge developers about world UUIDs!");
ee = new Location<World>(Sponge.getServer().getWorld(node.getNode("location", "WorldName").getString()).get(), node.getNode("location", "X").getDouble(), node.getNode("location", "Y").getDouble(), node.getNode("location", "Z").getDouble());
}
if (!crateUtilities.physicalCrates.containsKey(ee))
crateUtilities.physicalCrates.put(ee, new PhysicalCrate(ee, node.getNode("crateID").getString(), HuskyCrates.instance));
logger.info("PROGRESS: " + Math.round((count / max) * 100) + "%");
}
} catch (IOException e) {
e.printStackTrace();
} catch (ObjectMappingException e) {
e.printStackTrace();
}
crateUtilities.startParticleEffects();
logger.info("Done populating physical crates.");
logger.info("Initalization complete.");
}
}).delayTicks(1).submit(this);
}
use of org.spongepowered.api.entity.Entity in project Skree by Skelril.
the class TheForgeInstance method summonMobs.
private void summonMobs() {
if (getContained().size() > 50) {
return;
}
List<Entity> entities = new ArrayList<>();
for (int i = Probability.getRandom(getPlayers(PARTICIPANT).size() * 5); i > 0; --i) {
Entity e = getRegion().getExtent().createEntity(Probability.pickOneOf(possibleMobs), getRandomEntryPoint().getPosition());
if (e instanceof Skeleton) {
((Skeleton) e).setItemInHand(HandTypes.MAIN_HAND, newItemStack(ItemTypes.BOW));
}
entities.add(e);
}
getRegion().getExtent().spawnEntities(entities, getSpawnCause());
}
Aggregations