用Java写一个Bukkit1122的当怪物名称中包含 十年百年字样时怪物将自动扣血
以下是一个使用Java编写的Bukkit插件,可以实现当怪物名称中包含"十年"或"百年"字样时,怪物将自动扣血的功能。
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class MonsterDamagePlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent event) {
Entity entity = event.getEntity();
if (entity instanceof LivingEntity) {
String monsterName = entity.getName();
if (monsterName.contains("十年") || monsterName.contains("百年")) {
double damage = event.getDamage();
double newDamage = damage - 1; // 自动扣血1滴
event.setDamage(newDamage);
}
}
}
}
请确保你的项目已经正确导入Bukkit的库文件,并将该代码保存为MonsterDamagePlugin.java文件。然后,编译并打包成.jar文件,并将该文件放入服务器的插件目录中。
注意:该插件只会在怪物受到伤害时扣血,而不是一直扣血。如果你想要实现每隔一段时间扣血的效果,你需要使用计时器和循环来实现
原文地址: https://www.cveoy.top/t/topic/hWkA 著作权归作者所有。请勿转载和采集!