Probably fixes #1953

This commit is contained in:
Jesse Boyd 2018-05-18 14:48:17 +10:00
parent 550df7f232
commit 40635255e3
No known key found for this signature in database
GPG Key ID: 59F1DE6293AF6E1F
2 changed files with 22 additions and 9 deletions

View File

@ -15,6 +15,7 @@ import org.bukkit.event.EventException;
import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.permissions.PermissionAttachmentInfo;
@ -122,14 +123,23 @@ public class BukkitPlayer extends PlotPlayer {
} }
int max = 0; int max = 0;
String stubPlus = stub + "."; String stubPlus = stub + ".";
for (PermissionAttachmentInfo attach : player.getEffectivePermissions()) { Set<PermissionAttachmentInfo> effective = player.getEffectivePermissions();
String perm = attach.getPermission(); if (!effective.isEmpty()) {
if (perm.startsWith(stubPlus)) { for (PermissionAttachmentInfo attach : effective) {
String end = perm.substring(stubPlus.length()); String perm = attach.getPermission();
if (MathMan.isInteger(end)) { if (perm.startsWith(stubPlus)) {
int val = Integer.parseInt(end); String end = perm.substring(stubPlus.length());
if (val > range) return val; if (MathMan.isInteger(end)) {
if (val > max) max = val; int val = Integer.parseInt(end);
if (val > range) return val;
if (val > max) max = val;
}
}
}
} else {
for (int i = range; i > 0; i--) {
if (hasPermission(stub + "." + i)) {
return i;
} }
} }
} }

View File

@ -1,7 +1,9 @@
package com.intellectualcrafters.plot.commands; package com.intellectualcrafters.plot.commands;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.database.DBFunc; import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.Flag; import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager; import com.intellectualcrafters.plot.flag.FlagManager;
@ -37,7 +39,8 @@ public class FlagCmd extends SubCommand {
try { try {
int numeric = Integer.parseInt(value); int numeric = Integer.parseInt(value);
perm.substring(0, perm.length() - value.length() - 1); perm.substring(0, perm.length() - value.length() - 1);
return player.hasPermissionRange(perm, numeric) >= numeric; int checkRange = PS.get().getPlatform().equalsIgnoreCase("bukkit") ? numeric : Settings.Limit.MAX_PLOTS;
return player.hasPermissionRange(perm, checkRange) >= numeric;
} catch (NumberFormatException ignore) {} } catch (NumberFormatException ignore) {}
} }