mirror of
https://github.com/songoda/FabledSkyBlock.git
synced 2024-10-04 17:38:04 +02:00
Build 42
# Fixed NPE when interacting with an ArmorStand.
This commit is contained in:
parent
b37038ffd1
commit
f74746b27f
@ -143,6 +143,18 @@ public class SkyBlockAPI {
|
||||
return implementation.getIslandManager().hasPermission(player, setting);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a player has permission at a location at an Island for a Setting
|
||||
*
|
||||
* @return true of conditions met, false otherwise
|
||||
*/
|
||||
public static boolean hasPermission(Player player, Location location, String setting) {
|
||||
Preconditions.checkArgument(player != null, "Cannot check permission to null player");
|
||||
Preconditions.checkArgument(location != null, "Cannot check permission to null location");
|
||||
|
||||
return implementation.getIslandManager().hasPermission(player, location, setting);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the permission of a Setting for a Role at a Location
|
||||
*
|
||||
|
@ -766,11 +766,15 @@ public class IslandManager {
|
||||
}
|
||||
|
||||
public boolean hasPermission(Player player, String setting) {
|
||||
return hasPermission(player, player.getLocation(), setting);
|
||||
}
|
||||
|
||||
public boolean hasPermission(Player player, org.bukkit.Location location, String setting) {
|
||||
if (hasIsland(player)) {
|
||||
Island island = getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(),
|
||||
if (LocationUtil.isLocationAtLocationRadius(location,
|
||||
island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (island.hasRole(IslandRole.Member, player.getUniqueId())) {
|
||||
if (!island.getSetting(IslandRole.Member, setting).getStatus()) {
|
||||
@ -787,7 +791,7 @@ public class IslandManager {
|
||||
Island island = getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(),
|
||||
if (LocationUtil.isLocationAtLocationRadius(location,
|
||||
island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (player.hasPermission("skyblock.bypass." + setting.toLowerCase())
|
||||
|| player.hasPermission("skyblock.bypass.*") || player.hasPermission("skyblock.*")) {
|
||||
|
@ -719,7 +719,7 @@ public class Interact implements Listener {
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName())
|
||||
|| player.getWorld().getName()
|
||||
.equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!islandManager.hasPermission(player, "ArmorStand")) {
|
||||
if (!islandManager.hasPermission(player, "ArmorStandUse")) {
|
||||
event.setCancelled(true);
|
||||
|
||||
skyblock.getMessageManager().sendMessage(player,
|
||||
|
Loading…
Reference in New Issue
Block a user