From 0c3f006611a70befc0fe477fc454eae4c4bf1b5f Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Wed, 12 May 2021 20:06:26 +0200 Subject: [PATCH] error logging in case permission is missing during reading --- .../flan/api/PermissionRegistry.java | 2 +- .../java/com/flemmli97/flan/claim/Claim.java | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java b/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java index 4a28888..9244529 100644 --- a/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java +++ b/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java @@ -100,7 +100,7 @@ public class PermissionRegistry { public static ClaimPermission get(String id) { if (!permissions.containsKey(id)) - throw new NullPointerException("No such permission registered"); + throw new NullPointerException("No such permission "+ id + " registered"); return permissions.get(id); } diff --git a/src/main/java/com/flemmli97/flan/claim/Claim.java b/src/main/java/com/flemmli97/flan/claim/Claim.java index d8c720f..1d41a0b 100644 --- a/src/main/java/com/flemmli97/flan/claim/Claim.java +++ b/src/main/java/com/flemmli97/flan/claim/Claim.java @@ -1,5 +1,6 @@ package com.flemmli97.flan.claim; +import com.flemmli97.flan.Flan; import com.flemmli97.flan.api.ClaimPermission; import com.flemmli97.flan.api.ClaimPermissionEvent; import com.flemmli97.flan.api.PermissionRegistry; @@ -475,9 +476,21 @@ public class Claim implements IPermissionContainer { this.parent = UUID.fromString(obj.get("Parent").getAsString()); if (obj.has("GlobalPerms")) { if (this.parent == null) { - obj.getAsJsonArray("GlobalPerms").forEach(perm -> this.globalPerm.put(PermissionRegistry.get(perm.getAsString()), true)); + obj.getAsJsonArray("GlobalPerms").forEach(perm -> { + try { + this.globalPerm.put(PermissionRegistry.get(perm.getAsString()), true); + } catch (NullPointerException e) { + Flan.logger.error("Error reading permission {} from json for claim {} belonging to {}. No such permission exist", perm.getAsString(), this.claimID, this.owner); + } + }); } else { - obj.getAsJsonObject("GlobalPerms").entrySet().forEach(entry -> this.globalPerm.put(PermissionRegistry.get(entry.getKey()), entry.getValue().getAsBoolean())); + obj.getAsJsonObject("GlobalPerms").entrySet().forEach(entry -> { + try { + this.globalPerm.put(PermissionRegistry.get(entry.getKey()), entry.getValue().getAsBoolean()); + } catch (NullPointerException e) { + Flan.logger.error("Error reading permission {} from json for claim {} belonging to {}. No such permission exist", entry.getKey(), this.claimID, this.owner); + } + }); } } if (obj.has("PermGroup")) { @@ -485,7 +498,13 @@ public class Claim implements IPermissionContainer { perms.entrySet().forEach(key -> { Map map = new HashMap<>(); JsonObject group = key.getValue().getAsJsonObject(); - group.entrySet().forEach(gkey -> map.put(PermissionRegistry.get(gkey.getKey()), gkey.getValue().getAsBoolean())); + group.entrySet().forEach(gkey -> { + try { + map.put(PermissionRegistry.get(gkey.getKey()), gkey.getValue().getAsBoolean()); + } catch (NullPointerException e) { + Flan.logger.error("Error reading permission {} from json for claim {} belonging to {}. No such permission exist", gkey.getKey(), this.claimID, this.owner); + } + }); this.permissions.put(key.getKey(), map); }); }