/
minecraftbackup
/
AnarchyExploitFixes
Обзор
Документация
Войти
/
minecraftbackup
/
AnarchyExploitFixes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/combat/PistonCrystalDelay.java
55 строк
2 KB
Ginko
2.7.2 release (#233)
13 авг 2024, 08:21
Не верифицирован
13 авг 2024, 08:21
d20da6e
Код
Авторство
О чём код?
package me.xginko.aef.modules.combat; import com.cryptomorin.xseries.XEntityType; import me.xginko.aef.modules.AEFModule; import me.xginko.aef.utils.models.ExpiringSet; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPistonExtendEvent; import java.time.Duration; public class PistonCrystalDelay extends AEFModule implements Listener { private final ExpiringSet<Location> pistonsPushingCrystals; public PistonCrystalDelay() { super("combat.crystal-aura.piston-aura-delay"); config.addComment(configPath+".enable", "Rate-limits pistons that extend into crystals."); this.pistonsPushingCrystals = new ExpiringSet<>(Duration.ofMillis( Math.max(1, config.getInt(configPath + ".piston-extend-delay-in-ticks", 40)) * 50L)); } @Override public void enable() { plugin.getServer().getPluginManager().registerEvents(this, plugin); } @Override public boolean shouldEnable() { return config.getBoolean(configPath+".enable", false); } @Override public void disable() { HandlerList.unregisterAll(this); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) private void onPistonExtend(BlockPistonExtendEvent event) { for (Entity entity : event.getBlock().getRelative(event.getDirection()).getLocation().getNearbyEntities(1, 1, 1)) { if (entity.getType() == XEntityType.END_CRYSTAL.get()) { if (pistonsPushingCrystals.contains(event.getBlock().getLocation())) { event.setCancelled(true); } else { pistonsPushingCrystals.add(event.getBlock().getLocation()); } return; } } } }