From 297ef3589373d6fddad136be1276b0637e047589 Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Mon, 27 Dec 2021 19:00:07 +0100 Subject: [PATCH] fix default perm vals defined in config not applying --- Changelog.md | 5 +++++ .../io/github/flemmli97/flan/claim/Claim.java | 1 + .../github/flemmli97/flan/config/Config.java | 18 ++++++++++++++++++ gradle.properties | 2 +- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index a09388d..acfa94d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Flan 1.6.6 +====================== +- Fix blockentity interaction not working +- Fix globalDefaultPerms defined in config not applying to claim on creation + Flan 1.6.5 ====================== - Fix claims below 0 not working diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java index dc8c51b..5bf9d45 100644 --- a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java +++ b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java @@ -99,6 +99,7 @@ public class Claim implements IPermissionContainer { this.homePos = this.getInitCenterPos(); this.setDirty(true); PermissionRegistry.getPerms().stream().filter(perm -> perm.defaultVal).forEach(perm -> this.globalPerm.put(perm, true)); + ConfigHandler.config.getGloballyDefinedVals(world).forEach(e -> this.globalPerm.put(e.getKey(), e.getValue().getValue())); if (setDefaultGroups) ConfigHandler.config.defaultGroups.forEach((s, m) -> m.forEach((perm, bool) -> this.editPerms(null, s, perm, bool ? 1 : 0, true))); } diff --git a/common/src/main/java/io/github/flemmli97/flan/config/Config.java b/common/src/main/java/io/github/flemmli97/flan/config/Config.java index e5f45a0..0d1bc8a 100644 --- a/common/src/main/java/io/github/flemmli97/flan/config/Config.java +++ b/common/src/main/java/io/github/flemmli97/flan/config/Config.java @@ -22,6 +22,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; +import java.util.stream.Stream; public class Config { @@ -334,6 +335,23 @@ public class Config { return permMap == null ? GlobalType.NONE : permMap.getOrDefault(perm, GlobalType.NONE); } + public Stream> getGloballyDefinedVals(ServerLevel world) { + Map allMap = ConfigHandler.config.globalDefaultPerms.get("*"); + if (allMap != null) { + world.getServer().getAllLevels().forEach(w -> { + Map wMap = ConfigHandler.config.globalDefaultPerms.getOrDefault(w.dimension().location().toString(), new HashMap<>()); + allMap.forEach((key, value) -> { + if (!wMap.containsKey(key)) + wMap.put(key, value); + }); + ConfigHandler.config.globalDefaultPerms.put(w.dimension().location().toString(), wMap); + }); + ConfigHandler.config.globalDefaultPerms.remove("*"); + } + Map permMap = ConfigHandler.config.globalDefaultPerms.get(world.dimension().location().toString()); + return permMap == null ? Stream.empty() : permMap.entrySet().stream().filter(e -> e.getValue().canModify()); + } + public static Map createHashMap(Consumer> cons) { Map map = new HashMap<>(); cons.accept(map); diff --git a/gradle.properties b/gradle.properties index d6d0046..8ad9b13 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ forge_version=38.0.8 loader_version=0.12.8 # Mod Properties -mod_version=1.6.5 +mod_version=1.6.6 maven_group=io.github.flemmli97 archives_base_name=flan