Помогите Взрываются предметы от тнт как это выключить

Статус
Закрыто для дальнейших ответов.

romanjo337

Ньюби
Баллы
1
Всем привет у меня гриф сервер и мне нужно выключить взрыв предметов лежащих на полу от всех взрывов , при этом все остальное это блоки, мобы, сундуки должны взрываться
Я прошерстил WG вроде нету такого искал везде где только можно никто не знает все советуют какието флаги из WG но не уточняют какие если кто то знает плагин или флаги или что то еще напишите
ПОВТОРЯЮ НУЖНО ЧТО БЫ ВЗРЫВАЛО ТОЛЬКО ПРЕДМЕТЫ
 
нужно выключить взрыв предметов
НУЖНО ЧТО БЫ ВЗРЫВАЛО ТОЛЬКО ПРЕДМЕТЫ
...

советуют какието флаги из WG
Нет в нём таких флагов.

Тут только писать отдельный плагин.
 
Код:
Я не очень разбираюсь в написании плагинов но может быть этот код будет работать , я не знаю как его скомпелировать, кто то может его скомпелировать и дать джарник , я не очень умею это делать

java
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class PreventExplosionsPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onEntityExplode(EntityExplodeEvent event) {
        for (Block block : event.blockList()) {
            if (block.getType() == Material.TNT ||
                block.getType() == Material.END_CRYSTAL ||
                block.getType() == Material.WITHER_ROSE ||
                block.getType() == Material.CREEPER_HEAD) {
                event.setCancelled(true);
            }
        }
        if (event.getEntityType() == EntityType.CREEPER) {
            event.setCancelled(true);
        }
    }
}
 
https://hub.spigotmc.org/javadocs/s...DamageEvent.DamageCause.html#ENTITY_EXPLOSION
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html#DROPPED_ITEM

Может, как-то так
Код:
Псевдокод
(EntityDamageEvent event) {
    if (event,getCause() == EntityDamageEvent.DamageCause.ENTITY_EXPLOSION && event.getEntityType() == EntityType.DROPPED_ITEM) {
        //отмена ивента
    }
}
Я же написал не умею компелировать, ты можешь это сделать?
 
Код:
Я не очень разбираюсь в написании плагинов но может быть этот код будет работать , я не знаю как его скомпелировать, кто то может его скомпелировать и дать джарник , я не очень умею это делать

java
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class PreventExplosionsPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onEntityExplode(EntityExplodeEvent event) {
        for (Block block : event.blockList()) {
            if (block.getType() == Material.TNT ||
                block.getType() == Material.END_CRYSTAL ||
                block.getType() == Material.WITHER_ROSE ||
                block.getType() == Material.CREEPER_HEAD) {
                event.setCancelled(true);
            }
        }
        if (event.getEntityType() == EntityType.CREEPER) {
            event.setCancelled(true);
        }
    }
}
Сам писал?
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ