fixes #763
This commit is contained in:
Jesse Boyd
2015-11-29 19:21:32 +11:00
parent c2b781da98
commit 9118f111e4
17 changed files with 100 additions and 92 deletions

View File

@ -334,7 +334,7 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
event.setCancelled(true);
return;
}
}
}
final Player player = event.getPlayer();
final BukkitPlayer pp = (BukkitPlayer) BukkitUtil.getPlayer(player);
Plot plot = pp.getCurrentPlot();
@ -1035,27 +1035,26 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onInteract(final PlayerInteractEvent event) {
final Action action = event.getAction();
final Block block = event.getClickedBlock();
if (block == null) {
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
}
final Player player = event.getPlayer();
public void onInteract(final PlayerInteractEvent event) {
final Player player = event.getPlayer();
final PlotPlayer pp = BukkitUtil.getPlayer(player);
if (pp.getPlotWorld() == null) {
return;
}
return;
}
PlayerBlockEventType eventType = null;
BukkitLazyBlock lb;
Location loc;
final Action action = event.getAction();
switch (action) {
case PHYSICAL: {
eventType = PlayerBlockEventType.TRIGGER_PHYSICAL;
Block block = event.getClickedBlock();
lb = new BukkitLazyBlock(block);
loc = BukkitUtil.getLocation(block.getLocation());
break;
}
case RIGHT_CLICK_BLOCK: {
Block block = event.getClickedBlock();
loc = BukkitUtil.getLocation(block.getLocation());
final Material blockType = block.getType();
@ -1137,8 +1136,9 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
} else if (id < 198) {
eventType = PlayerBlockEventType.PLACE_BLOCK;
lb = new BukkitLazyBlock(id, block);
break;
}
break;
}
Material handType = hand.getType();
lb = new BukkitLazyBlock(new PlotBlock((short) handType.getId(), (byte) 0));
switch (handType) {
case MONSTER_EGG:
@ -1181,7 +1181,6 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
case RAW_FISH:
case RAW_CHICKEN: {
eventType = PlayerBlockEventType.EAT;
break;
break;
}
case MINECART:
@ -1205,6 +1204,8 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
}
}
break;
}
case LEFT_CLICK_BLOCK: {
Block block = event.getClickedBlock();
loc = BukkitUtil.getLocation(block.getLocation());
eventType = PlayerBlockEventType.BREAK_BLOCK;

View File

@ -7,7 +7,7 @@ import com.intellectualcrafters.plot.object.PlotBlock;
public class BukkitLazyBlock extends LazyBlock {
private int id = -1;
private int id;
private Block block;
private PlotBlock pb;
@ -30,7 +30,7 @@ public class BukkitLazyBlock extends LazyBlock {
if (pb != null) {
return pb;
}
if (id == -1) {
if (id == 0) {
id = block.getTypeId();
}
byte data;
@ -121,8 +121,10 @@ public class BukkitLazyBlock extends LazyBlock {
case 191:
case 192:
data = 0;
break;
default:
data = block.getData();
break;
}
pb = new PlotBlock((short) id, data);
return pb;
@ -131,7 +133,7 @@ public class BukkitLazyBlock extends LazyBlock {
@Override
public int getId() {
if (id == -1) {
if (id == 0) {
id = block.getTypeId();
}
return id;

View File

@ -14,7 +14,6 @@ import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.EconHandler;
@ -71,26 +70,10 @@ public class BukkitPlayer extends PlotPlayer {
@Override
public boolean hasPermission(final String node) {
if (Settings.PERMISSION_CACHING) {
if (noPerm.contains(node)) {
return false;
}
if (hasPerm.contains(node)) {
return true;
}
}
if (offline && (EconHandler.manager != null)) {
return EconHandler.manager.hasPermission(getName(), node);
}
final boolean value = player.hasPermission(node);
if (Settings.PERMISSION_CACHING) {
if (value) {
hasPerm.add(node);
} else {
noPerm.add(node);
}
}
return value;
return player.hasPermission(node);
}
public Permission getPermission(final String node) {