禁止使用作弊武器攻击末影龙,凋零以及远古守卫者
This commit is contained in:
@@ -2,6 +2,7 @@ package ling.coordinateRecorder.Listener;
|
||||
|
||||
import ling.coordinateRecorder.data.CheatItemsData;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@@ -15,7 +16,7 @@ import org.bukkit.persistence.PersistentDataContainer;
|
||||
/// 保护作弊物品,仅限召唤者使用
|
||||
public class CheatItemListener implements Listener {
|
||||
|
||||
protected boolean onEvent(Player player, ItemStack item) {
|
||||
protected boolean onEvent(Player player, ItemStack item, boolean isBoss) {
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if (meta == null)
|
||||
return false;
|
||||
@@ -27,6 +28,10 @@ public class CheatItemListener implements Listener {
|
||||
player.sendMessage(ChatColor.RED + "该物品只允许 " + data.getName() + " 使用");
|
||||
return true;
|
||||
}
|
||||
if (isBoss) {
|
||||
player.sendMessage(ChatColor.RED + "无法对BOSS级生物使用该物品!");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -34,7 +39,10 @@ public class CheatItemListener implements Listener {
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player) {
|
||||
ItemStack weapon = player.getInventory().getItemInMainHand();
|
||||
if (onEvent(player, weapon)) {
|
||||
EntityType type = event.getEntityType();
|
||||
boolean isBoss =
|
||||
type == EntityType.ENDER_DRAGON || type == EntityType.WITHER || type == EntityType.ELDER_GUARDIAN;
|
||||
if (onEvent(player, weapon, isBoss)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
@@ -44,7 +52,7 @@ public class CheatItemListener implements Listener {
|
||||
public void onProjectileHit(ProjectileHitEvent event) {
|
||||
if (event.getHitEntity() != null && event.getHitEntity() instanceof Player player) {
|
||||
ItemStack weapon = player.getInventory().getItemInMainHand();
|
||||
if (onEvent(player, weapon))
|
||||
if (onEvent(player, weapon, false))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
@@ -53,7 +61,7 @@ public class CheatItemListener implements Listener {
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
ItemStack weapon = player.getInventory().getItemInMainHand();
|
||||
if (onEvent(player, weapon))
|
||||
if (onEvent(player, weapon, false))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user