made heresy impossible

This commit is contained in:
2025-02-01 03:35:59 +00:00
parent f671a07a4d
commit b6b5aab626
2 changed files with 55 additions and 7 deletions
@@ -1,25 +1,69 @@
package dev.zxq5.fantasysmp.events; package dev.zxq5.fantasysmp.events;
import org.bukkit.Location; import org.bukkit.*;
import org.bukkit.entity.Chicken; import org.bukkit.entity.Chicken;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wither; import org.bukkit.entity.Wither;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.plugin.Plugin;
import static org.bukkit.Bukkit.getServer; import static org.bukkit.Bukkit.*;
public class StevenKillCheck implements Listener { public class StevenKillCheck implements Listener {
@EventHandler @EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (event.getEntity() instanceof Chicken && event.getDamager() instanceof Player player) { if (event.getEntity() instanceof Chicken) {
Location coords = player.getLocation(); event.setCancelled(true);
// summon lightning at location if (event.getDamager() instanceof Player player) {
destroyHeretic(player);
getServer().getWorlds().getFirst().strikeLightning(coords);
} }
} }
}
@EventHandler
public void onEntityDamage(EntityDamageEvent event) {
if (event.getEntity() instanceof Chicken) {
event.setCancelled(true);
}
}
@EventHandler
public void onProjectileHit(ProjectileHitEvent event) {
if (event.getHitEntity() instanceof Chicken && event.getEntity().getShooter() instanceof Player player) {
event.setCancelled(true);
destroyHeretic(player);
}
}
@EventHandler
public void onEntitySpawn(org.bukkit.event.entity.EntitySpawnEvent event) {
if (event.getEntity() instanceof Chicken steven) {
steven.setCustomName("Steven");
}
}
public void destroyHeretic(Player heretic) {
Location coords = heretic.getLocation();
World world = getServer().getWorlds().getFirst();
Plugin plugin = getPluginManager().getPlugin("fantasysmp");
broadcastMessage(ChatColor.DARK_RED + "HERESY!!!!");
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 0);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 1);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 2);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 3);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 4);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 5);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 6);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 7);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 8);
Bukkit.getScheduler().runTaskLater(plugin, () -> world.strikeLightning(coords), 9);
Bukkit.getScheduler().runTaskLater(plugin, () -> heretic.setHealth(0), 10);
}
} }
@@ -95,6 +95,10 @@ public class Witherite extends GenericGearSet implements Listener, CommandExecut
@EventHandler @EventHandler
public void onEntityPotionEffectEvent(org.bukkit.event.entity.EntityPotionEffectEvent event) { public void onEntityPotionEffectEvent(org.bukkit.event.entity.EntityPotionEffectEvent event) {
if (event.getEntity() instanceof Player player) { if (event.getEntity() instanceof Player player) {
if (event.getNewEffect().getType() != org.bukkit.potion.PotionEffectType.WITHER) {
return;
}
try { try {
if (player.getInventory().getHelmet().getItemMeta().getLore().toString().contains(this.helmetLore) if (player.getInventory().getHelmet().getItemMeta().getLore().toString().contains(this.helmetLore)
&& player.getInventory().getChestplate().getItemMeta().getLore().toString().contains(this.chestplateLore) && player.getInventory().getChestplate().getItemMeta().getLore().toString().contains(this.chestplateLore)