diff --git a/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java b/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java index f0dd9cba4..3431c5eaf 100644 --- a/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java +++ b/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java @@ -81,7 +81,6 @@ public class BocekarrowEntity extends AbstractArrow implements ItemSupplier { @Override protected void onHitEntity(EntityHitResult result) { - final Vec3 position = this.position(); Entity entity = result.getEntity(); if (this.getOwner() instanceof LivingEntity living) { double _setval = 25; @@ -95,7 +94,7 @@ public class BocekarrowEntity extends AbstractArrow implements ItemSupplier { } } if (entity instanceof LivingEntity livingEntity) { - entity.invulnerableTime = 0; + livingEntity.invulnerableTime = 0; } AABB boundingBox = entity.getBoundingBox(); Vec3 startVec = this.position(); @@ -110,7 +109,7 @@ public class BocekarrowEntity extends AbstractArrow implements ItemSupplier { if (box != null) { box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); Optional headshotHitPos = box.clip(startVec, endVec); - if (!headshotHitPos.isPresent()) { + if (headshotHitPos.isEmpty()) { box = box.inflate(0.2, 0.2, 0.2); headshotHitPos = box.clip(startVec, endVec); } diff --git a/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java b/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java index fe0efb671..af0f90a24 100644 --- a/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java +++ b/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java @@ -194,6 +194,11 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity, Animated @Override public void baseTick() { super.baseTick(); + + if (this.getPersistentData().getDouble("claymore") > 0) { + this.getPersistentData().putDouble("claymore", (this.getPersistentData().getDouble("claymore") - 1)); + } + ClaymoreDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this); this.refreshDimensions(); } diff --git a/src/main/java/net/mcreator/target/item/ClaymoreMineItem.java b/src/main/java/net/mcreator/target/item/ClaymoreMineItem.java index 4de6f9f3f..a148c5c5a 100644 --- a/src/main/java/net/mcreator/target/item/ClaymoreMineItem.java +++ b/src/main/java/net/mcreator/target/item/ClaymoreMineItem.java @@ -1,9 +1,13 @@ package net.mcreator.target.item; -import net.mcreator.target.procedures.ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure; +import net.mcreator.target.entity.ClaymoreEntity; +import net.mcreator.target.init.TargetModEntities; import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.TamableAnimal; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -24,9 +28,23 @@ public class ClaymoreMineItem extends Item { } @Override - public InteractionResultHolder use(Level world, Player entity, InteractionHand hand) { - InteractionResultHolder ar = super.use(world, entity, hand); - ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure.execute(world, entity.getX(), entity.getY(), entity.getZ(), entity, ar.getObject()); - return ar; + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if (world instanceof ServerLevel serverLevel) { + TamableAnimal entityToSpawn = new ClaymoreEntity(TargetModEntities.CLAYMORE.get(), serverLevel); + entityToSpawn.moveTo(player.getX(), player.getY() + 1.1, player.getZ(), player.getYRot(), player.getXRot()); + entityToSpawn.setYBodyRot(player.getYRot()); + entityToSpawn.setYHeadRot(player.getYRot()); + entityToSpawn.setDeltaMovement((0.5 * player.getLookAngle().x), (0.5 * player.getLookAngle().y), (0.5 * player.getLookAngle().z)); + entityToSpawn.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(entityToSpawn.blockPosition()), MobSpawnType.MOB_SUMMONED, null, null); + entityToSpawn.tame(player); + serverLevel.addFreshEntity(entityToSpawn); + } + + player.getCooldowns().addCooldown(this, 20); + stack.shrink(1); + + return InteractionResultHolder.consume(stack); } } diff --git a/src/main/java/net/mcreator/target/procedures/BullettestDanSheWuJiZhongFangKuaiShiProcedure.java b/src/main/java/net/mcreator/target/procedures/BullettestDanSheWuJiZhongFangKuaiShiProcedure.java deleted file mode 100644 index 63e836bf7..000000000 --- a/src/main/java/net/mcreator/target/procedures/BullettestDanSheWuJiZhongFangKuaiShiProcedure.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; - -public class BullettestDanSheWuJiZhongFangKuaiShiProcedure { - public static void execute(Entity immediatesourceentity) { - if (immediatesourceentity == null) - return; - { - if (!immediatesourceentity.level().isClientSide() && immediatesourceentity.getServer() != null) { - immediatesourceentity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, immediatesourceentity.position(), immediatesourceentity.getRotationVector(), immediatesourceentity.level() instanceof ServerLevel ? (ServerLevel) immediatesourceentity.level() : null, 4, - immediatesourceentity.getName().getString(), immediatesourceentity.getDisplayName(), immediatesourceentity.level().getServer(), immediatesourceentity), "particle target:bullthole ~ ~ ~ 0 0 0 0 1 force"); - } - } - { - if (!immediatesourceentity.level().isClientSide() && immediatesourceentity.getServer() != null) { - immediatesourceentity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, immediatesourceentity.position(), immediatesourceentity.getRotationVector(), immediatesourceentity.level() instanceof ServerLevel ? (ServerLevel) immediatesourceentity.level() : null, 4, - immediatesourceentity.getName().getString(), immediatesourceentity.getDisplayName(), immediatesourceentity.level().getServer(), immediatesourceentity), "particle minecraft:smoke ~ ~ ~ 0 0.1 0 0.01 3 force"); - } - } - { - if (!immediatesourceentity.level().isClientSide() && immediatesourceentity.getServer() != null) { - immediatesourceentity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, immediatesourceentity.position(), immediatesourceentity.getRotationVector(), immediatesourceentity.level() instanceof ServerLevel ? (ServerLevel) immediatesourceentity.level() : null, 4, - immediatesourceentity.getName().getString(), immediatesourceentity.getDisplayName(), immediatesourceentity.level().getServer(), immediatesourceentity), "playsound target:land block @a ~ ~ ~ 1 1"); - } - } - if (!immediatesourceentity.level().isClientSide()) - immediatesourceentity.discard(); - } -} diff --git a/src/main/java/net/mcreator/target/procedures/ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure.java b/src/main/java/net/mcreator/target/procedures/ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure.java deleted file mode 100644 index 1ba1b5b39..000000000 --- a/src/main/java/net/mcreator/target/procedures/ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.entity.ClaymoreEntity; -import net.mcreator.target.init.TargetModEntities; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.MobSpawnType; -import net.minecraft.world.entity.TamableAnimal; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.LevelAccessor; - -public class ClaymoreMineYouJiFangKuaiShiFangKuaiDeWeiZhiProcedure { - public static void execute(LevelAccessor world, double x, double y, double z, Entity entity, ItemStack itemstack) { - if (entity == null) return; - if (entity instanceof LivingEntity _entity) - _entity.swing(InteractionHand.MAIN_HAND, true); - if (world instanceof ServerLevel _level) { - TamableAnimal entityToSpawn = new ClaymoreEntity(TargetModEntities.CLAYMORE.get(), _level); - entityToSpawn.moveTo(x, (y + 1.1), z, entity.getYRot(), entity.getXRot()); - entityToSpawn.setYBodyRot(entity.getYRot()); - entityToSpawn.setYHeadRot(entity.getYRot()); - entityToSpawn.setDeltaMovement((0.5 * entity.getLookAngle().x), (0.5 * entity.getLookAngle().y), (0.5 * entity.getLookAngle().z)); - entityToSpawn.finalizeSpawn(_level, _level.getCurrentDifficultyAt(entityToSpawn.blockPosition()), MobSpawnType.MOB_SUMMONED, null, null); - if (entity instanceof Player _owner) { - entityToSpawn.tame(_owner); - } - _level.addFreshEntity(entityToSpawn); - } - if (entity instanceof Player player) { - player.getCooldowns().addCooldown(itemstack.getItem(), 20); - if (!player.isCreative()) { - player.getInventory().clearOrCountMatchingItems(p -> itemstack.getItem() == p.getItem(), 1, player.inventoryMenu.getCraftSlots()); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/ClaymoretimeProcedure.java b/src/main/java/net/mcreator/target/procedures/ClaymoretimeProcedure.java deleted file mode 100644 index 1f4d5ceb5..000000000 --- a/src/main/java/net/mcreator/target/procedures/ClaymoretimeProcedure.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.world.entity.Entity; -import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -import javax.annotation.Nullable; - -@Mod.EventBusSubscriber -public class ClaymoretimeProcedure { - @SubscribeEvent - public static void onEntityTick(LivingEvent.LivingTickEvent event) { - execute(event, event.getEntity()); - } - - public static void execute(Entity entity) { - execute(null, entity); - } - - private static void execute(@Nullable Event event, Entity entity) { - if (entity == null) - return; - if (entity.getPersistentData().getDouble("claymore") > 0) { - entity.getPersistentData().putDouble("claymore", (entity.getPersistentData().getDouble("claymore") - 1)); - } - } -}