mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-16 19:44:15 +02:00
New permission: essentials.fly.safelogin - Players with this command will automatically switch to fly mode if they login whilst floating in the air.
This commit is contained in:
@@ -15,6 +15,7 @@ import java.util.logging.Logger;
|
|||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -238,6 +239,24 @@ public class EssentialsPlayerListener implements Listener
|
|||||||
user.sendMessage(_("youHaveNewMail", mail.size()));
|
user.sendMessage(_("youHaveNewMail", mail.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (user.isAuthorized("essentials.fly.safelogin"))
|
||||||
|
{
|
||||||
|
final World world = user.getLocation().getWorld();
|
||||||
|
final int x = user.getLocation().getBlockX();
|
||||||
|
int y = user.getLocation().getBlockY();
|
||||||
|
final int z = user.getLocation().getBlockZ();
|
||||||
|
while (Util.isBlockUnsafe(world, x, y, z) && y > -1)
|
||||||
|
{
|
||||||
|
y--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.getLocation().getBlockY() - y > 1 || y < 0)
|
||||||
|
{
|
||||||
|
user.setAllowFlight(true);
|
||||||
|
user.setFlying(true);
|
||||||
|
user.sendMessage(_("flyMode", _("enabled"), user.getDisplayName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Makes the compass item ingame always point to the first essentials home. #EasterEgg
|
// Makes the compass item ingame always point to the first essentials home. #EasterEgg
|
||||||
|
Reference in New Issue
Block a user