summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Ward <chris@chrisgward.com>2013-01-09 22:47:27 +1100
committerChris Ward <chris@chrisgward.com>2013-01-09 22:47:27 +1100
commite9e3d3b578366989ba39a7d60e64d553489b8cb7 (patch)
tree441f38ff5664d27405ff74e716824412d7e3055e
parent70aad4a9549e045023dab765837918efc8c67dab (diff)
downloadEssentials-e9e3d3b578366989ba39a7d60e64d553489b8cb7.tar
Essentials-e9e3d3b578366989ba39a7d60e64d553489b8cb7.tar.gz
Essentials-e9e3d3b578366989ba39a7d60e64d553489b8cb7.tar.lz
Essentials-e9e3d3b578366989ba39a7d60e64d553489b8cb7.tar.xz
Essentials-e9e3d3b578366989ba39a7d60e64d553489b8cb7.zip
New permission: essentials.fly.safelogin - Players with this command automatically switch to fly mode if they login whilst floating in the air.
c6dd921f0c91006e360067abf6fe349da031eca4
-rw-r--r--Essentials/src/net/ess3/listener/EssentialsPlayerListener.java22
-rw-r--r--Essentials/src/net/ess3/permissions/Permissions.java1
2 files changed, 22 insertions, 1 deletions
diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
index 989ca3867..327e264b4 100644
--- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
+++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
@@ -11,6 +11,7 @@ import java.util.regex.Pattern;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
+import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -328,6 +329,25 @@ public class EssentialsPlayerListener implements Listener
user.sendMessage(_("youHaveNewMail", mail.size()));
}
}
+ if(Permissions.FLY_SAFELOGIN.isAuthorized(user))
+ {
+ final Location loc = user.getPlayer().getLocation();
+ final World world = loc.getWorld();
+ final int x = loc.getBlockX();
+ int y = loc.getBlockY();
+ final int z = loc.getBlockZ();
+ while(LocationUtil.isBlockUnsafe(world, x, y, z) && y > -1)
+ {
+ y--;
+ }
+
+ if(loc.getBlockY() - y > 1 || y < 0)
+ {
+ user.getPlayer().setAllowFlight(true);
+ user.getPlayer().setFlying(true);
+ user.sendMessage(_("flyMode", _("enabled"), user.getPlayer().getDisplayName()));
+ }
+ }
}
@@ -592,7 +612,7 @@ public class EssentialsPlayerListener implements Listener
}
if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH)
{
- final IUser user = userMap.getUser((Player)event.getWhoClicked());
+ final IUser user = userMap.getUser((Player) event.getWhoClicked());
if (user.isRecipeSee())
{
event.setCancelled(true);
diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java
index 869277b77..8006fca24 100644
--- a/Essentials/src/net/ess3/permissions/Permissions.java
+++ b/Essentials/src/net/ess3/permissions/Permissions.java
@@ -39,6 +39,7 @@ public enum Permissions implements IPermission
FEED_OTHERS,
FLY_EXEMPT,
FLY_OTHERS,
+ FLY_SAFELOGIN,
GAMEMODE_EXEMPT,
GAMEMODE_OTHERS,
GEOIP_HIDE(PermissionDefault.FALSE),