Skip to content

Instantly share code, notes, and snippets.

@Cewlt
Created October 30, 2015 21:34
Show Gist options
  • Save Cewlt/aff565f2a93c5da4ace8 to your computer and use it in GitHub Desktop.
Save Cewlt/aff565f2a93c5da4ace8 to your computer and use it in GitHub Desktop.
package com.colt.flydamage;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
public class FlyDamage extends JavaPlugin implements Listener {
ArrayList<String> protectedPlayers = new ArrayList<String>();
Plugin plugin;
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
plugin = this;
}
@EventHandler
public void fallDamage(EntityDamageEvent event) {
if(event.getEntity() instanceof Player) {
Player player = (Player) event.getEntity();
if(event.getCause() == EntityDamageEvent.DamageCause.FALL) {
if(protectedPlayers.contains(player.getName())) {
event.setCancelled(true);
}
}
}
}
@EventHandler
public void toggleFlight(PlayerToggleFlightEvent event) {
final Player player = event.getPlayer();
if(event.isFlying() == true) { // don't ask why this works
protectedPlayers.add(player.getName());
new BukkitRunnable() {
@Override
public void run() {
protectedPlayers.remove(player.getName());
}
}.runTaskLater(this.plugin, 200);
}
}
@EventHandler
public void playerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
if(protectedPlayers.contains(player.getName())) {
protectedPlayers.remove(player.getName());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment