下面列出了org.bukkit.event.entity.EntityToggleGlideEvent#setCancelled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler(priority = EventPriority.LOWEST)
public void onCustomElytraPlayerGlideLowest(CustomElytraPlayerToggleGlideEvent customEvent) {
if (customEvent.isCancelled())
return;
CustomItem cItem = customEvent.getCustomItem();
if (!(cItem.getPermissions() instanceof ElytraPermissions))
return;
ElytraPermissions perm = (ElytraPermissions) cItem.getPermissions();
EntityToggleGlideEvent event = customEvent.getEntityToggleGlideEvent();
if (event.getEntity().getType().equals(EntityType.PLAYER)
&& !PermissionUtils.allowedAction((Player) event.getEntity(), perm.getType(), perm.getFlight()))
event.setCancelled(true);
}
@EventHandler(ignoreCancelled = true)
public void onEntityToggleGlideEvent(EntityToggleGlideEvent event)
{
Entity entity = event.getEntity();
if (entity instanceof Player)
{
Player player = (Player)entity;
ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
ForcedState state = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.GLIDE);
if (state != ForcedState.ALLOW)
{
event.setCancelled(true);
player.setGliding(state == ForcedState.FORCE);
if (state == ForcedState.DENY)
{
player.teleport(player.getLocation());
}
}
}
}
@EventHandler(priority= EventPriority.HIGH, ignoreCancelled=true)
public void onToggleGlide(EntityToggleGlideEvent e) {
if(!e.isGliding()) return;
FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
if(!config.getBoolean("items.prevent-elytra")) return;
Entity entity = e.getEntity();
if(!(entity instanceof Player)) return;
Player player = (Player) entity;
ICombatManager combatManager = this.plugin.getCombatManager();
if(!combatManager.isInCombat(player)) return;
e.setCancelled(true);
player.setGliding(false);
String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.elytra.no-gliding");
this.plugin.sendMessage(player, message);
}