From e8894ba675492a213fbc8c31fe4f67dd5bdad7b7 Mon Sep 17 00:00:00 2001 From: OpexHunter Date: Fri, 21 Feb 2025 14:01:06 +0300 Subject: [PATCH] init --- .../java/com/punkcraft/example/Example.java | 23 -------- .../com/punkcraft/zombiedrop/ZombieDrop.java | 53 +++++++++++++++++++ src/main/resources/mcmod.info | 4 +- 3 files changed, 55 insertions(+), 25 deletions(-) delete mode 100644 src/main/java/com/punkcraft/example/Example.java create mode 100644 src/main/java/com/punkcraft/zombiedrop/ZombieDrop.java diff --git a/src/main/java/com/punkcraft/example/Example.java b/src/main/java/com/punkcraft/example/Example.java deleted file mode 100644 index b530012..0000000 --- a/src/main/java/com/punkcraft/example/Example.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.punkcraft.example; - -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; - - -@Mod(modid = Example.MODID, name = Example.NAME, version = Example.VERSION) -public class Example { - public static final String MODID = "example"; - public static final String NAME = "Example"; - public static final String VERSION = "1.0"; - - @Mod.EventHandler - public void init(FMLInitializationEvent event) { - } - - @Mod.EventHandler - public void preInit(FMLPreInitializationEvent event) { - } - - -} diff --git a/src/main/java/com/punkcraft/zombiedrop/ZombieDrop.java b/src/main/java/com/punkcraft/zombiedrop/ZombieDrop.java new file mode 100644 index 0000000..19adf54 --- /dev/null +++ b/src/main/java/com/punkcraft/zombiedrop/ZombieDrop.java @@ -0,0 +1,53 @@ +package com.punkcraft.zombiedrop; + +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.LivingDropsEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +@Mod(modid = ZombieDrop.MODID, name = ZombieDrop.NAME, version = ZombieDrop.VERSION) +public class ZombieDrop { + public static final String MODID = "zombiedrop"; + public static final String NAME = "ZombieDrop"; + public static final String VERSION = "1.0"; + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + // Регистрируем слушатель событий + MinecraftForge.EVENT_BUS.register(this); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + } + + /** + * Обработчик события дропа предметов. + */ + @SubscribeEvent + public void onLivingDrops(LivingDropsEvent event) { + // Проверяем, что убитая сущность - это зомби + if (event.getEntityLiving() instanceof EntityZombie) { + EntityZombie zombie = (EntityZombie) event.getEntityLiving(); + DamageSource source = event.getSource(); + + // Проверяем, что зомби был убит игроком или мобом + if (source.getTrueSource() != null || source.isExplosion()) { + // Генерируем случайное число от 0 до 99 + int random = zombie.world.rand.nextInt(100); + + // Если число меньше 4, добавляем эндерпёрл в дроп + if (random < 4) { + ItemStack enderPearl = new ItemStack(Item.getItemById(368), 1); // ID эндерпёрла: 368 + event.getDrops().add(new net.minecraft.entity.item.EntityItem(zombie.world, zombie.posX, zombie.posY, zombie.posZ, enderPearl)); + } + } + } +} +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 4e65d29..2e79d21 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,7 +1,7 @@ [ { - "modid": "example", - "name": "Example", + "modid": "zombiedrop", + "name": "ZombieDrop", "description": "", "version": "${version}", "mcversion": "${mcversion}",