Fix deny-exit flag causing plot kick to break

This commit is contained in:
dordsor21 2019-01-14 17:31:22 +00:00
parent d81d3c72e4
commit b2d035cf69
3 changed files with 20 additions and 6 deletions

View File

@ -739,7 +739,8 @@ import java.util.regex.Pattern;
Plot now = area.getPlot(loc); Plot now = area.getPlot(loc);
Plot lastPlot = pp.getMeta(PlotPlayer.META_LAST_PLOT); Plot lastPlot = pp.getMeta(PlotPlayer.META_LAST_PLOT);
if (now == null) { if (now == null) {
if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport) { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !pp
.getMeta("kick", false)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED); MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED);
this.tmpTeleport = false; this.tmpTeleport = false;
if (lastPlot.equals(BukkitUtil.getLocation(from).getPlot())) { if (lastPlot.equals(BukkitUtil.getLocation(from).getPlot())) {
@ -800,7 +801,8 @@ import java.util.regex.Pattern;
Plot now = area.getPlot(loc); Plot now = area.getPlot(loc);
Plot lastPlot = pp.getMeta(PlotPlayer.META_LAST_PLOT); Plot lastPlot = pp.getMeta(PlotPlayer.META_LAST_PLOT);
if (now == null) { if (now == null) {
if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport) { if (lastPlot != null && !plotExit(pp, lastPlot) && this.tmpTeleport && !pp
.getMeta("kick", false)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED); MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED);
this.tmpTeleport = false; this.tmpTeleport = false;
if (lastPlot.equals(BukkitUtil.getLocation(from).getPlot())) { if (lastPlot.equals(BukkitUtil.getLocation(from).getPlot())) {
@ -2272,7 +2274,8 @@ import java.util.regex.Pattern;
event.setCancelled(true); event.setCancelled(true);
} else if (Settings.Done.RESTRICT_BUILDING && plot.getFlags().containsKey(Flags.DONE)) { } else if (Settings.Done.RESTRICT_BUILDING && plot.getFlags().containsKey(Flags.DONE)) {
if (!Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_BUILD_OTHER)) { if (!Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_BUILD_OTHER)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER); MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER);
event.setCancelled(true); event.setCancelled(true);
} }
} }

View File

@ -68,7 +68,7 @@ import java.util.UUID;
MainUtil.sendMessage(player, C.INVALID_PLAYER, args[0]); MainUtil.sendMessage(player, C.INVALID_PLAYER, args[0]);
return false; return false;
} }
if (player2.hasPermission("plots.admin.entry.denied")) { if (Permissions.hasPermission(player2, C.PERMISSION_ADMIN_ENTRY_DENIED)) {
C.CANNOT_KICK_PLAYER.send(player, player2.getName()); C.CANNOT_KICK_PLAYER.send(player, player2.getName());
return false; return false;
} }
@ -81,10 +81,10 @@ import java.util.UUID;
// Kick from server if you can't be teleported to spawn // Kick from server if you can't be teleported to spawn
player2.kick(C.YOU_GOT_KICKED.s()); player2.kick(C.YOU_GOT_KICKED.s());
} else { } else {
player2.teleport(newSpawn); player2.plotkick(newSpawn);
} }
} else { } else {
player2.teleport(spawn); player2.plotkick(spawn);
} }
} }
return true; return true;

View File

@ -353,6 +353,17 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
*/ */
public abstract void teleport(Location location); public abstract void teleport(Location location);
/**
* Kick this player to a location
*
* @param location the target location
*/
public void plotkick(Location location) {
setMeta("kick", true);
teleport(location);
deleteMeta("kick");
}
/** /**
* Set this compass target. * Set this compass target.
* *