1
mirror of https://github.com/CarmJos/ScriptItems synced 2024-09-19 21:35:50 +00:00

测试权限判定

This commit is contained in:
Carm Jos 2022-03-12 04:58:54 +08:00
parent c0c32fbb23
commit c7cf8028a1

View File

@ -3,15 +3,12 @@ package cc.carm.plugin.commanditem.item;
import cc.carm.plugin.commanditem.CommandItemAPI; import cc.carm.plugin.commanditem.CommandItemAPI;
import cc.carm.plugin.commanditem.Main; import cc.carm.plugin.commanditem.Main;
import cc.carm.plugin.commanditem.manager.ConfigManager; import cc.carm.plugin.commanditem.manager.ConfigManager;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSortedMap;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable;
import java.io.File; import java.io.File;
import java.util.Map; import java.util.Map;
@ -41,9 +38,6 @@ public class ItemSettings {
this.defaultActions = defaultActions; this.defaultActions = defaultActions;
this.permissions = permissions; this.permissions = permissions;
this.actions = actions; this.actions = actions;
permissions.forEach((key, value) -> Main.debugging(" Permission: " + key + " = " + value));
} }
public @NotNull String getIdentifier() { public @NotNull String getIdentifier() {
@ -69,9 +63,8 @@ public class ItemSettings {
return generateItem(1); return generateItem(1);
} }
@Unmodifiable
public @NotNull Map<String, String> getPermissions() { public @NotNull Map<String, String> getPermissions() {
return ImmutableSortedMap.copyOf(permissions); return this.permissions;
} }
@ -83,9 +76,8 @@ public class ItemSettings {
return getRestrictions().check(); return getRestrictions().check();
} }
@Unmodifiable
public @NotNull Map<String, ItemActionGroup> getActions() { public @NotNull Map<String, ItemActionGroup> getActions() {
return ImmutableMap.copyOf(actions); return this.actions;
} }
public @Nullable ItemActionGroup getDefaultActions() { public @Nullable ItemActionGroup getDefaultActions() {
@ -94,9 +86,9 @@ public class ItemSettings {
public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) { public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) {
String actionGroup = getPermissions().entrySet().stream() String actionGroup = getPermissions().entrySet().stream()
.peek(entry -> Main.debugging("Checking permission: " + entry.getValue()))
.filter(entry -> player.hasPermission(entry.getValue())) .filter(entry -> player.hasPermission(entry.getValue()))
.map(Map.Entry::getKey).findFirst().orElse(null); .map(Map.Entry::getKey).findFirst().orElse(null);
Main.debugging(" Player " + player.getName() + " will execute " + actionGroup);
return getActions().getOrDefault(actionGroup, getDefaultActions()); return getActions().getOrDefault(actionGroup, getDefaultActions());
} }