Check towny ranks

This commit is contained in:
Jesse Boyd 2018-08-28 03:31:40 +10:00
parent 765be78aff
commit 3e15d63448
No known key found for this signature in database
GPG Key ID: 59F1DE6293AF6E1F

View File

@ -4,10 +4,7 @@ import com.boydti.fawe.bukkit.FaweBukkit;
import com.boydti.fawe.object.FawePlayer; import com.boydti.fawe.object.FawePlayer;
import com.palmergames.bukkit.towny.Towny; import com.palmergames.bukkit.towny.Towny;
import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; import com.palmergames.bukkit.towny.exceptions.NotRegisteredException;
import com.palmergames.bukkit.towny.object.PlayerCache; import com.palmergames.bukkit.towny.object.*;
import com.palmergames.bukkit.towny.object.TownBlock;
import com.palmergames.bukkit.towny.object.TownyUniverse;
import com.palmergames.bukkit.towny.object.WorldCoord;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -28,18 +25,30 @@ public class TownyFeature extends BukkitMaskManager implements Listener {
if (block == null) { if (block == null) {
return false; return false;
} }
Resident resident;
try { try {
if (block.getResident().getName().equals(player.getName())) { resident = TownyUniverse.getDataSource().getResident(player.getName());
try {
if (block.getResident().equals(resident)) {
return true;
}
} catch (NotRegisteredException ignore) {}
Town town = block.getTown();
if (town.isMayor(resident)) {
return true; return true;
} }
} catch (final Exception ignore) {} if (!town.hasResident(resident)) return false;
if (player.hasPermission("fawe.towny.*")) { if (player.hasPermission("fawe.towny.*")) {
return true;
} else try {
if (block.getTown().isMayor(TownyUniverse.getDataSource().getResident(player.getName()))) {
return true; return true;
} }
} catch (NotRegisteredException ignore) {} for (String rank : resident.getTownRanks()) {
if (player.hasPermission("fawe.towny." + rank)) {
return true;
}
}
} catch (NotRegisteredException e) {
return false;
}
return false; return false;
} }
@ -57,23 +66,7 @@ public class TownyFeature extends BukkitMaskManager implements Listener {
if (myplot == null) { if (myplot == null) {
return null; return null;
} else { } else {
boolean isMember = false; boolean isMember = isAllowed(player, myplot);
try {
if (myplot.getResident().getName().equals(player.getName())) {
isMember = true;
} else if (fp.hasPermission("fawe.towny.member")) {
isMember = myplot.getTown().hasResident(player.getName());
}
} catch (final Exception e) {
}
if (!isMember) {
if (player.hasPermission("fawe.towny.*")) {
isMember = true;
} else if (myplot.getTown().isMayor(TownyUniverse.getDataSource().getResident(player.getName()))) {
isMember = true;
}
}
if (isMember) { if (isMember) {
final Chunk chunk = location.getChunk(); final Chunk chunk = location.getChunk();
final Location pos1 = new Location(location.getWorld(), chunk.getX() * 16, 0, chunk.getZ() * 16); final Location pos1 = new Location(location.getWorld(), chunk.getX() * 16, 0, chunk.getZ() * 16);