Plot deny / kick bypass

Fixes #777
This commit is contained in:
Jesse Boyd 2015-12-17 17:51:12 +11:00
parent c32cfc62fa
commit ce387333d2
3 changed files with 20 additions and 7 deletions

View File

@ -88,16 +88,26 @@ public class Deny extends SubCommand {
EventUtil.manager.callDenied(plr, plot, uuid, true); EventUtil.manager.callDenied(plr, plot, uuid, true);
MainUtil.sendMessage(plr, C.DENIED_ADDED); MainUtil.sendMessage(plr, C.DENIED_ADDED);
if (!uuid.equals(DBFunc.everyone)) { if (!uuid.equals(DBFunc.everyone)) {
handleKick(uuid, plot); handleKick(UUIDHandler.getPlayer(uuid), plot);
} else {
for (PlotPlayer pp : plot.getPlayersInPlot()) {
handleKick(pp, plot);
}
} }
return true; return true;
} }
private void handleKick(final UUID uuid, final Plot plot) { private void handleKick(final PlotPlayer pp, final Plot plot) {
final PlotPlayer pp = UUIDHandler.getPlayer(uuid); if (pp == null) {
if ((pp != null) && plot.equals(MainUtil.getPlotAbs(pp.getLocation()))) { return;
pp.teleport(BlockManager.manager.getSpawn(pp.getLocation().getWorld()));
MainUtil.sendMessage(pp, C.YOU_GOT_DENIED);
} }
if (!plot.equals(pp.getCurrentPlot())) {
return;
}
if (pp.hasPermission("plots.admin.command.deny")) {
return;
}
pp.teleport(BlockManager.manager.getSpawn(pp.getLocation().getWorld()));
MainUtil.sendMessage(pp, C.YOU_GOT_DENIED);
} }
} }

View File

@ -35,7 +35,6 @@ public class Kick extends SubCommand {
@Override @Override
public boolean onCommand(final PlotPlayer plr, final String[] args) { public boolean onCommand(final PlotPlayer plr, final String[] args) {
final Location loc = plr.getLocation(); final Location loc = plr.getLocation();
final Plot plot = MainUtil.getPlotAbs(loc); final Plot plot = MainUtil.getPlotAbs(loc);
if (plot == null) { if (plot == null) {
@ -59,6 +58,10 @@ public class Kick extends SubCommand {
MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[0]); MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[0]);
return false; return false;
} }
if (player.hasPermission("plots.admin.command.kick")) {
C.CANNOT_KICK_PLAYER.send(plr, player.getName());
return false;
}
player.teleport(BlockManager.manager.getSpawn(loc.getWorld())); player.teleport(BlockManager.manager.getSpawn(loc.getWorld()));
return true; return true;
} }

Binary file not shown.