use of net.minecraft.server.v1_16_R1.Entity in project RoseStacker by Rosewood-Development.
the class NMSHandlerImpl method createEntityFromNBT.
@Override
public LivingEntity createEntityFromNBT(StackedEntityDataEntry<?> serialized, Location location, boolean addToWorld, EntityType entityType) {
try {
NBTTagCompound nbt = (NBTTagCompound) serialized.get();
NBTTagList positionTagList = nbt.getList("Pos", 6);
if (positionTagList == null)
positionTagList = new NBTTagList();
this.setTag(positionTagList, 0, NBTTagDouble.a(location.getX()));
this.setTag(positionTagList, 1, NBTTagDouble.a(location.getY()));
this.setTag(positionTagList, 2, NBTTagDouble.a(location.getZ()));
nbt.set("Pos", positionTagList);
NBTTagList rotationTagList = nbt.getList("Rotation", 5);
if (rotationTagList == null)
rotationTagList = new NBTTagList();
this.setTag(rotationTagList, 0, NBTTagFloat.a(location.getYaw()));
this.setTag(rotationTagList, 1, NBTTagFloat.a(location.getPitch()));
nbt.set("Rotation", rotationTagList);
// Reset the UUID to resolve possible duplicates
nbt.a("UUID", UUID.randomUUID());
Optional<EntityTypes<?>> optionalEntity = EntityTypes.a(entityType.getKey().getKey());
if (optionalEntity.isPresent()) {
WorldServer world = ((CraftWorld) location.getWorld()).getHandle();
Entity entity = this.createCreature(optionalEntity.get(), world, nbt, null, null, new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ()), EnumMobSpawn.COMMAND);
if (entity == null)
throw new NullPointerException("Unable to create entity from NBT");
// Load NBT
entity.load(nbt);
if (addToWorld) {
IChunkAccess ichunkaccess = world.getChunkAt(MathHelper.floor(entity.locX() / 16.0D), MathHelper.floor(entity.locZ() / 16.0D), ChunkStatus.FULL, true);
if (!(ichunkaccess instanceof Chunk))
throw new NullPointerException("Unable to spawn entity from NBT, couldn't get chunk");
ichunkaccess.a(entity);
method_WorldServer_registerEntity.invoke(world, entity);
entity.noDamageTicks = 0;
}
return (LivingEntity) entity.getBukkitEntity();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
use of net.minecraft.server.v1_16_R1.Entity in project RoseStacker by Rosewood-Development.
the class NMSHandlerImpl method createEntityFromNBT.
@Override
public LivingEntity createEntityFromNBT(StackedEntityDataEntry<?> serialized, Location location, boolean addToWorld, EntityType entityType) {
try {
NBTTagCompound nbt = (NBTTagCompound) serialized.get();
NBTTagList positionTagList = nbt.getList("Pos", 6);
if (positionTagList == null)
positionTagList = new NBTTagList();
this.setTag(positionTagList, 0, NBTTagDouble.a(location.getX()));
this.setTag(positionTagList, 1, NBTTagDouble.a(location.getY()));
this.setTag(positionTagList, 2, NBTTagDouble.a(location.getZ()));
nbt.set("Pos", positionTagList);
NBTTagList rotationTagList = nbt.getList("Rotation", 5);
if (rotationTagList == null)
rotationTagList = new NBTTagList();
this.setTag(rotationTagList, 0, NBTTagFloat.a(location.getYaw()));
this.setTag(rotationTagList, 1, NBTTagFloat.a(location.getPitch()));
nbt.set("Rotation", rotationTagList);
// Reset the UUID to resolve possible duplicates
nbt.a("UUID", UUID.randomUUID());
Optional<EntityTypes<?>> optionalEntity = EntityTypes.a(entityType.getKey().getKey());
if (optionalEntity.isPresent()) {
WorldServer world = ((CraftWorld) location.getWorld()).getHandle();
Entity entity = this.createCreature(optionalEntity.get(), world, nbt, null, null, new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ()), EnumMobSpawn.COMMAND);
if (entity == null)
throw new NullPointerException("Unable to create entity from NBT");
// Load NBT
entity.load(nbt);
if (addToWorld) {
IChunkAccess ichunkaccess = world.getChunkAt(MathHelper.floor(entity.locX() / 16.0D), MathHelper.floor(entity.locZ() / 16.0D), ChunkStatus.FULL, true);
if (!(ichunkaccess instanceof Chunk))
throw new NullPointerException("Unable to spawn entity from NBT, couldn't get chunk");
ichunkaccess.a(entity);
method_WorldServer_registerEntity.invoke(world, entity);
entity.noDamageTicks = 0;
}
return (LivingEntity) entity.getBukkitEntity();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
use of net.minecraft.server.v1_16_R1.Entity in project RoseStacker by Rosewood-Development.
the class NMSHandlerImpl method createNewEntityUnspawned.
@Override
public LivingEntity createNewEntityUnspawned(EntityType entityType, Location location, SpawnReason spawnReason) {
World world = location.getWorld();
if (world == null)
return null;
Class<? extends org.bukkit.entity.Entity> entityClass = entityType.getEntityClass();
if (entityClass == null || !LivingEntity.class.isAssignableFrom(entityClass))
throw new IllegalArgumentException("EntityType must be of a LivingEntity");
EntityTypes<? extends Entity> nmsEntityType = IRegistry.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(entityType.getKey()));
Entity nmsEntity = this.createCreature(nmsEntityType, ((CraftWorld) world).getHandle(), null, null, null, new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ()), this.toNmsSpawnReason(spawnReason));
return nmsEntity == null ? null : (LivingEntity) nmsEntity.getBukkitEntity();
}
use of net.minecraft.server.v1_16_R1.Entity in project jmix-docs by Haulmont.
the class DataGridScreen method createCloseButton.
// end::details-generator[]
// tag::create-close-button[]
protected Component createCloseButton(Customer entity) {
Button closeButton = uiComponents.create(Button.class);
closeButton.setIcon("font-icon:TIMES");
BaseAction closeAction = new BaseAction("closeAction").withHandler(actionPerformedEvent -> detailsGrid.setDetailsVisible(entity, false)).withCaption("");
closeButton.setAction(closeAction);
return closeButton;
}
use of net.minecraft.server.v1_16_R1.Entity in project nomulus by google.
the class BulkDeleteDatastorePipeline method setupPipeline.
// org.apache.beam.sdk.transforms.Reshuffle
@SuppressWarnings("deprecation")
private void setupPipeline(Pipeline pipeline) {
checkState(!FORBIDDEN_PROJECTS.contains(options.getProject()), "Bulk delete is forbidden in %s", options.getProject());
// Pre-allocated tags to label entities by kind. In the case of delete-all, we must use a guess.
TupleTagList deletionTags;
PCollection<String> kindsToDelete;
if (options.getKindsToDelete().equals("*")) {
deletionTags = getDeletionTags(options.getNumOfKindsHint());
kindsToDelete = pipeline.apply("DiscoverEntityKinds", discoverEntityKinds(options.getProject()));
} else {
ImmutableList<String> kindsToDeleteParam = parseKindsToDelete(options);
checkState(!kindsToDeleteParam.contains("*"), "The --kindsToDelete argument should not contain both '*' and other kinds.");
deletionTags = getDeletionTags(kindsToDeleteParam.size());
kindsToDelete = pipeline.apply("UseProvidedKinds", Create.of(kindsToDeleteParam));
}
// Map each kind to a tag. The "SplitByKind" stage below will group entities by kind using
// this mapping. In practice, this has been effective at avoiding entity group contentions.
PCollectionView<Map<String, TupleTag<Entity>>> kindToTagMapping = mapKindsToDeletionTags(kindsToDelete, deletionTags).apply("GetKindsToTagMap", View.asMap());
PCollectionTuple entities = kindsToDelete.apply("GenerateQueries", ParDo.of(new GenerateQueries())).apply("ReadEntities", DatastoreV1.read().withProjectId(options.getProject())).apply("SplitByKind", ParDo.of(new SplitEntities(kindToTagMapping)).withSideInputs(kindToTagMapping).withOutputTags(getOneDeletionTag("placeholder"), deletionTags));
for (TupleTag<?> tag : deletionTags.getAll()) {
entities.get((TupleTag<Entity>) tag).apply("RebalanceLoad", Reshuffle.viaRandomKey()).apply("DeleteEntities_" + tag.getId(), DatastoreIO.v1().deleteEntity().withProjectId(options.getProject()));
}
}
Aggregations