From d5de0e86bb34dd9ef794f6e3575ba5c1f5e93a38 Mon Sep 17 00:00:00 2001 From: Christopher Bohn Date: Wed, 5 Nov 2025 01:22:45 -0800 Subject: [PATCH] nag invalid hopper config --- .../main/java/org/popcraft/bolt/BoltPlugin.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bukkit/src/main/java/org/popcraft/bolt/BoltPlugin.java b/bukkit/src/main/java/org/popcraft/bolt/BoltPlugin.java index 81b99fe4..7dd93e68 100644 --- a/bukkit/src/main/java/org/popcraft/bolt/BoltPlugin.java +++ b/bukkit/src/main/java/org/popcraft/bolt/BoltPlugin.java @@ -16,6 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -140,6 +141,7 @@ import org.popcraft.bolt.util.Mode; import org.popcraft.bolt.util.ProtectableConfig; +import java.io.File; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -252,6 +254,7 @@ public void reload() { this.doorsFixPlugins = getConfig().getBoolean("doors.fix-plugins", false); registerAccessTypes(); registerProtectableAccess(); + nagInvalidHopperConfig(); registerAccessSources(); initializeMatchers(); loadDefaultModes(); @@ -381,6 +384,17 @@ private void registerProtectableAccess() { } } + private void nagInvalidHopperConfig() { + if (getConfig().getBoolean("settings.ignore-hopper-nag", false) || !protectableBlocks.containsKey(Material.HOPPER)) { + return; + } + final File paperWorldDefaultsFile = Path.of(".").resolve("config/paper-world-defaults.yml").toFile(); + final YamlConfiguration paperWorldDefaults = YamlConfiguration.loadConfiguration(paperWorldDefaultsFile); + if (paperWorldDefaults.getBoolean("hopper.disable-move-event", false)) { + getLogger().warning(() -> "The server's Paper config has disable-move-event enabled. As a result, Hopper protections will not function properly. To resolve this issue, please either disable this in the Paper config, or remove hoppers from the blocks list in your Bolt config if you do not want hoppers protected."); + } + } + private void registerAccessSources() { final SourceTypeRegistry sourceTypeRegistry = bolt.getSourceTypeRegistry(); sourceTypeRegistry.unregisterAll();