修改弹射物

This commit is contained in:
17146 2024-05-06 12:51:04 +08:00
parent 8f7db46aec
commit c87d5c5a69
31 changed files with 108 additions and 83 deletions

View file

@ -3,7 +3,6 @@ package net.mcreator.target.entity;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetCustomModEntities; import net.mcreator.target.init.TargetCustomModEntities;
import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.procedures.ProjectileHeadshotEntity; import net.mcreator.target.procedures.ProjectileHeadshotEntity;
import net.mcreator.target.procedures.ProjectileHitEntity; import net.mcreator.target.procedures.ProjectileHitEntity;
import net.mcreator.target.util.math.ExtendedEntityRayTraceResult; import net.mcreator.target.util.math.ExtendedEntityRayTraceResult;
@ -11,6 +10,8 @@ import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -19,8 +20,6 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.block.LeavesBlock;
@ -28,47 +27,38 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.*; import net.minecraft.world.phys.*;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.entity.IEntityAdditionalSpawnData;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
public class ProjectileEntity extends ThrowableItemProjectile { public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnData {
private static final Predicate<Entity> PROJECTILE_TARGETS = input -> input != null && input.isPickable() && !input.isSpectator(); private static final Predicate<Entity> PROJECTILE_TARGETS = input -> input != null && input.isPickable() && !input.isSpectator();
private static final Predicate<BlockState> IGNORE_LEAVES = input -> input != null && input.getBlock() instanceof LeavesBlock; private static final Predicate<BlockState> IGNORE_LEAVES = input -> input != null && input.getBlock() instanceof LeavesBlock;
protected LivingEntity shooter; protected LivingEntity shooter;
protected int shooterId; protected int shooterId;
private float damage; private float damage = 1f;
public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) { public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) {
super(p_i50159_1_, p_i50159_2_); super(p_i50159_1_, p_i50159_2_);
} }
public ProjectileEntity(Level world, LivingEntity entity) { public ProjectileEntity(Level world, LivingEntity entity) {
super(TargetCustomModEntities.PROJECTILE.get(), entity, world); super(TargetCustomModEntities.PROJECTILE.get(), world);
this.damage = 0f; this.shooter = entity;
} }
public ProjectileEntity(Level world, LivingEntity entity, float damage) { public ProjectileEntity(Level world, LivingEntity entity, float damage) {
super(TargetCustomModEntities.PROJECTILE.get(), entity, world); super(TargetCustomModEntities.PROJECTILE.get(), world);
this.shooter = entity;
this.damage = damage; this.damage = damage;
} }
public ProjectileEntity(Level p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) {
super(TargetCustomModEntities.PROJECTILE.get(), p_i1775_2_, p_i1775_4_, p_i1775_6_, p_i1775_1_);
}
@Override
protected void onHitEntity(EntityHitResult result) {
super.onHitEntity(result);
}
@Nullable @Nullable
protected EntityResult findEntityOnPath(Vec3 startVec, Vec3 endVec) { protected EntityResult findEntityOnPath(Vec3 startVec, Vec3 endVec) {
Vec3 hitVec = null; Vec3 hitVec = null;
@ -76,11 +66,13 @@ public class ProjectileEntity extends ThrowableItemProjectile {
boolean headshot = false; boolean headshot = false;
List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS); List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS);
double closestDistance = Double.MAX_VALUE; double closestDistance = Double.MAX_VALUE;
for (Entity entity : entities) { for (Entity entity : entities) {
if (!entity.equals(this.shooter)) { if (!entity.equals(this.shooter)) {
EntityResult result = this.getHitResult(entity, startVec, endVec); EntityResult result = this.getHitResult(entity, startVec, endVec);
if (result == null) if (result == null) {
continue; continue;
}
Vec3 hitPos = result.getHitPos(); Vec3 hitPos = result.getHitPos();
double distanceToHit = startVec.distanceTo(hitPos); double distanceToHit = startVec.distanceTo(hitPos);
@ -95,20 +87,20 @@ public class ProjectileEntity extends ThrowableItemProjectile {
return hitEntity != null ? new EntityResult(hitEntity, hitVec, headshot) : null; return hitEntity != null ? new EntityResult(hitEntity, hitVec, headshot) : null;
} }
@Nullable // @Nullable
protected List<EntityResult> findEntitiesOnPath(Vec3 startVec, Vec3 endVec) { // protected List<EntityResult> findEntitiesOnPath(Vec3 startVec, Vec3 endVec) {
List<EntityResult> hitEntities = new ArrayList<>(); // List<EntityResult> hitEntities = new ArrayList<>();
List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS); // List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS);
for (Entity entity : entities) { // for (Entity entity : entities) {
if (!entity.equals(this.shooter)) { // if (!entity.equals(this.shooter)) {
EntityResult result = this.getHitResult(entity, startVec, endVec); // EntityResult result = this.getHitResult(entity, startVec, endVec);
if (result == null) // if (result == null)
continue; // continue;
hitEntities.add(result); // hitEntities.add(result);
} // }
} // }
return hitEntities; // return hitEntities;
} // }
@Nullable @Nullable
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ -142,7 +134,7 @@ public class ProjectileEntity extends ThrowableItemProjectile {
if (box != null) { if (box != null) {
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec); Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if (!headshotHitPos.isPresent()) { if (headshotHitPos.isEmpty()) {
box = box.inflate(0.2, 0.2, 0.2); box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec); headshotHitPos = box.clip(startVec, endVec);
} }
@ -161,6 +153,11 @@ public class ProjectileEntity extends ThrowableItemProjectile {
return new EntityResult(entity, hitPos, headshot); return new EntityResult(entity, hitPos, headshot);
} }
@Override
protected void defineSynchedData() {
}
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
@ -197,14 +194,21 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
} }
protected void onProjectileTick() { @Override
protected void readAdditionalSaveData(CompoundTag p_20052_) {
} }
@Override @Override
protected void onHitBlock(BlockHitResult hitResult) { protected void addAdditionalSaveData(CompoundTag p_20139_) {
super.onHitBlock(hitResult);
Vec3 location = hitResult.getLocation();
}
protected void onProjectileTick() {
}
protected void onHitBlock(Vec3 location) {
// TODO 修改成正常的音效播放/粒子显示方法
if (this.level() instanceof ServerLevel _level) if (this.level() instanceof ServerLevel _level)
_level.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, new Vec3(location.x, location.y, location.z), Vec2.ZERO, _level, 4, "", Component.literal(""), _level.getServer(), null).withSuppressedOutput(), _level.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, new Vec3(location.x, location.y, location.z), Vec2.ZERO, _level, 4, "", Component.literal(""), _level.getServer(), null).withSuppressedOutput(),
"particle target:bullthole ~ ~ ~ 0 0 0 0 1 force"); "particle target:bullthole ~ ~ ~ 0 0 0 0 1 force");
@ -219,6 +223,15 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
private void onHit(HitResult result, Vec3 startVec, Vec3 endVec) { private void onHit(HitResult result, Vec3 startVec, Vec3 endVec) {
if (result instanceof BlockHitResult blockHitResult) {
if (blockHitResult.getType() == HitResult.Type.MISS) {
return;
}
Vec3 hitVec = result.getLocation();
this.onHitBlock(hitVec);
}
if (result instanceof ExtendedEntityRayTraceResult entityHitResult) { if (result instanceof ExtendedEntityRayTraceResult entityHitResult) {
Entity entity = entityHitResult.getEntity(); Entity entity = entityHitResult.getEntity();
if (entity.getId() == this.shooterId) { if (entity.getId() == this.shooterId) {
@ -243,11 +256,6 @@ public class ProjectileEntity extends ThrowableItemProjectile {
ProjectileHitEntity.execute(this.level(), entity, this, this.shooter); ProjectileHitEntity.execute(this.level(), entity, this, this.shooter);
} }
@Override
protected Item getDefaultItem() {
return TargetModItems.RIFLE_AMMO.get().asItem();
}
public void setDamage(float damage) { public void setDamage(float damage) {
this.damage = damage; this.damage = damage;
} }
@ -256,6 +264,17 @@ public class ProjectileEntity extends ThrowableItemProjectile {
return this.damage; return this.damage;
} }
public void shoot(double p_37266_, double p_37267_, double p_37268_, float p_37269_, float p_37270_) {
Vec3 vec3 = (new Vec3(p_37266_, p_37267_, p_37268_)).normalize().add(this.random.triangle(0.0D, 0.0172275D * (double)p_37270_), this.random.triangle(0.0D, 0.0172275D * (double)p_37270_), this.random.triangle(0.0D, 0.0172275D * (double)p_37270_)).scale((double)p_37269_);
this.setDeltaMovement(vec3);
double d0 = vec3.horizontalDistance();
this.setYRot((float)(Mth.atan2(vec3.x, vec3.z) * (double)(180F / (float)Math.PI)));
this.setXRot((float)(Mth.atan2(vec3.y, d0) * (double)(180F / (float)Math.PI)));
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
}
@SuppressWarnings("SameParameterValue")
private static BlockHitResult rayTraceBlocks(Level world, ClipContext context, Predicate<BlockState> ignorePredicate) { private static BlockHitResult rayTraceBlocks(Level world, ClipContext context, Predicate<BlockState> ignorePredicate) {
return performRayTrace(context, (rayTraceContext, blockPos) -> { return performRayTrace(context, (rayTraceContext, blockPos) -> {
BlockState blockState = world.getBlockState(blockPos); BlockState blockState = world.getBlockState(blockPos);
@ -353,6 +372,16 @@ public class ProjectileEntity extends ThrowableItemProjectile {
this.xRotO = this.getXRot(); this.xRotO = this.getXRot();
} }
@Override
public void writeSpawnData(FriendlyByteBuf buffer) {
}
@Override
public void readSpawnData(FriendlyByteBuf additionalData) {
}
public static class EntityResult { public static class EntityResult {
private final Entity entity; private final Entity entity;
private final Vec3 hitVec; private final Vec3 hitVec;

View file

@ -51,7 +51,7 @@ public class AKfireProcedure {
entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:ak47_fire_3p"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:ak47_fire_3p");
} }
} }
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
AkDsProcedure.execute(entity); AkDsProcedure.execute(entity);
usehand.getOrCreateTag().putDouble("fireanim", 2); usehand.getOrCreateTag().putDouble("fireanim", 2);
usehand.getOrCreateTag().putDouble("ammo", (usehand.getOrCreateTag().getDouble("ammo") - 1)); usehand.getOrCreateTag().putDouble("ammo", (usehand.getOrCreateTag().getDouble("ammo") - 1));

View file

@ -37,7 +37,7 @@ public class Aa12autofireProcedure {
if (usehand.getItem() == TargetModItems.AA_12.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 if (usehand.getItem() == TargetModItems.AA_12.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0
&& !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
for (int index0 = 0; index0 < 8; index0++) { for (int index0 = 0; index0 < 8; index0++) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
} }
As12DsProcedure.execute(entity); As12DsProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
@ -68,7 +68,7 @@ public class Aa12autofireProcedure {
if (usehand.getItem() == TargetModItems.AA_12.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 if (usehand.getItem() == TargetModItems.AA_12.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0
&& !(entity instanceof Player _plrCldCheck20 && _plrCldCheck20.getCooldowns().isOnCooldown(usehand.getItem()))) { && !(entity instanceof Player _plrCldCheck20 && _plrCldCheck20.getCooldowns().isOnCooldown(usehand.getItem()))) {
for (int index1 = 0; index1 < 8; index1++) { for (int index1 = 0; index1 < 8; index1++) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
} }
As12DsProcedure.execute(entity); As12DsProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)

View file

@ -32,7 +32,7 @@ public class AbkrfireProcedure {
if (usehand.getItem() == TargetModItems.ABEKIRI.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.ABEKIRI.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
for (int index0 = 0; index0 < 8; index0++) { for (int index0 = 0; index0 < 8; index0++) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
} }
{ {
if (usehand.hurt(1, RandomSource.create(), null)) { if (usehand.hurt(1, RandomSource.create(), null)) {

View file

@ -39,7 +39,7 @@ public class Ak47autofireProcedure {
usehand.getOrCreateTag().putDouble("firecooldown", 7); usehand.getOrCreateTag().putDouble("firecooldown", 7);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
AkDsProcedure.execute(entity); AkDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -86,7 +86,6 @@ public class BowlooseProcedure {
for (int index0 = 0; index0 < 10; index0++) { for (int index0 = 0; index0 < 10; index0++) {
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) { if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
ProjectileEntity projectile = new ProjectileEntity(entity.level(), living); ProjectileEntity projectile = new ProjectileEntity(entity.level(), living);
projectile.setOwner(living);
projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ()); projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ());
projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) (4 * power), 2); projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) (4 * power), 2);
entity.level().addFreshEntity(projectile); entity.level().addFreshEntity(projectile);

View file

@ -7,12 +7,11 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
public class BulletfireNormalProcedure { public class BulletFireNormalProcedure {
public static void execute(Entity entity) { public static void execute(Entity entity) {
if (entity == null) if (entity == null)
return; return;
ItemStack usehand; ItemStack heldItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
if (Math.random() < 0.5) { if (Math.random() < 0.5) {
entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.recoilhorizon = -1; capability.recoilhorizon = -1;
@ -35,11 +34,10 @@ public class BulletfireNormalProcedure {
}); });
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) { if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
ProjectileEntity projectile = new ProjectileEntity(entity.level(), living); ProjectileEntity projectile = new ProjectileEntity(entity.level(), living, (float) heldItem.getOrCreateTag().getDouble("dmg"));
projectile.setOwner(living);
projectile.setPos((living.getX() + (-0.5) * living.getLookAngle().x), (living.getEyeY() - 0.1 + (-0.5) * living.getLookAngle().y), (living.getZ() + (-0.5) * living.getLookAngle().z)); projectile.setPos((living.getX() + (-0.5) * living.getLookAngle().x), (living.getEyeY() - 0.1 + (-0.5) * living.getLookAngle().y), (living.getZ() + (-0.5) * living.getLookAngle().z));
projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) usehand.getOrCreateTag().getDouble("velocity"), projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) heldItem.getOrCreateTag().getDouble("velocity"),
(float) living.getAttribute(TargetModAttributes.SPREAD.get()).getBaseValue()); (float) living.getAttribute(TargetModAttributes.SPREAD.get()).getBaseValue());
entity.level().addFreshEntity(projectile); entity.level().addFreshEntity(projectile);
} }

View file

@ -45,7 +45,7 @@ public class DevofireProcedure {
capability.syncPlayerVariables(entity); capability.syncPlayerVariables(entity);
}); });
} }
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
ArDsProcedure.execute(entity); ArDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -13,7 +13,7 @@ public class Hk416autofireProcedure {
return; return;
ItemStack usehand = ItemStack.EMPTY; ItemStack usehand = ItemStack.EMPTY;
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
HkDsProcedure.execute(entity); HkDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -33,7 +33,7 @@ public class Hk416fireProcedure {
if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
HkDsProcedure.execute(entity); HkDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -30,7 +30,7 @@ public class HrfireProcedure {
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
if (usehand.getItem() == TargetModItems.HUNTING_RIFLE.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.HUNTING_RIFLE.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 13); _player.getCooldowns().addCooldown(usehand.getItem(), 13);
{ {

View file

@ -31,7 +31,7 @@ public class KraberfireProcedure {
if (usehand.getItem() == TargetModItems.KRABER.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.KRABER.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
usehand.getOrCreateTag().putDouble("fireanim", 40); usehand.getOrCreateTag().putDouble("fireanim", 40);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
KraberDsProcedure.execute(entity); KraberDsProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 40); _player.getCooldowns().addCooldown(usehand.getItem(), 40);

View file

@ -13,7 +13,7 @@ public class M4autofireProcedure {
return; return;
ItemStack usehand; ItemStack usehand;
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
ArDsProcedure.execute(entity); ArDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -34,7 +34,7 @@ public class M4fireProcedure {
if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
ArDsProcedure.execute(entity); ArDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -44,7 +44,7 @@ public class M60autofireProcedure {
} }
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {
entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,

View file

@ -34,7 +34,7 @@ public class M870fireProcedure {
if (usehand.getItem() == TargetModItems.M_870.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck8 && _plrCldCheck8.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.M_870.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck8 && _plrCldCheck8.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
for (int index0 = 0; index0 < 12; index0++) { for (int index0 = 0; index0 < 12; index0++) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
} }
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 13); _player.getCooldowns().addCooldown(usehand.getItem(), 13);

View file

@ -31,7 +31,7 @@ public class M98bfireProcedure {
if (usehand.getItem() == TargetModItems.M_98B.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.M_98B.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
usehand.getOrCreateTag().putDouble("fireanim", 17); usehand.getOrCreateTag().putDouble("fireanim", 17);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 17); _player.getCooldowns().addCooldown(usehand.getItem(), 17);
{ {

View file

@ -47,7 +47,7 @@ public class MarlinfireProcedure {
usehand.getOrCreateTag().putDouble("fastfiring", 1); usehand.getOrCreateTag().putDouble("fastfiring", 1);
usehand.getOrCreateTag().putDouble("firing", 10); usehand.getOrCreateTag().putDouble("firing", 10);
} }
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {
entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,

View file

@ -101,7 +101,7 @@ public class MinigunautofireProcedure {
entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:minigun_fire_3p"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:minigun_fire_3p");
} }
} }
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo - 1; double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo - 1;
entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {

View file

@ -38,7 +38,7 @@ public class Mk14autofireProcedure {
&& !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) { && !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {
entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,

View file

@ -31,7 +31,7 @@ public class Mk14fireProcedure {
if (usehand.getItem() == TargetModItems.MK_14.get()) { if (usehand.getItem() == TargetModItems.MK_14.get()) {
if (usehand.getOrCreateTag().getDouble("firemode") == 0) { if (usehand.getOrCreateTag().getDouble("firemode") == 0) {
if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
{ {

View file

@ -23,10 +23,9 @@ public class ProjectileHeadshotEntity {
double dam = 0; double dam = 0;
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
{ {
Entity _ent = sourceentity; if (!sourceentity.level().isClientSide() && sourceentity.getServer() != null) {
if (!_ent.level().isClientSide() && _ent.getServer() != null) { sourceentity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, sourceentity.position(), sourceentity.getRotationVector(), sourceentity.level() instanceof ServerLevel ? (ServerLevel) sourceentity.level() : null, 4,
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, sourceentity.getName().getString(), sourceentity.getDisplayName(), sourceentity.level().getServer(), sourceentity), "playsound target:headshot voice @s ~ ~ ~ 1 1");
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @s ~ ~ ~ 1 1");
} }
} }
double _setval = 25; double _setval = 25;

View file

@ -38,7 +38,7 @@ public class RpkautofireProcedure {
&& !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) { && !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
AkDsProcedure.execute(entity); AkDsProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;

View file

@ -33,7 +33,7 @@ public class RpkfireProcedure {
if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 2); _player.getCooldowns().addCooldown(usehand.getItem(), 2);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
AkDsProcedure.execute(entity); AkDsProcedure.execute(entity);
{ {
if (!entity.level().isClientSide() && entity.getServer() != null) { if (!entity.level().isClientSide() && entity.getServer() != null) {

View file

@ -77,7 +77,7 @@ public class SentinelFireProcedure {
} }
} }
} }
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
usehand.getOrCreateTag().putDouble("crot", 20); usehand.getOrCreateTag().putDouble("crot", 20);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 23); _player.getCooldowns().addCooldown(usehand.getItem(), 23);

View file

@ -30,7 +30,7 @@ public class SksfireProcedure {
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
if (usehand.getItem() == TargetModItems.SKS.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.SKS.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
SksDsProcedure.execute(entity); SksDsProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;

View file

@ -30,7 +30,7 @@ public class SvdfireProcedure {
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
if (usehand.getItem() == TargetModItems.SVD.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.SVD.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
SvdDsProcedure.execute(entity); SvdDsProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;

View file

@ -30,7 +30,7 @@ public class TracheliumfireProcedure {
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
if (usehand.getItem() == TargetModItems.TRACHELIUM.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) if (usehand.getItem() == TargetModItems.TRACHELIUM.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem()))
&& usehand.getOrCreateTag().getDouble("ammo") > 0) { && usehand.getOrCreateTag().getDouble("ammo") > 0) {
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 4); _player.getCooldowns().addCooldown(usehand.getItem(), 4);
{ {

View file

@ -53,7 +53,7 @@ public class VecBurstFireProcedure {
_player.getCooldowns().addCooldown(usehand.getItem(), 1); _player.getCooldowns().addCooldown(usehand.getItem(), 1);
} }
usehand.getOrCreateTag().putDouble("burst", (usehand.getOrCreateTag().getDouble("burst") - 1)); usehand.getOrCreateTag().putDouble("burst", (usehand.getOrCreateTag().getDouble("burst") - 1));
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;
if (!_ent.level().isClientSide() && _ent.getServer() != null) { if (!_ent.level().isClientSide() && _ent.getServer() != null) {

View file

@ -38,7 +38,7 @@ public class VecautofireProcedure {
&& !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) { && !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 1); _player.getCooldowns().addCooldown(usehand.getItem(), 1);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;
if (!_ent.level().isClientSide() && _ent.getServer() != null) { if (!_ent.level().isClientSide() && _ent.getServer() != null) {

View file

@ -33,7 +33,7 @@ public class VecfireProcedure {
if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) { if (usehand.getOrCreateTag().getDouble("reloading") == 0 && usehand.getOrCreateTag().getDouble("ammo") > 0 && !(entity instanceof Player _plrCldCheck6 && _plrCldCheck6.getCooldowns().isOnCooldown(usehand.getItem()))) {
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(usehand.getItem(), 1); _player.getCooldowns().addCooldown(usehand.getItem(), 1);
BulletfireNormalProcedure.execute(entity); BulletFireNormalProcedure.execute(entity);
{ {
Entity _ent = entity; Entity _ent = entity;
if (!_ent.level().isClientSide() && _ent.getServer() != null) { if (!_ent.level().isClientSide() && _ent.getServer() != null) {