mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-01 02:46:41 +00:00
feat: Add worldedit.schematic.list.other permission and functionality (#1507)
* Add worldedit.schematic.list.other permission and functionality * Implement StringMan#containsUuid * Javadocs * chore: Add since annotation Co-authored-by: NotMyFault <mc.cache@web.de>
This commit is contained in:
@ -25,6 +25,7 @@ import com.fastasyncworldedit.core.configuration.Settings;
|
||||
import com.fastasyncworldedit.core.function.QuadFunction;
|
||||
import com.fastasyncworldedit.core.util.MainUtil;
|
||||
import com.fastasyncworldedit.core.util.MaskTraverser;
|
||||
import com.fastasyncworldedit.core.util.StringMan;
|
||||
import com.fastasyncworldedit.core.util.TaskManager;
|
||||
import com.fastasyncworldedit.core.util.image.ImageUtil;
|
||||
import com.fastasyncworldedit.core.util.task.DelegateConsumer;
|
||||
@ -1033,7 +1034,27 @@ public class UtilityCommands {
|
||||
if (playerFolder) {
|
||||
if (listMine) {
|
||||
File playerDir = MainUtil.resolveRelative(new File(dir, actor.getUniqueId() + dirFilter));
|
||||
//FAWE start - Schematic list other permission
|
||||
if (!actor.hasPermission("worldedit.schematic.list.other") && StringMan.containsUuid(dirFilter)) {
|
||||
return;
|
||||
}
|
||||
if (playerDir.exists()) {
|
||||
if (!actor.hasPermission("worldedit.schematic.list.other")) {
|
||||
forEachFile = new DelegateConsumer<>(forEachFile) {
|
||||
@Override
|
||||
public void accept(File f) {
|
||||
try {
|
||||
if (f.isDirectory() && !UUID.fromString(f.getName()).equals(actor.getUniqueId())) { // Ignore
|
||||
// directories of other players
|
||||
return;
|
||||
}
|
||||
} catch (IllegalArgumentException ignored) {
|
||||
}
|
||||
super.accept(f);
|
||||
}
|
||||
};
|
||||
}
|
||||
//FAWE end
|
||||
allFiles(playerDir.listFiles(), false, forEachFile);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user