From 69b3c96e09a30f1e29d631941cdb199d43212b5c Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 23 Nov 2016 22:17:49 +0000 Subject: [PATCH] Fix Sponge subject data permission overrides --- .../sponge/service/LuckPermsSubjectData.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sponge/src/main/java/me/lucko/luckperms/sponge/service/LuckPermsSubjectData.java b/sponge/src/main/java/me/lucko/luckperms/sponge/service/LuckPermsSubjectData.java index b08330d04..04243baef 100644 --- a/sponge/src/main/java/me/lucko/luckperms/sponge/service/LuckPermsSubjectData.java +++ b/sponge/src/main/java/me/lucko/luckperms/sponge/service/LuckPermsSubjectData.java @@ -133,11 +133,22 @@ public class LuckPermsSubjectData implements SubjectData { builder.withExtraContext(ct.getKey(), ct.getValue()); } + Node node = builder.build(); + + // Workaround: unset the inverse, to allow false -> true, true -> false overrides. try { if (enduring) { - holder.setPermission(builder.build()); + holder.unsetPermission(node); + }else { + holder.unsetTransientPermission(node); + } + } catch (ObjectLacksException ignored) {} + + try { + if (enduring) { + holder.setPermission(node); } else { - holder.setTransientPermission(builder.build()); + holder.setTransientPermission(node); } } catch (ObjectAlreadyHasException ignored) {}