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 05:01:19 +08:00
parent c7cf8028a1
commit d21c133654
2 changed files with 6 additions and 11 deletions

View File

@ -1,7 +1,6 @@
package cc.carm.plugin.commanditem.item; 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.manager.ConfigManager; import cc.carm.plugin.commanditem.manager.ConfigManager;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@ -22,20 +21,17 @@ public class ItemSettings {
@Nullable ItemStackConfig item; @Nullable ItemStackConfig item;
@NotNull ItemRestrictions restrictions; @NotNull ItemRestrictions restrictions;
@Nullable ItemActionGroup defaultActions;
@NotNull Map<String, String> permissions; @NotNull Map<String, String> permissions;
@NotNull Map<String, ItemActionGroup> actions; @NotNull Map<String, ItemActionGroup> actions;
public ItemSettings(@NotNull String identifier, @Nullable String name, public ItemSettings(@NotNull String identifier, @Nullable String name,
@Nullable ItemStackConfig item, @NotNull ItemRestrictions restrictions, @Nullable ItemStackConfig item, @NotNull ItemRestrictions restrictions,
@Nullable ItemActionGroup defaultActions,
@NotNull Map<String, String> permissions, @NotNull Map<String, String> permissions,
@NotNull Map<String, ItemActionGroup> actions) { @NotNull Map<String, ItemActionGroup> actions) {
this.identifier = identifier; this.identifier = identifier;
this.name = name; this.name = name;
this.item = item; this.item = item;
this.restrictions = restrictions; this.restrictions = restrictions;
this.defaultActions = defaultActions;
this.permissions = permissions; this.permissions = permissions;
this.actions = actions; this.actions = actions;
} }
@ -81,15 +77,15 @@ public class ItemSettings {
} }
public @Nullable ItemActionGroup getDefaultActions() { public @Nullable ItemActionGroup getDefaultActions() {
return defaultActions; return getActions().get("default");
} }
public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) { public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) {
String actionGroup = getPermissions().entrySet().stream() @NotNull String actionGroup = getPermissions().entrySet().stream()
.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("default");
Main.debugging(" Player " + player.getName() + " will execute " + actionGroup);
return getActions().getOrDefault(actionGroup, getDefaultActions()); return getActions().get(actionGroup);
} }
public @NotNull ItemStack applyItem(ItemStack originalItem) { public @NotNull ItemStack applyItem(ItemStack originalItem) {
@ -107,7 +103,6 @@ public class ItemSettings {
identifier, config.getString("name"), identifier, config.getString("name"),
ItemStackConfig.read(config.getConfigurationSection("item")), ItemStackConfig.read(config.getConfigurationSection("item")),
ItemRestrictions.read(config.getConfigurationSection("restrictions")), ItemRestrictions.read(config.getConfigurationSection("restrictions")),
ItemActionGroup.read(config.getStringList("actions.default")),
ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)), ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)),
ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read) ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read)
); );

View File

@ -89,7 +89,7 @@ public class ConfigManager {
if (section == null) return new LinkedHashMap<>(); if (section == null) return new LinkedHashMap<>();
Map<String, V> result = new LinkedHashMap<>(); Map<String, V> result = new LinkedHashMap<>();
for (String key : section.getKeys(false)) { for (String key : section.getKeys(false)) {
if (!section.isConfigurationSection(key)) continue; if (!section.isList(key)) continue;
V finalValue = valueCast.apply(section.getStringList(key)); V finalValue = valueCast.apply(section.getStringList(key));
if (finalValue != null) result.put(key, finalValue); if (finalValue != null) result.put(key, finalValue);
} }