From 510ec3a467edccd96fdd93fc8e97233f1f451334 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Tue, 11 Oct 2011 12:16:43 +0100 Subject: [PATCH] Fixed removing entries in the new Configuration (via set(x, null)) By: Nathan Adams --- .../main/java/org/bukkit/configuration/MemorySection.java | 6 +++++- .../bukkit/configuration/ConfigurationSectionTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/paper-api/src/main/java/org/bukkit/configuration/MemorySection.java b/paper-api/src/main/java/org/bukkit/configuration/MemorySection.java index b122f4f142..bf2cfb009d 100644 --- a/paper-api/src/main/java/org/bukkit/configuration/MemorySection.java +++ b/paper-api/src/main/java/org/bukkit/configuration/MemorySection.java @@ -186,7 +186,11 @@ public class MemorySection implements ConfigurationSection { String key = split[split.length - 1]; if (section == this) { - map.put(key, prepForStorage(value)); + if (value == null) { + map.remove(key); + } else { + map.put(key, prepForStorage(value)); + } } else { section.set(key, value); } diff --git a/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java b/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java index 144fba3a12..290b7844bb 100644 --- a/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java +++ b/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java @@ -162,7 +162,15 @@ public abstract class ConfigurationSectionTest { ConfigurationSection section = getConfigurationSection(); section.set("exists", "hello world"); + + assertTrue(section.contains("exists")); + assertTrue(section.isSet("exists")); assertEquals("hello world", section.get("exists")); + + section.set("exists", null); + + assertFalse(section.contains("exists")); + assertFalse(section.isSet("exists")); } @Test