diff --git a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java index 13860544..7ed4dcbc 100644 --- a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java +++ b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java @@ -643,7 +643,11 @@ public abstract class BukkitData implements Data { instance.setBaseValue(attribute == null ? instance.getDefaultValue() : attribute.baseValue()); instance.getModifiers().forEach(instance::removeModifier); if (attribute != null) { - attribute.modifiers().stream().distinct().forEach(mod -> instance.addModifier(adapt(mod, plugin))); + attribute.modifiers().stream() + .filter(mod -> instance.getModifiers().stream().map(AttributeModifier::getName) + .noneMatch(n -> n.equals(mod.name()))) + .distinct() + .forEach(mod -> instance.addModifier(adapt(mod, plugin))); } } diff --git a/common/src/main/java/net/william278/husksync/config/Settings.java b/common/src/main/java/net/william278/husksync/config/Settings.java index f9b316b6..fdecb893 100644 --- a/common/src/main/java/net/william278/husksync/config/Settings.java +++ b/common/src/main/java/net/william278/husksync/config/Settings.java @@ -283,7 +283,9 @@ public class Settings { @Comment({"Which modifiers should not be saved when syncing users. Supports wildcard matching.", "(e.g. ['minecraft:effect.speed', 'minecraft:effect.*'])"}) @Getter(AccessLevel.NONE) - private List ignoredModifiers = new ArrayList<>(List.of("minecraft:effect.*")); + private List ignoredModifiers = new ArrayList<>(List.of( + "minecraft:effect.*", "minecraft:creative_mode_*" + )); private boolean matchesWildcard(@NotNull String pat, @NotNull String value) { if (!pat.contains(":")) { diff --git a/common/src/main/java/net/william278/husksync/data/Identifier.java b/common/src/main/java/net/william278/husksync/data/Identifier.java index e43bd543..bf915f9a 100644 --- a/common/src/main/java/net/william278/husksync/data/Identifier.java +++ b/common/src/main/java/net/william278/husksync/data/Identifier.java @@ -50,6 +50,7 @@ public class Identifier { Dependency.optional("game_mode") ); public static final Identifier ATTRIBUTES = huskSync("attributes", true, + Dependency.optional("inventory"), Dependency.optional("potion_effects") ); public static final Identifier HEALTH = huskSync("health", true,