下面列出了怎么用org.bukkit.event.entity.EntityCombustByBlockEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@EventHandler(priority = EventPriority.LOWEST)
public void onEntityDamage(EntityCombustByBlockEvent event) {
GDTimings.ENTITY_DAMAGE_EVENT.startTiming();
Object source = event.getCombuster();
if (source == null) {
source = NMSUtil.getInstance().getFlameableBlock(event.getEntity());
}
if (protectEntity(event, source, event.getEntity())) {
event.setCancelled(true);
}
GDTimings.ENTITY_DAMAGE_EVENT.stopTiming();
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void handleIgnition(EntityCombustByBlockEvent event) {
MatchPlayer victim = match.getParticipant(event.getEntity());
if (victim == null) return;
ParticipantState attacker =
match.needModule(TrackerMatchModule.class).getOwner(event.getCombuster());
// Disabling FIRE/LAVA damage also prevents setting on fire
if (!this.canDamage(getBlockDamageCause(event.getCombuster()), victim, attacker)) {
event.setCancelled(true);
}
}
@EventHandler(ignoreCancelled = true)
public void onIgnition(EntityCombustByBlockEvent event) {
MatchPlayer victim = getVictim(event.getEntity());
if (victim == null) return;
processDamageEvent(
event,
victim.getParticipantState(),
tracker()
.resolveDamage(
EntityDamageEvent.DamageCause.FIRE, event.getEntity(), event.getCombuster()));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityIgnite(EntityCombustByBlockEvent event) {
if (event.getDuration() == 0) return;
ParticipantState owner = blocks().getOwner(event.getCombuster());
if (owner != null) {
burningEntities.put(
event.getEntity(), new FireInfo(blocks().resolveBlock(event.getCombuster())));
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void handleIgnition(EntityCombustByBlockEvent event) {
MatchPlayer victim = getMatch().getParticipant(event.getEntity());
if(victim == null) return;
ParticipantState attacker = blockResolver.getOwner(event.getCombuster());
// Disabling FIRE/LAVA damage also prevents setting on fire
if(!this.canDamage(getBlockDamageCause(event.getCombuster()), victim, attacker)) {
event.setCancelled(true);
}
}
@EventHandler(ignoreCancelled = true)
public void onIgnition(EntityCombustByBlockEvent event) {
MatchPlayer victim = getVictim(event.getEntity());
if(victim == null) return;
processDamageEvent(event, victim.getParticipantState(),
damageResolver.resolveDamage(EntityDamageEvent.DamageCause.FIRE, event.getEntity(), event.getCombuster()));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityIgnite(EntityCombustByBlockEvent event) {
if(event.getDuration() == 0) return;
ParticipantState owner = blocks.getOwner(event.getCombuster());
if(owner != null) {
burningEntities.put(event.getEntity(), new FireInfo(blocks.resolveBlock(event.getCombuster())));
}
}
@EventHandler
public void onEntityCombustEvent(EntityCombustByBlockEvent event) {
if (event.getEntity() instanceof Player && testObserver((Player)event.getEntity())){
event.getEntity().setFireTicks(0);
}
}