mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-06-25 02:04:44 +02:00
Slightly change how flag permissions are handled (#3201)
This commit is contained in:
@ -92,6 +92,16 @@ public class BukkitPermissionHandler implements PermissionHandler {
|
||||
return player != null && player.hasPermission(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasKeyedPermission(
|
||||
final @Nullable String world,
|
||||
final @NonNull String stub,
|
||||
final @NonNull String key
|
||||
) {
|
||||
final Player player = this.playerReference.get();
|
||||
return player != null && (player.hasPermission(stub + "." + key) || player.hasPermission(stub + ".*"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -117,6 +117,26 @@ public class VaultPermissionHandler implements PermissionHandler {
|
||||
return permissions.playerHas(world, offlinePlayer, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasKeyedPermission(
|
||||
final @Nullable String world,
|
||||
final @NonNull String stub,
|
||||
final @NonNull String key
|
||||
) {
|
||||
if (permissions == null) {
|
||||
return false;
|
||||
}
|
||||
if (world == null && offlinePlayer instanceof BukkitPlayer) {
|
||||
return permissions.playerHas(
|
||||
((BukkitPlayer) offlinePlayer).getPlatformPlayer(),
|
||||
stub + ".*"
|
||||
) || permissions.playerHas(((BukkitPlayer) offlinePlayer).getPlatformPlayer(), stub + "." + key);
|
||||
}
|
||||
return permissions.playerHas(world, offlinePlayer, stub + ".*") || permissions.playerHas(world, offlinePlayer,
|
||||
stub + "." + key
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -82,4 +82,14 @@ public class BukkitOfflinePlayer implements OfflinePlotPlayer {
|
||||
return this.permissionProfile.hasPermission(world, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasKeyedPermission(
|
||||
final @Nullable String world,
|
||||
final @NonNull String stub,
|
||||
final @NonNull String key
|
||||
) {
|
||||
return this.permissionProfile.hasPermission(world, stub + "." + key) || this.permissionProfile.hasPermission(world,
|
||||
stub + ".*");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -319,45 +319,78 @@ permissions:
|
||||
plots.flag.remove: true
|
||||
plots.flag.list: true
|
||||
plots.flag.info: true
|
||||
plots.set.flag.titles: true
|
||||
plots.set.flag.titles.*: true
|
||||
plots.set.flag.greeting.*: true
|
||||
plots.set.flag.farewell.*: true
|
||||
plots.set.flag.description: true
|
||||
plots.set.flag.greeting: true
|
||||
plots.set.flag.farewell: true
|
||||
plots.set.flag.notify-enter: true
|
||||
plots.set.flag.notify-enter.*: true
|
||||
plots.set.flag.notify-leave: true
|
||||
plots.set.flag.notify-leave.*: true
|
||||
plots.set.flag.feed: true
|
||||
plots.set.flag.feed.*: true
|
||||
plots.set.flag.heal: true
|
||||
plots.set.flag.heal.*: true
|
||||
plots.set.flag.invincible: true
|
||||
plots.set.flag.invincible.*: true
|
||||
plots.set.flag.instabreak: true
|
||||
plots.set.flag.instabreak.*: true
|
||||
plots.set.flag.fly: true
|
||||
plots.set.flag.fly.*: true
|
||||
plots.set.flag.gamemode: true
|
||||
plots.set.flag.gamemode.creative: true
|
||||
plots.set.flag.gamemode.survival: true
|
||||
plots.set.flag.gamemode.adventure: true
|
||||
plots.set.flag.time.*: true
|
||||
plots.set.flag.time: true
|
||||
plots.set.flag.weather: true
|
||||
plots.set.flag.weather.*: true
|
||||
plots.set.flag.music: true
|
||||
plots.set.flag.music.*: true
|
||||
plots.set.flag.disable-physics: true
|
||||
plots.set.flag.disable-physics.*: true
|
||||
plots.set.flag.pve: true
|
||||
plots.set.flag.pve.*: true
|
||||
plots.set.flag.pvp: true
|
||||
plots.set.flag.pvp.*: true
|
||||
plots.set.flag.explosion: true
|
||||
plots.set.flag.explosion.*: true
|
||||
plots.set.flag.hostile-interact: true
|
||||
plots.set.flag.hostile-interact.*: true
|
||||
plots.set.flag.hostile-attack: true
|
||||
plots.set.flag.hostile-attack.*: true
|
||||
plots.set.flag.player-interact: true
|
||||
plots.set.flag.player-interact.*: true
|
||||
plots.set.flag.animal-interact: true
|
||||
plots.set.flag.animal-interact.*: true
|
||||
plots.set.flag.animal-attack: true
|
||||
plots.set.flag.animal-attack.*: true
|
||||
plots.set.flag.tamed-interact: true
|
||||
plots.set.flag.tamed-interact.*: true
|
||||
plots.set.flag.tamed-attack: true
|
||||
plots.set.flag.tamed-attack.*: true
|
||||
plots.set.flag.misc-interact: true
|
||||
plots.set.flag.misc-interact.*: true
|
||||
plots.set.flag.hanging-place: true
|
||||
plots.set.flag.hanging-place.*: true
|
||||
plots.set.flag.hanging-break: true
|
||||
plots.set.flag.hanging-break.*: true
|
||||
plots.set.flag.vehicle-use: true
|
||||
plots.set.flag.vehicle-use.*: true
|
||||
plots.set.flag.vehicle-place: true
|
||||
plots.set.flag.vehicle-place.*: true
|
||||
plots.set.flag.vehicle-break: true
|
||||
plots.set.flag.vehicle-break.*: true
|
||||
plots.set.flag.place: true
|
||||
plots.set.flag.place.*: true
|
||||
plots.set.flag.break: true
|
||||
plots.set.flag.break.*: true
|
||||
plots.set.flag.use: true
|
||||
plots.set.flag.use.*: true
|
||||
plots.set.flag.forcefield: true
|
||||
plots.set.flag.forcefield.*: true
|
||||
plots.set.flag.price.*: true
|
||||
plots.set.flag.price: true
|
||||
plots.set.flag.no-worldedit: true
|
||||
plots.set.flag.no-worldedit.*: true
|
||||
plots.permpack.basicinbox:
|
||||
default: false
|
||||
|
Reference in New Issue
Block a user