use of net.minecraft.server.v1_15_R1.Vec3D in project Citizens2 by CitizensDev.
the class EntityHumanNPC method moveOnCurrentHeading.
private void moveOnCurrentHeading() {
if (jumping) {
if (onGround && jumpTicks == 0) {
jump();
jumpTicks = 10;
}
} else {
jumpTicks = 0;
}
bb *= 0.98F;
bd *= 0.98F;
be *= 0.9F;
// movement method
moveWithFallDamage(new Vec3D(this.bb, this.bc, this.bd));
NMS.setHeadYaw(getBukkitEntity(), yaw);
if (jumpTicks > 0) {
jumpTicks--;
}
}
use of net.minecraft.server.v1_15_R1.Vec3D in project RoseStacker by Rosewood-Development.
the class NMSHandlerImpl method hasLineOfSight.
@Override
public boolean hasLineOfSight(LivingEntity entity1, org.bukkit.entity.Entity entity2) {
EntityLiving nmsEntity1 = ((CraftLivingEntity) entity1).getHandle();
Entity nmsEntity2 = ((CraftEntity) entity2).getHandle();
Vec3D vec3d = new Vec3D(nmsEntity1.locX(), nmsEntity1.getHeadY(), nmsEntity1.locZ());
Vec3D vec3d1 = new Vec3D(nmsEntity2.locX(), nmsEntity2.getHeadY(), nmsEntity2.locZ());
return nmsEntity1.world.rayTrace(new RayTrace(vec3d, vec3d1, RayTrace.BlockCollisionOption.VISUAL, RayTrace.FluidCollisionOption.NONE, nmsEntity1)).getType() == MovingObjectPosition.EnumMovingObjectType.MISS;
}
use of net.minecraft.server.v1_15_R1.Vec3D in project RoseStacker by Rosewood-Development.
the class NMSHandlerImpl method hasLineOfSight.
@Override
public boolean hasLineOfSight(LivingEntity entity1, org.bukkit.entity.Entity entity2) {
EntityLiving nmsEntity1 = ((CraftLivingEntity) entity1).getHandle();
Entity nmsEntity2 = ((CraftEntity) entity2).getHandle();
Vec3D vec3d = new Vec3D(nmsEntity1.locX(), nmsEntity1.getHeadY(), nmsEntity1.locZ());
Vec3D vec3d1 = new Vec3D(nmsEntity2.locX(), nmsEntity2.getHeadY(), nmsEntity2.locZ());
return nmsEntity1.world.rayTrace(new RayTrace(vec3d, vec3d1, RayTrace.BlockCollisionOption.VISUAL, RayTrace.FluidCollisionOption.NONE, nmsEntity1)).getType() == MovingObjectPosition.EnumMovingObjectType.MISS;
}
use of net.minecraft.server.v1_15_R1.Vec3D in project Warlords by ebicep.
the class FlagSpawnPointOption method register.
@Override
public void register(Game game) {
this.game = game;
// We register a gamemarker to prevent any captures for our own team if we lost our flag
game.registerGameMarker(FlagCaptureInhibitMarker.class, pFlag -> {
return !(info.getFlag() instanceof SpawnFlagLocation) && info.getTeam() == pFlag.getPlayer().getTeam();
});
game.registerGameMarker(DebugLocationMarker.class, DebugLocationMarker.create(Material.BANNER, 0, this.getClass(), "Flag spawn: " + info.getTeam(), this.info.getSpawnLocation()));
game.registerGameMarker(DebugLocationMarker.class, DebugLocationMarker.create(Material.BANNER, 15, this.getClass(), "Flag: " + info.getTeam(), () -> info.getFlag().getLocation(), () -> info.getFlag().getDebugInformation()));
FlagHolder holder = FlagHolder.create(() -> info);
game.registerGameMarker(FlagHolder.class, holder);
if (this.registerCompassMarker) {
game.registerGameMarker(CompassTargetMarker.class, holder);
}
game.registerGameMarker(ScoreboardHandler.class, scoreboard = new SimpleScoreboardHandler(info.getTeam() == Team.RED ? 20 : 21, "flag") {
@Override
public List<String> computeLines(@Nullable WarlordsPlayer player) {
String flagName = info.getTeam().coloredPrefix();
FlagLocation flag = info.getFlag();
if (flag instanceof SpawnFlagLocation) {
return singletonList(flagName + " Flag: " + ChatColor.GREEN + "Safe");
} else if (flag instanceof PlayerFlagLocation) {
PlayerFlagLocation pFlag = (PlayerFlagLocation) flag;
String extra = pFlag.getPickUpTicks() == 0 ? "" : ChatColor.YELLOW + " +" + pFlag.getComputedHumanMultiplier() + "§e%";
return singletonList(flagName + " Flag: " + ChatColor.RED + "Stolen!" + extra);
} else if (flag instanceof GroundFlagLocation) {
GroundFlagLocation gFlag = (GroundFlagLocation) flag;
return singletonList(flagName + " Flag: " + ChatColor.YELLOW + "Dropped! " + ChatColor.GRAY + gFlag.getDespawnTimerSeconds());
} else {
return singletonList(flagName + " Flag: " + ChatColor.GRAY + "Respawning...");
}
}
});
game.registerEvents(new Listener() {
@EventHandler(priority = EventPriority.LOW)
public void onArmorStandBreak(EntityDamageByEntityEvent event) {
boolean isOurArmorStand = renderer.getRenderedArmorStands().contains(event.getEntity());
WarlordsPlayer wp = Warlords.getPlayer(event.getDamager());
if (wp != null && wp.getGame() == game && isOurArmorStand) {
onFlagInteract(wp);
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.LOW)
public void onPotentialFlagInteract(PlayerInteractEntityEvent event) {
onPotentialFlagInteract((PlayerEvent) event);
}
@EventHandler(priority = EventPriority.LOW)
public void onPotentialFlagInteract(PlayerInteractEvent event) {
onPotentialFlagInteract((PlayerEvent) event);
}
private void onPotentialFlagInteract(PlayerEvent event) {
WarlordsPlayer wp = Warlords.getPlayer(event.getPlayer());
if (wp != null && wp.getGame() == game) {
Location playerLocation = wp.getEntity().getEyeLocation();
Vector direction = wp.getEntity().getLocation().getDirection().multiply(3);
Vec3D from = new Vec3D(playerLocation.getX(), playerLocation.getY(), playerLocation.getZ());
Vec3D to = new Vec3D(playerLocation.getX() + direction.getX(), playerLocation.getY() + direction.getY(), playerLocation.getZ() + direction.getZ());
checkFlagInteract(playerLocation, wp, from, to, renderer);
}
}
private void checkFlagInteract(Location playerLocation, WarlordsPlayer wp, Vec3D from, Vec3D to, FlagRenderer render) {
Location entityLoc = new Location(playerLocation.getWorld(), 0, 0, 0);
for (Entity stand : render.getRenderedArmorStands()) {
stand.getLocation(entityLoc);
if (entityLoc.getWorld() == playerLocation.getWorld() && entityLoc.distanceSquared(playerLocation) < 5 * 5) {
AxisAlignedBB aabb = new AxisAlignedBB(entityLoc.getX() - 0.5, entityLoc.getY(), entityLoc.getZ() - 0.5, entityLoc.getX() + 0.5, entityLoc.getY() + 2, entityLoc.getZ() + 0.5);
MovingObjectPosition mop = aabb.a(from, to);
if (mop != null) {
onFlagInteract(wp);
break;
}
}
}
}
private void onFlagInteract(WarlordsPlayer wp) {
Team team = wp.getTeam();
if (wp.isDeath()) {
return;
}
if (renderer.getLastFlagState() != info.getFlag()) {
// Prevent the player from interacting when the render state is outdated
return;
}
wp.setFlagCooldown(2);
if (info.getFlag() instanceof GroundFlagLocation) {
GroundFlagLocation groundFlagLocation = (GroundFlagLocation) info.getFlag();
if (team == info.getTeam()) {
// Return flag
info.setFlag(new SpawnFlagLocation(info.getSpawnLocation(), wp));
} else {
// Steal flag
info.setFlag(new PlayerFlagLocation(wp, groundFlagLocation.getDamageTimer()));
if (wp.getEntity().getVehicle() != null) {
wp.getEntity().getVehicle().remove();
}
}
} else if (info.getFlag() instanceof SpawnFlagLocation) {
if (team == info.getTeam()) {
// Nothing
wp.sendMessage("§cYou can't steal your own team's flag!");
} else {
// Steal flag
info.setFlag(new PlayerFlagLocation(wp, 0));
wp.getCooldownManager().addCooldown(new RegularCooldown<FlagSpawnPointOption>("Flag Damage Resistance", "RES", FlagSpawnPointOption.class, null, wp, CooldownTypes.BUFF, cooldownManager -> {
}, 15 * 20) {
@Override
public float modifyDamageAfterInterveneFromSelf(WarlordsDamageHealingEvent event, float currentDamageValue) {
return currentDamageValue * .9f;
}
});
}
}
}
});
}
use of net.minecraft.server.v1_15_R1.Vec3D in project MechanicsMain by WeaponMechanics.
the class FakeEntity_1_15_R1 method show.
@Override
public void show(@NotNull Player player) {
PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
if (connections.contains(connection))
throw new IllegalArgumentException();
connection.sendPacket(type.isAlive() ? new PacketPlayOutSpawnEntityLiving((EntityLiving) entity) : new PacketPlayOutSpawnEntity(entity, type == EntityType.FALLING_BLOCK ? Block.getCombinedId(block) : 0));
connection.sendPacket(new PacketPlayOutEntityMetadata(cache, entity.getDataWatcher(), true));
connection.sendPacket(new PacketPlayOutEntityLook(cache, convertYaw(getYaw()), convertPitch(getPitch()), false));
connection.sendPacket(new PacketPlayOutEntityVelocity(cache, new Vec3D(motion.getX(), motion.getY(), motion.getZ())));
connection.sendPacket(new PacketPlayOutEntityHeadRotation(entity, convertYaw(getYaw())));
PacketPlayOutEntityEquipment[] equipment = getEquipmentPacket();
if (equipment != null) {
for (PacketPlayOutEntityEquipment packet : equipment) {
connection.sendPacket(packet);
}
}
// Inject the player's packet connection into this listener, so we can
// show the player position/velocity/rotation changes
connections.add(connection);
}
Aggregations