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();