Checking if player can build in location at interaction
This commit is contained in:
parent
62d37c061a
commit
4608f26975
Binary file not shown.
@ -179,7 +179,6 @@ public class FactionsPlayerListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
|
||||
SavageFactions.plugin.log("Trying to match a material with access permission");
|
||||
PermissableAction action = null;
|
||||
if (SavageFactions.plugin.mc113) {
|
||||
switch (block.getType()) {
|
||||
@ -307,7 +306,6 @@ public class FactionsPlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
SavageFactions.plugin.log("Material matched as " + action);
|
||||
// We only care about some material types.
|
||||
/// Who was the idiot?
|
||||
if (otherFaction.hasPlayersOnline()) {
|
||||
@ -861,9 +859,7 @@ public class FactionsPlayerListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
public void onPlayerInteract(PlayerInteractEvent event) {
|
||||
// only need to check right-clicks and physical as of MC 1.4+; good performance boost
|
||||
SavageFactions.plugin.log("Checking if the action aren't left clicks");
|
||||
if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) || event.getAction().equals(Action.LEFT_CLICK_AIR)) return;
|
||||
SavageFactions.plugin.log("Attempting to allow food and potis");
|
||||
if (event.getPlayer().getItemInHand() != null) {
|
||||
Material handItem = event.getPlayer().getItemInHand().getType();
|
||||
if (handItem.isEdible()
|
||||
@ -877,21 +873,14 @@ public class FactionsPlayerListener implements Listener {
|
||||
Block block = event.getClickedBlock();
|
||||
Player player = event.getPlayer();
|
||||
|
||||
SavageFactions.plugin.log("Checking for material bypass in config");
|
||||
// Check if the material is bypassing protection
|
||||
if (Conf.territoryBypasssProtectedMaterials.contains(block.getType())) return;
|
||||
|
||||
if (block == null) return; // clicked in air, apparently
|
||||
|
||||
SavageFactions.plugin.log("Checking if I can use the block");
|
||||
if (!canPlayerUseBlock(player, block, false)) {
|
||||
event.setCancelled(true);
|
||||
event.setUseInteractedBlock(Event.Result.DENY);
|
||||
return;
|
||||
}
|
||||
|
||||
SavageFactions.plugin.log("Checking if I can use the item");
|
||||
if (!playerCanUseItemHere(player, block.getLocation(), event.getMaterial(), false)) {
|
||||
if (!FactionsBlockListener.playerCanBuildDestroyBlock(player, block.getLocation(), "build", false)
|
||||
|| !canPlayerUseBlock(player, block, false)
|
||||
|| !playerCanUseItemHere(player, block.getLocation(), event.getMaterial(), false)) {
|
||||
event.setCancelled(true);
|
||||
event.setUseInteractedBlock(Event.Result.DENY);
|
||||
return;
|
||||
@ -1029,15 +1018,11 @@ public class FactionsPlayerListener implements Listener {
|
||||
/// <param name="access">The current's faction access permission for the action</param>
|
||||
private static boolean CheckPlayerAccess(Player player, FPlayer me, FLocation loc, Faction myFaction, Access access, PermissableAction action, boolean pain) {
|
||||
boolean doPain = pain && Conf.handleExploitInteractionSpam;
|
||||
SavageFactions.plugin.log("Checking player access, with pain: " + doPain);
|
||||
if (access != null && access != Access.UNDEFINED) {
|
||||
// TODO: Update this once new access values are added other than just allow / deny.
|
||||
boolean landOwned = (myFaction.doesLocationHaveOwnersSet(loc) && !myFaction.getOwnerList(loc).isEmpty());
|
||||
SavageFactions.plugin.log("Land is owned: " + landOwned);
|
||||
SavageFactions.plugin.log("Trying to check if the user is in the owner list or is leader of the faction");
|
||||
if ((landOwned && myFaction.getOwnerListString(loc).contains(player.getName())) || (me.getRole() == Role.LEADER && me.getFactionId().equals(myFaction.getId()))) return true;
|
||||
else if (landOwned && !myFaction.getOwnerListString(loc).contains(player.getName())) {
|
||||
SavageFactions.plugin.log("Land is owned and player is not on the owner list");
|
||||
me.msg("<b>You can't do that in this territory, it is owned by: " + myFaction.getOwnerListString(loc));
|
||||
if (doPain) {
|
||||
player.damage(Conf.actionDeniedPainAmount);
|
||||
@ -1049,7 +1034,6 @@ public class FactionsPlayerListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
SavageFactions.plugin.log("Access is " + access + " denying");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user