package com.colt.NoFall;

import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class NoFall extends JavaPlugin implements Listener {
	
	List<String> worlds = getConfig().getStringList("worlds");
	
	public void onEnable() {
		saveDefaultConfig();
		Bukkit.getPluginManager().registerEvents(this, this);
	}

	@EventHandler
	public void onEntityDamage(EntityDamageEvent e) {
		if (e.getEntity() instanceof Player) {
			Player p = (Player)e.getEntity();
			if ((e.getCause().equals(EntityDamageEvent.DamageCause.FALL)) && (p.hasPermission("nofall.use"))) {
			    for(String w : worlds) {
			    	World world = Bukkit.getWorld(w);
					if(p.getWorld().equals(world)) {
						e.setCancelled(true);
					}
			    }
			}
		}
	}
}

@@ -7,23 +7,53 @@
 e co
-m.colt.NoFall;%0A
+lt.nofalldamage;%0A%0Aimport java.util.ArrayList;
 %0Aimp
@@ -117,21 +117,33 @@
 .bukkit.
-World
+entity.EntityType
 ;%0Aimport
@@ -291,16 +291,78 @@
 eEvent;%0A
+import org.bukkit.event.entity.EntityDamageEvent.DamageCause;%0A
 import o
@@ -457,17 +457,16 @@
 tener %7B%0A
-%09
 %0A%09List%3CS
@@ -485,46 +485,33 @@
 s = 
-getConfig().getStringList(%22worlds%22
+new ArrayList%3CString%3E(
 );%0A
-%09
 %0A%09pu
@@ -537,31 +537,8 @@
 ) %7B%0A
-%09%09saveDefaultConfig();%0A
 %09%09Bu
@@ -589,16 +589,245 @@
  this);%0A
+%09%09saveDefaultConfig();%0A%0A%09%09for (String world : getConfig().getStringList(%22worlds%22)) %7B%0A%09%09%09if (Bukkit.getWorld(world) == null) %7B%0A%09%09%09%09getLogger().info(%22Invalid world in config: %22 + world);%0A%09%09%09%7D else %7B%0A%09%09%09%09worlds.add(world);%0A%09%09%09%7D%0A%09%09%7D%0A
 %09%7D%0A%0A%09@Ev
@@ -850,19 +850,17 @@
 ic void 
-onE
+e
 ntityDam
@@ -862,16 +862,21 @@
 tyDamage
+Event
 (EntityD
@@ -887,16 +887,20 @@
 eEvent e
+vent
 ) %7B%0A%09%09if
@@ -902,16 +902,20 @@
 %0A%09%09if (e
+vent
 .getEnti
@@ -920,28 +920,35 @@
 tity
-() instanceof Player
+Type() == EntityType.PLAYER
 ) %7B%0A
@@ -958,16 +958,21 @@
 Player p
+layer
  = (Play
@@ -974,17 +974,22 @@
 (Player)
-e
+ event
 .getEnti
@@ -1001,18 +1001,21 @@
 %0A%09%09%09if (
-(
 e
+vent
 .getCaus
@@ -1021,34 +1021,12 @@
 se()
-.equals(EntityDamageEvent.
+ == 
 Dama
@@ -1041,16 +1041,23 @@
 FALL
-)) && (p
+%0A%09%09%09%09%09&& player
 .has
@@ -1085,129 +1085,72 @@
 e%22))
-)
  %7B%0A%09%09%09
-    for(String w : worlds) %7B%0A%09%09%09    %09World world = Bukkit.getWorld(w);%0A%09%09%09%09%09if(p.getWorld().equals(world
+%09if (worlds.contains(player.getWorld().getName(
 ))
+)
  %7B%0A%09%09%09%09%09
 %09e.s
@@ -1149,10 +1149,13 @@
 %09%09%09%09
-%09
 e
+vent
 .set
@@ -1179,18 +1179,8 @@
 %09%09%09%09
-%09%7D%0A%09%09%09    
 %7D%0A%09%09

Update NoFall.java