From bbe136e8a98fb2e9366ceb538283399b37a1d04a Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Sun, 12 May 2024 18:36:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E8=81=94=E9=83=A8=E5=88=86=E8=BF=87?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screens/CrosshairOverlay.java | 18 ++++- .../target/client/screens/M79uiOverlay.java | 16 +++- .../target/entity/GunGrenadeEntity.java | 32 ++++++-- .../mcreator/target/entity/SenpaiEntity.java | 20 ++++- .../event/LivingEntityEventHandler.java | 53 ++++++++++++++ .../target/event/PlayerEventHandler.java | 44 +++++++++++ ...airXianShiYouXiNeiDieJiaCengProcedure.java | 26 ------- ...nSheWuFeiXingShiMeiKeFaShengProcedure.java | 20 ----- ...deDanSheWuJiZhongFangKuaiShiProcedure.java | 29 -------- ...enadeDanSheWuJiZhongShiTiShiProcedure.java | 29 -------- .../procedures/HurtcancelProcedure.java | 39 ---------- .../procedures/KillindicationProcedure.java | 52 ------------- ...9uiXianShiYouXiNeiDieJiaCengProcedure.java | 21 ------ .../procedures/MianyishanghaiProcedure.java | 34 --------- ...lXiaoGuoChiXuShiMeiKeFaShengProcedure.java | 73 ------------------- .../SenpaiDangShiTiGengXinKeShiProcedure.java | 32 -------- ...hiXinPengZhuangXiangTiaoJianProcedure.java | 7 -- 17 files changed, 170 insertions(+), 375 deletions(-) delete mode 100644 src/main/java/net/mcreator/target/procedures/CrosshairXianShiYouXiNeiDieJiaCengProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongShiTiShiProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/HurtcancelProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/KillindicationProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/M79uiXianShiYouXiNeiDieJiaCengProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/MianyishanghaiProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/PullXiaoGuoChiXuShiMeiKeFaShengProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/SenpaiDangShiTiGengXinKeShiProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/Target1ShiXinPengZhuangXiangTiaoJianProcedure.java diff --git a/src/main/java/net/mcreator/target/client/screens/CrosshairOverlay.java b/src/main/java/net/mcreator/target/client/screens/CrosshairOverlay.java index b356e53dc..a70314e52 100644 --- a/src/main/java/net/mcreator/target/client/screens/CrosshairOverlay.java +++ b/src/main/java/net/mcreator/target/client/screens/CrosshairOverlay.java @@ -4,12 +4,14 @@ import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import net.mcreator.target.init.TargetModAttributes; +import net.mcreator.target.init.TargetModItems; import net.mcreator.target.network.TargetModVariables; -import net.mcreator.target.procedures.CrosshairXianShiYouXiNeiDieJiaCengProcedure; +import net.minecraft.client.CameraType; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.player.Player; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RenderGuiEvent; @@ -40,7 +42,7 @@ public class CrosshairOverlay { RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); - if (CrosshairXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) { + if (shouldRenderCrosshair(entity)) { preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/point.png"), w / 2 + -7.5f, h / 2 + -8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2 + -9.5f - 2.8f * (float) spread, h / 2 + -8, 0, 0, 16, 16, 16, 16); @@ -102,4 +104,16 @@ public class CrosshairOverlay { bufferbuilder.vertex(matrix4f, pX2, pY, pBlitOffset).uv(pMaxU, pMinV).endVertex(); BufferUploader.drawWithShader(bufferbuilder.end()); } + + private static boolean shouldRenderCrosshair(Player player) { + if (player == null) return false; + + if (player.isSpectator()) return false; + if (!player.getMainHandItem().is(ItemTags.create(new ResourceLocation("target:gun"))) + || !(player.getPersistentData().getDouble("zoom_time") < 7) + ) return false; + + return !(player.getMainHandItem().getItem() == TargetModItems.M_79.get()) + && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON; + } } diff --git a/src/main/java/net/mcreator/target/client/screens/M79uiOverlay.java b/src/main/java/net/mcreator/target/client/screens/M79uiOverlay.java index ac71345ae..a50dff056 100644 --- a/src/main/java/net/mcreator/target/client/screens/M79uiOverlay.java +++ b/src/main/java/net/mcreator/target/client/screens/M79uiOverlay.java @@ -2,7 +2,9 @@ package net.mcreator.target.client.screens; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; -import net.mcreator.target.procedures.M79uiXianShiYouXiNeiDieJiaCengProcedure; +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.network.TargetModVariables; +import net.minecraft.client.CameraType; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.resources.ResourceLocation; @@ -19,14 +21,14 @@ public class M79uiOverlay { public static void eventHandler(RenderGuiEvent.Pre event) { int w = event.getWindow().getGuiScaledWidth(); int h = event.getWindow().getGuiScaledHeight(); - Player entity = Minecraft.getInstance().player; + Player player = Minecraft.getInstance().player; RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); RenderSystem.enableBlend(); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); - if (M79uiXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) { + if (shouldRenderCrosshair(player)) { event.getGuiGraphics().blit(new ResourceLocation("target:textures/screens/rex.png"), w / 2 + -16, h / 2 + -16, 0, 0, 32, 32, 32, 32); } RenderSystem.depthMask(true); @@ -35,4 +37,12 @@ public class M79uiOverlay { RenderSystem.disableBlend(); RenderSystem.setShaderColor(1, 1, 1, 1); } + + private static boolean shouldRenderCrosshair(Player player) { + if (player == null) return false; + return !player.isSpectator() + && player.getMainHandItem().getItem() == TargetModItems.M_79.get() + && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON + && !player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> c.zooming).orElse(false); + } } diff --git a/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java b/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java index 7274e2c23..ae593e7a5 100644 --- a/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java +++ b/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java @@ -4,9 +4,7 @@ import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.network.TargetModVariables; -import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure; -import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure; -import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure; +import net.mcreator.target.procedures.MedexpProcedure; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.protocol.Packet; @@ -89,7 +87,15 @@ public class GunGrenadeEntity extends AbstractArrow implements ItemSupplier { living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:indication voice @a ~ ~ ~ 1 1"); } } - GunGrenadeDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this); + + if (this.getPersistentData().getDouble("baoxian") > 0) { + if (this.level() instanceof ServerLevel level) { + level.explode(this, (this.getX()), (this.getY()), (this.getZ()), 5.5f, Level.ExplosionInteraction.NONE); + MedexpProcedure.execute(this.level(), (this.getX()), (this.getY()), (this.getZ())); + this.discard(); + } + } + if (entity instanceof LivingEntity) { entity.invulnerableTime = 0; } @@ -137,13 +143,27 @@ public class GunGrenadeEntity extends AbstractArrow implements ItemSupplier { @Override public void onHitBlock(BlockHitResult blockHitResult) { super.onHitBlock(blockHitResult); - GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.execute(this.level(), this); + if (this.getPersistentData().getDouble("baoxian") > 0) { + if (this.level() instanceof ServerLevel level) { + this.level().explode(this, this.getX(), this.getY(), this.getZ(), 5.5f, Level.ExplosionInteraction.NONE); + MedexpProcedure.execute(level, this.getX(), this.getY(), this.getZ()); + this.discard(); + } + } } @Override public void tick() { super.tick(); - GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this); + + this.getPersistentData().putDouble("baoxian", (this.getPersistentData().getDouble("baoxian") + 1)); + + // TODO 修改为正确的粒子效果添加 + if (!this.level().isClientSide() && this.getServer() != null) { + this.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, this.position(), this.getRotationVector(), this.level() instanceof ServerLevel ? (ServerLevel) this.level() : null, 4, + this.getName().getString(), this.getDisplayName(), this.level().getServer(), this), "particle minecraft:campfire_cosy_smoke ~ ~ ~ 0 0 0 0 1 force"); + } + if (this.tickCount > 200) { this.discard(); } diff --git a/src/main/java/net/mcreator/target/entity/SenpaiEntity.java b/src/main/java/net/mcreator/target/entity/SenpaiEntity.java index e453c67ad..e357c250f 100644 --- a/src/main/java/net/mcreator/target/entity/SenpaiEntity.java +++ b/src/main/java/net/mcreator/target/entity/SenpaiEntity.java @@ -1,7 +1,6 @@ package net.mcreator.target.entity; import net.mcreator.target.init.TargetModEntities; -import net.mcreator.target.procedures.SenpaiDangShiTiGengXinKeShiProcedure; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; @@ -30,6 +29,8 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.DungeonHooks; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PlayMessages; @@ -43,6 +44,8 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import java.util.Comparator; + public class SenpaiEntity extends Spider implements GeoEntity, AnimatedEntity { public static final EntityDataAccessor SHOOT = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING); @@ -146,7 +149,20 @@ public class SenpaiEntity extends Spider implements GeoEntity, AnimatedEntity { @Override public void baseTick() { super.baseTick(); - SenpaiDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this); + + this.getPersistentData().putDouble("findtarget", this.getPersistentData().getDouble("findtarget") + 1); + double target = this.getPersistentData().getDouble("findtarget"); + if (target == 1) { + final Vec3 center = new Vec3(this.getX(), this.getY(), this.getZ()); + this.level().getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(1024 / 2d), e -> true) + .stream() + .sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))) + .filter(e -> e instanceof Player player && !player.isCreative()) + .forEach(e -> this.setTarget((LivingEntity) e)); + } else if (target >= 100) { + this.getPersistentData().putDouble("findtarget", 0); + } + this.refreshDimensions(); } diff --git a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java index a265490aa..1e7dff072 100644 --- a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java @@ -1,5 +1,7 @@ package net.mcreator.target.event; +import net.mcreator.target.entity.Target1Entity; +import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; @@ -7,9 +9,14 @@ import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageTypes; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -17,7 +24,53 @@ import net.minecraftforge.fml.common.Mod; public class LivingEntityEventHandler { @SubscribeEvent public static void onEntityAttacked(LivingHurtEvent event) { + if (event == null || event.getEntity() == null) return; renderDamageIndicator(event); + target1DamageImmune(event, event.getEntity()); + } + + @SubscribeEvent + public static void onEntityAttacked(LivingAttackEvent event) { + if (event == null || event.getEntity() == null) return; + arrowDamageImmuneForMine(event, event.getSource(), event.getSource().getEntity()); + } + + @SubscribeEvent + public static void onEntityDeath(LivingDeathEvent event) { + if (event == null || event.getEntity() == null) return; + killIndication(event.getSource().getEntity()); + } + + private static void target1DamageImmune(Event event, Entity entity) { + if (entity == null) return; + if (entity instanceof Target1Entity && entity.getPersistentData().getDouble("targetdown") > 0) { + event.setCanceled(true); + } + } + + private static void killIndication(Entity sourceEntity) { + if (sourceEntity == null) return; + if (sourceEntity instanceof Player player && player.getMainHandItem().is(TargetModTags.Items.GUN)) { + if (!sourceEntity.level().isClientSide() && sourceEntity.getServer() != null) { + + // TODO 修改为正确音效播放方法 + sourceEntity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, sourceEntity.position(), sourceEntity.getRotationVector(), sourceEntity.level() instanceof ServerLevel ? (ServerLevel) sourceEntity.level() : null, 4, + sourceEntity.getName().getString(), sourceEntity.getDisplayName(), sourceEntity.level().getServer(), sourceEntity), "playsound target:targetdown player @s ~ ~ ~ 100 1"); + } + sourceEntity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.killIndicator = 40; + capability.syncPlayerVariables(sourceEntity); + }); + } + } + + private static void arrowDamageImmuneForMine(Event event, DamageSource damageSource, Entity sourceEntity) { + if (damageSource == null || sourceEntity == null) return; + if (sourceEntity instanceof Player player && (!sourceEntity.isAlive() || player.isSpectator()) + && (damageSource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:arrow_in_brain"))) + || damageSource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:mine"))) + || damageSource.is(DamageTypes.ARROW)) + ) event.setCanceled(true); } private static void renderDamageIndicator(LivingHurtEvent event) { diff --git a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java index 8026bb0e1..0ed08e309 100644 --- a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java @@ -1,11 +1,17 @@ package net.mcreator.target.event; import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; +import net.minecraft.commands.CommandSource; +import net.minecraft.commands.CommandSourceStack; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundSource; import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -61,6 +67,7 @@ public class PlayerEventHandler { handleChangeFireRate(player); handleDistantRange(player); renderDamageIndicator(player); + bocekPulling(player); } } @@ -350,4 +357,41 @@ public class PlayerEventHandler { Thread recoilThread = new Thread(recoilRunnable); recoilThread.start(); } + + private static void bocekPulling(Player player) { + ItemStack mainHandItem = player.getMainHandItem(); + CompoundTag tag = mainHandItem.getOrCreateTag(); + + if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).bowPullHold) { + if (mainHandItem.getItem() == TargetModItems.BOCEK.get() + && tag.getDouble("maxammo") > 0 + && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) + && tag.getDouble("power") < 12 + ) { + tag.putDouble("power", tag.getDouble("power") + 1); + + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.bowPull = true; + capability.syncPlayerVariables(player); + }); + } + if (tag.getDouble("power") == 1) { + if (!player.level().isClientSide() && player.getServer() != null) { + // TODO 修改为正确的音效播放 + player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), player.level() instanceof ServerLevel ? (ServerLevel) player.level() : null, 4, + player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:bocek_pull_1p player @s ~ ~ ~ 2 1"); + + player.level().playSound(null, player.blockPosition(), TargetModSounds.BOCEK_PULL_3P.get(), SoundSource.PLAYERS, 0.5f, 1); + } + } + } else { + if (mainHandItem.getItem() == TargetModItems.BOCEK.get()) { + tag.putDouble("power", 0); + } + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.bowPull = false; + capability.syncPlayerVariables(player); + }); + } + } } diff --git a/src/main/java/net/mcreator/target/procedures/CrosshairXianShiYouXiNeiDieJiaCengProcedure.java b/src/main/java/net/mcreator/target/procedures/CrosshairXianShiYouXiNeiDieJiaCengProcedure.java deleted file mode 100644 index d5172fcc1..000000000 --- a/src/main/java/net/mcreator/target/procedures/CrosshairXianShiYouXiNeiDieJiaCengProcedure.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.minecraft.client.CameraType; -import net.minecraft.client.Minecraft; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.ItemTags; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; - -public class CrosshairXianShiYouXiNeiDieJiaCengProcedure { - public static boolean execute(Entity entity) { - if (entity == null) return false; - - if (entity instanceof Player player) { - if (player.isSpectator()) return false; - if (!player.getMainHandItem().is(ItemTags.create(new ResourceLocation("target:gun"))) - || !(entity.getPersistentData().getDouble("zoom_time") < 7) - ) return false; - - return !(player.getMainHandItem().getItem() == TargetModItems.M_79.get()) - && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON; - } - return false; - } -} diff --git a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.java deleted file mode 100644 index 49fa7df7a..000000000 --- a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.java +++ /dev/null @@ -1,20 +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 GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure { - public static void execute(Entity immediatesourceentity) { - if (immediatesourceentity == null) - return; - immediatesourceentity.getPersistentData().putDouble("baoxian", (immediatesourceentity.getPersistentData().getDouble("baoxian") + 1)); - { - 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:campfire_cosy_smoke ~ ~ ~ 0 0 0 0 1 force"); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.java b/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.java deleted file mode 100644 index 87ec643cd..000000000 --- a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.phys.Vec2; -import net.minecraft.world.phys.Vec3; - -public class GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure { - public static void execute(LevelAccessor world, Entity immediatesourceentity) { - if (immediatesourceentity == null) - return; - if (immediatesourceentity.getPersistentData().getDouble("baoxian") > 0) { - if (world instanceof Level _level && !_level.isClientSide()) - _level.explode(immediatesourceentity, (immediatesourceentity.getX()), (immediatesourceentity.getY()), (immediatesourceentity.getZ()), 5.5f, Level.ExplosionInteraction.NONE); - if (world instanceof ServerLevel _level) - _level.getServer().getCommands().performPrefixedCommand( - new CommandSourceStack(CommandSource.NULL, new Vec3((immediatesourceentity.getX()), (immediatesourceentity.getY()), (immediatesourceentity.getZ())), Vec2.ZERO, _level, 4, "", Component.literal(""), _level.getServer(), null) - .withSuppressedOutput(), - "target:mediumexp"); - if (!immediatesourceentity.level().isClientSide()) - immediatesourceentity.discard(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongShiTiShiProcedure.java b/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongShiTiShiProcedure.java deleted file mode 100644 index b2df1510d..000000000 --- a/src/main/java/net/mcreator/target/procedures/GunGrenadeDanSheWuJiZhongShiTiShiProcedure.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.phys.Vec2; -import net.minecraft.world.phys.Vec3; - -public class GunGrenadeDanSheWuJiZhongShiTiShiProcedure { - public static void execute(LevelAccessor world, Entity immediatesourceentity) { - if (immediatesourceentity == null) - return; - if (immediatesourceentity.getPersistentData().getDouble("baoxian") > 0) { - if (world instanceof Level _level && !_level.isClientSide()) - _level.explode(immediatesourceentity, (immediatesourceentity.getX()), (immediatesourceentity.getY()), (immediatesourceentity.getZ()), 5.5f, Level.ExplosionInteraction.NONE); - if (world instanceof ServerLevel _level) - _level.getServer().getCommands().performPrefixedCommand( - new CommandSourceStack(CommandSource.NULL, new Vec3((immediatesourceentity.getX()), (immediatesourceentity.getY()), (immediatesourceentity.getZ())), Vec2.ZERO, _level, 4, "", Component.literal(""), _level.getServer(), null) - .withSuppressedOutput(), - "target:mediumexp"); - if (!immediatesourceentity.level().isClientSide()) - immediatesourceentity.discard(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/HurtcancelProcedure.java b/src/main/java/net/mcreator/target/procedures/HurtcancelProcedure.java deleted file mode 100644 index 25f8408a4..000000000 --- a/src/main/java/net/mcreator/target/procedures/HurtcancelProcedure.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.damagesource.DamageTypes; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -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 HurtcancelProcedure { - @SubscribeEvent - public static void onEntityAttacked(LivingAttackEvent event) { - if (event != null && event.getEntity() != null) { - execute(event, event.getSource(), event.getSource().getEntity()); - } - } - - public static void execute(DamageSource damagesource, Entity sourceentity) { - execute(null, damagesource, sourceentity); - } - - private static void execute(@Nullable Event event, DamageSource damagesource, Entity sourceentity) { - if (damagesource == null || sourceentity == null) - return; - if (sourceentity instanceof Player player && (!sourceentity.isAlive() || player.isSpectator()) && (damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:arrow_in_brain"))) || damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:mine"))) || damagesource.is(DamageTypes.ARROW))) { - if (event != null && event.isCancelable()) { - event.setCanceled(true); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/KillindicationProcedure.java b/src/main/java/net/mcreator/target/procedures/KillindicationProcedure.java deleted file mode 100644 index 9e522d983..000000000 --- a/src/main/java/net/mcreator/target/procedures/KillindicationProcedure.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.ItemTags; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -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 KillindicationProcedure { - @SubscribeEvent - public static void onEntityDeath(LivingDeathEvent event) { - if (event != null && event.getEntity() != null) { - execute(event, event.getSource().getEntity()); - } - } - - public static void execute(Entity sourceentity) { - execute(null, sourceentity); - } - - private static void execute(@Nullable Event event, Entity sourceentity) { - if (sourceentity == null) - return; - if (sourceentity instanceof Player && (sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).is(ItemTags.create(new ResourceLocation("target:gun")))) { - { - if (!sourceentity.level().isClientSide() && sourceentity.getServer() != null) { - sourceentity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, sourceentity.position(), sourceentity.getRotationVector(), sourceentity.level() instanceof ServerLevel ? (ServerLevel) sourceentity.level() : null, 4, - sourceentity.getName().getString(), sourceentity.getDisplayName(), sourceentity.level().getServer(), sourceentity), "playsound target:targetdown player @s ~ ~ ~ 100 1"); - } - } - { - double _setval = 40; - sourceentity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.killIndicator = _setval; - capability.syncPlayerVariables(sourceentity); - }); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/M79uiXianShiYouXiNeiDieJiaCengProcedure.java b/src/main/java/net/mcreator/target/procedures/M79uiXianShiYouXiNeiDieJiaCengProcedure.java deleted file mode 100644 index 36aded845..000000000 --- a/src/main/java/net/mcreator/target/procedures/M79uiXianShiYouXiNeiDieJiaCengProcedure.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.client.CameraType; -import net.minecraft.client.Minecraft; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; - -public class M79uiXianShiYouXiNeiDieJiaCengProcedure { - public static boolean execute(Entity entity) { - if (entity == null) return false; - if (entity instanceof Player player) { - return !player.isSpectator() - && player.getMainHandItem().getItem() == TargetModItems.M_79.get() - && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON - && !entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables()).zooming; - } - return false; - } -} diff --git a/src/main/java/net/mcreator/target/procedures/MianyishanghaiProcedure.java b/src/main/java/net/mcreator/target/procedures/MianyishanghaiProcedure.java deleted file mode 100644 index 41776ab59..000000000 --- a/src/main/java/net/mcreator/target/procedures/MianyishanghaiProcedure.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.entity.Target1Entity; -import net.minecraft.world.entity.Entity; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -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 MianyishanghaiProcedure { - @SubscribeEvent - public static void onEntityAttacked(LivingAttackEvent event) { - if (event != null && event.getEntity() != null) { - 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 instanceof Target1Entity && entity.getPersistentData().getDouble("targetdown") > 0) { - if (event != null && event.isCancelable()) { - event.setCanceled(true); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/PullXiaoGuoChiXuShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/PullXiaoGuoChiXuShiMeiKeFaShengProcedure.java deleted file mode 100644 index ac84fd694..000000000 --- a/src/main/java/net/mcreator/target/procedures/PullXiaoGuoChiXuShiMeiKeFaShengProcedure.java +++ /dev/null @@ -1,73 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.event.TickEvent; -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 PullXiaoGuoChiXuShiMeiKeFaShengProcedure { - @SubscribeEvent - public static void onPlayerTick(TickEvent.PlayerTickEvent event) { - if (event.phase == TickEvent.Phase.END) { - execute(event, event.player); - } - } - - public static void execute(Entity entity) { - execute(null, entity); - } - - private static void execute(@Nullable Event event, Entity entity) { - if (entity == null) - return; - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).bowPullHold) { - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get() - && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("maxammo") > 0 - && !(entity instanceof Player _plrCldCheck5 && _plrCldCheck5.getCooldowns().isOnCooldown((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem())) - && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("power") < 12) { - (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().putDouble("power", - ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("power") + 1)); - { - boolean _setval = true; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.bowPull = _setval; - capability.syncPlayerVariables(entity); - }); - } - } - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("power") == 1) { - { - 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.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:bocek_pull_1p player @s ~ ~ ~ 2 1"); - entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, - entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:bocek_pull_3p player @a ~ ~ ~ 0.5 1"); - } - } - } - } else { - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get()) { - (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().putDouble("power", 0); - } - { - boolean _setval = false; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.bowPull = _setval; - capability.syncPlayerVariables(entity); - }); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/SenpaiDangShiTiGengXinKeShiProcedure.java b/src/main/java/net/mcreator/target/procedures/SenpaiDangShiTiGengXinKeShiProcedure.java deleted file mode 100644 index a1ac61cef..000000000 --- a/src/main/java/net/mcreator/target/procedures/SenpaiDangShiTiGengXinKeShiProcedure.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -import java.util.Comparator; - -public class SenpaiDangShiTiGengXinKeShiProcedure { - public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) { - if (entity == null) return; - double target; - - entity.getPersistentData().putDouble("findtarget", (entity.getPersistentData().getDouble("findtarget") + 1)); - target = entity.getPersistentData().getDouble("findtarget"); - if (target == 1 && entity instanceof Mob mob) { - final Vec3 _center = new Vec3(x, y, z); - world.getEntitiesOfClass(Entity.class, new AABB(_center, _center).inflate(1024 / 2d), e -> true) - .stream() - .sorted(Comparator.comparingDouble(e -> e.distanceToSqr(_center))) - .filter(e -> e instanceof Player player && !player.isCreative()) - .forEach(e -> mob.setTarget((LivingEntity) e)); - } - if (target >= 100) { - entity.getPersistentData().putDouble("findtarget", 0); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/Target1ShiXinPengZhuangXiangTiaoJianProcedure.java b/src/main/java/net/mcreator/target/procedures/Target1ShiXinPengZhuangXiangTiaoJianProcedure.java deleted file mode 100644 index c4764c398..000000000 --- a/src/main/java/net/mcreator/target/procedures/Target1ShiXinPengZhuangXiangTiaoJianProcedure.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.mcreator.target.procedures; - -public class Target1ShiXinPengZhuangXiangTiaoJianProcedure { - public static boolean execute() { - return true; - } -}