1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как выдать эффект всем неподалеку Entity?

Тема в разделе "Разработка плагинов для новичков", создана пользователем serb, 13 июн 2023.

  1. Автор темы
    serb

    serb Новичок

    Баллы:
    6
    Имя в Minecraft:
    serbioZ
    Как сделать так, чтобы после того как игрок убил Entity, на расстоянии в 4 блока от точки его смерти выдавалась всем слепота? То есть, игрок убивает зомби и всем другим Entity, которые находятся на расстоянии в 4 блока от его точки смерти, выдавалась слепота или какой-нибудь другой эффект.

    Я хочу сделать это как зачарование. Если у игрока в руках меч с этим зачарованием, то после убийства Любого Entity всем вокруг него выдавалась слепота.

    Так же, я хочу, чтобы после убийства Entity, коровы, куры, свиньи и другие животные, которые находились рядом, разбегались в разные стороны будто их ударили. Это можно реализовать?
     
  2. Wh1teInc

    Wh1teInc Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    Wh1teInc
    Код:
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.*********ventory.ItemStack;
    import org.*********ventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class RuBukkit extends JavaPlugin implements Listener {
    
        private final String ENCHANTMENT_NAME = "Blindness";
        private final int ENCHANTMENT_LEVEL = 1;
        private final int EFFECT_RADIUS = 4;
    
        @Override
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
            registerEnchantment();
        }
    
        private void registerEnchantment() {
            ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("Blindness Sword");
            meta.addEnchant(getEnchantment(), ENCHANTMENT_LEVEL, true);
            item.setItemMeta(meta);
            Bukkit.addRecipe(getRecipe(item));
        }
    
        private CustomEnchantment getEnchantment() {
            CustomEnchantment enchantment = new CustomEnchantment(ENCHANTMENT_NAME, "Blinds nearby enemies on death", 10);
            enchantment.setRadius(EFFECT_RADIUS);
            return enchantment;
        }
    
        private ShapedRecipe getRecipe(ItemStack result) {
            ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(this, "blindness_sword"), result);
            recipe.shape("D", "D", "S");
            recipe.setIngredient('D', Material.DIAMOND);
            recipe.setIngredient('S', Material.STICK);
            return recipe;
        }
    
        @EventHandler
        public void onEntityDeath(EntityDeathEvent event) {
            Entity entity = event.getEntity();
            if (entity.getKiller() != null) {
                Player player = entity.getKiller();
                ItemStack item = player.getInventory().getItemInMainHand();
                if (item.containsEnchantment(getEnchantment())) {
                    Location location = entity.getLocation();
                    for (Entity nearby : location.getWorld().getNearbyEntities(location, EFFECT_RADIUS, EFFECT_RADIUS, EFFECT_RADIUS)) {
                        if (nearby instanceof Player && !((Player) nearby).equals(player)) {
                            ((Player) nearby).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 200, 0));
                        }
                    }
                }
            }
        }
    
    }
    
    
     
  3. Автор темы
    serb

    serb Новичок

    Баллы:
    6
    Имя в Minecraft:
    serbioZ
    Спасибо большое! "Чтобы после убийства Entity, коровы, куры, свиньи и другие животные, которые находились рядом, разбегались в разные стороны будто их ударили" Возможно ли это вообще сделать?
     

Поделиться этой страницей