org.bukkit.event.entity.EntityToggleGlideEvent#setCancelled ( )源码实例Demo

下面列出了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());
			}
		}
	}
}
 
源代码3 项目: CombatLogX   文件: ListenerElytra.java
@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);
}