From 6ad33bd1acc5b7e06f6c8ea00c4bc21e6d1d3814 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:27:19 +0200 Subject: [PATCH 01/10] Deprecate UpdateChecker (no longer maintained) and import FoliaLib --- pom.xml | 18 ++++++---- .../me/niko302/autoreplant/AutoReplant.java | 35 +------------------ 2 files changed, 12 insertions(+), 41 deletions(-) diff --git a/pom.xml b/pom.xml index 07b77c2..d450bd8 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,10 @@ com.jeff_media.updatechecker me.niko302.autoreplant.updatechecker + + com.tcoded.folialib + me.niko302.autoreplant.folialib + @@ -69,10 +73,10 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - + - jeff-media-public - https://hub.jeff-media.com/nexus/repository/jeff-media-public/ + tcoded-releases + https://repo.tcoded.com/releases @@ -101,11 +105,11 @@ provided - + - com.jeff_media - SpigotUpdateChecker - 3.0.3 + com.tcoded + FoliaLib + 0.5.1 compile diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index 4628962..8db3e80 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -1,13 +1,10 @@ package me.niko302.autoreplant; -import com.jeff_media.updatechecker.UpdateCheckSource; -import com.jeff_media.updatechecker.UpdateChecker; -import com.jeff_media.updatechecker.UserAgentBuilder; +import com.tcoded.folialib.FoliaLib; import lombok.Getter; import me.niko302.autoreplant.commands.AutoReplantCommand; import me.niko302.autoreplant.config.ConfigManager; import org.bstats.bukkit.Metrics; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; @@ -18,7 +15,6 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; -import org.bukkit.permissions.ServerOperator; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -45,35 +41,6 @@ public void onEnable() { // Load autoreplant state from data.yml loadPlayerStates(); - - new UpdateChecker(this, UpdateCheckSource.SPIGOT, "117106") - .setNotifyRequesters(false) - .setNotifyOpsOnJoin(false) - .setUserAgent(UserAgentBuilder.getDefaultUserAgent()) - .checkEveryXHours(12) - .onSuccess((commandSenders, latestVersion) -> { - String messagePrefix = "&8[&6Auto Replant&8] "; - String currentVersion = getDescription().getVersion(); - - if (currentVersion.equalsIgnoreCase(latestVersion)) { - String updateMessage = color(messagePrefix + "&aYou are using the latest version of AutoReplant!"); - - Bukkit.getConsoleSender().sendMessage(updateMessage); - Bukkit.getOnlinePlayers().stream().filter(ServerOperator::isOp).forEach(player -> player.sendMessage(updateMessage)); - return; - } - - List updateMessages = List.of( - color(messagePrefix + "&cYour version of AutoReplant is outdated!"), - color(String.format(messagePrefix + "&cYou are using %s, latest is %s!", currentVersion, latestVersion)), - color(messagePrefix + "&cDownload latest here:"), - color("&6https://www.spigotmc.org/resources/autoreplant-1-20.117106/") - ); - - Bukkit.getConsoleSender().sendMessage(updateMessages.toArray(new String[]{})); - Bukkit.getOnlinePlayers().stream().filter(ServerOperator::isOp).forEach(player -> player.sendMessage(updateMessages.toArray(new String[]{}))); - }) - .onFail((commandSenders, e) -> {}).checkNow(); } @Override From 549a5bba5bc5a71bb180637d987f9fdb28a8c36e Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:27:32 +0200 Subject: [PATCH 02/10] Call super.onEnable() in AutoReplant onEnable method --- src/main/java/me/niko302/autoreplant/AutoReplant.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index 8db3e80..dbaab5b 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -32,6 +32,8 @@ public class AutoReplant extends JavaPlugin implements Listener { @Override public void onEnable() { + super.onEnable(); + configManager = new ConfigManager(this); getCommand("autoreplant").setExecutor(new AutoReplantCommand(this)); // Registering the command executor From f06237f2acb8fcfdb461c86007db6e60ab622260 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:27:41 +0200 Subject: [PATCH 03/10] Integrate FoliaLib for task scheduling and enhance onDisable method --- src/main/java/me/niko302/autoreplant/AutoReplant.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index dbaab5b..41abfe7 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -30,11 +30,14 @@ public class AutoReplant extends JavaPlugin implements Listener { private ConfigManager configManager; + private FoliaLib foliaLib; + @Override public void onEnable() { super.onEnable(); configManager = new ConfigManager(this); + foliaLib = new FoliaLib(this); getCommand("autoreplant").setExecutor(new AutoReplantCommand(this)); // Registering the command executor getServer().getPluginManager().registerEvents(this, this); @@ -47,7 +50,8 @@ public void onEnable() { @Override public void onDisable() { - + super.onDisable(); + foliaLib.getScheduler().cancelAllTasks(); } private String color(String message) { @@ -86,7 +90,7 @@ public void onBlockBreak(BlockBreakEvent event) { // Capture the direction of the cocoa block before breaking it // Schedule the replanting task - getServer().getScheduler().runTaskLater(this, () -> { + foliaLib.getScheduler().runAtLocationLater(block.getLocation(), () -> { block.setType(blockType); ageable.setAge(0); From 6b86a780211738fb3a712987faef226d56d38bbf Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:27:44 +0200 Subject: [PATCH 04/10] Add folia-supported flag to plugin.yml --- src/main/resources/plugin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 77b8829..e89ae33 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,6 +4,7 @@ description: Automatically replants crops when harvested with specific tools. main: me.niko302.autoreplant.AutoReplant api-version: '1.20' authors: [ Niko302, BitByLogic ] +folia-supported: true commands: autoreplant: From 851fcc464c96f26565ce46a9794a61b852f8e93f Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:27:50 +0200 Subject: [PATCH 05/10] Update maven-shade-plugin version to 3.6.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d450bd8..59334ad 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.2 true From 3d2a4789dc025784da6f3b0b4e90ef9b8485676b Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:33:05 +0200 Subject: [PATCH 06/10] Remove Lombok annotations and update class constructors to use Plugin type --- pom.xml | 8 -------- src/main/java/me/niko302/autoreplant/AutoReplant.java | 6 ++++-- .../autoreplant/commands/AutoReplantCommand.java | 3 --- .../me/niko302/autoreplant/config/ConfigManager.java | 10 +++------- 4 files changed, 7 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 59334ad..dcb9a34 100644 --- a/pom.xml +++ b/pom.xml @@ -97,14 +97,6 @@ compile - - - org.projectlombok - lombok - 1.18.32 - provided - - com.tcoded diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index 41abfe7..4a2de2d 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -1,7 +1,6 @@ package me.niko302.autoreplant; import com.tcoded.folialib.FoliaLib; -import lombok.Getter; import me.niko302.autoreplant.commands.AutoReplantCommand; import me.niko302.autoreplant.config.ConfigManager; import org.bstats.bukkit.Metrics; @@ -23,7 +22,6 @@ import java.util.List; import java.util.UUID; -@Getter public class AutoReplant extends JavaPlugin implements Listener { private final List enabledPlayers = new ArrayList<>(); @@ -130,4 +128,8 @@ private void loadPlayerStates() { } } + public List getEnabledPlayers() { + return enabledPlayers; + } + } \ No newline at end of file diff --git a/src/main/java/me/niko302/autoreplant/commands/AutoReplantCommand.java b/src/main/java/me/niko302/autoreplant/commands/AutoReplantCommand.java index 44d90ec..f75e769 100644 --- a/src/main/java/me/niko302/autoreplant/commands/AutoReplantCommand.java +++ b/src/main/java/me/niko302/autoreplant/commands/AutoReplantCommand.java @@ -1,7 +1,5 @@ package me.niko302.autoreplant.commands; -import lombok.AccessLevel; -import lombok.Getter; import me.niko302.autoreplant.AutoReplant; import net.md_5.bungee.api.ChatColor; import org.bukkit.command.Command; @@ -16,7 +14,6 @@ public class AutoReplantCommand implements CommandExecutor { private final AutoReplant plugin; - @Getter(AccessLevel.NONE) private final Pattern hexColorExtractor = Pattern.compile("#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"); public AutoReplantCommand(AutoReplant plugin) { diff --git a/src/main/java/me/niko302/autoreplant/config/ConfigManager.java b/src/main/java/me/niko302/autoreplant/config/ConfigManager.java index e8de0c5..c18db6c 100644 --- a/src/main/java/me/niko302/autoreplant/config/ConfigManager.java +++ b/src/main/java/me/niko302/autoreplant/config/ConfigManager.java @@ -1,28 +1,24 @@ package me.niko302.autoreplant.config; -import lombok.AccessLevel; -import lombok.Getter; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import java.util.List; import java.util.stream.Collectors; -@Getter public class ConfigManager { - @Getter(AccessLevel.NONE) - private final JavaPlugin plugin; + private final Plugin plugin; - @Getter(AccessLevel.NONE) private FileConfiguration config; private boolean useFortune; // Variable to store the use-fortune setting private boolean autoreplantEnabled; // Variable to store the autoreplant status private boolean ignoreToolRestrictions; // Variable to store the ignore-tool-restrictions status - public ConfigManager(JavaPlugin plugin) { + public ConfigManager(Plugin plugin) { this.plugin = plugin; loadConfig(); } From 92c574258af49329d11d9c9cfb25e141be5c8969 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:33:28 +0200 Subject: [PATCH 07/10] Bump version to 2.5 in pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dcb9a34..9865d88 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.niko302 AutoReplant - 2.4 + 2.5 jar AutoReplant From c609e16ddfb326e09723ebb8dc88d85d3249819a Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:39:37 +0200 Subject: [PATCH 08/10] Enhance plugin initialization with error handling and update dependencies in pom.xml --- pom.xml | 8 +++--- .../me/niko302/autoreplant/AutoReplant.java | 27 ++++++++++++++----- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 9865d88..ce1bcdb 100644 --- a/pom.xml +++ b/pom.xml @@ -83,9 +83,9 @@ - org.spigotmc - spigot-api - 1.20.6-R0.1-SNAPSHOT + io.papermc.paper + paper-api + 1.21.11-R0.1-SNAPSHOT provided @@ -101,7 +101,7 @@ com.tcoded FoliaLib - 0.5.1 + 0.7.13 compile diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index 4a2de2d..46069e1 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -34,16 +34,29 @@ public class AutoReplant extends JavaPlugin implements Listener { public void onEnable() { super.onEnable(); - configManager = new ConfigManager(this); - foliaLib = new FoliaLib(this); + try { + configManager = new ConfigManager(this); + foliaLib = new FoliaLib(this); + + var command = getCommand("autoreplant"); + if (command == null) { + getLogger().severe("Failed to load 'autoreplant' command from plugin.yml!"); + setEnabled(false); + return; + } - getCommand("autoreplant").setExecutor(new AutoReplantCommand(this)); // Registering the command executor - getServer().getPluginManager().registerEvents(this, this); + command.setExecutor(new AutoReplantCommand(this)); // Registering the command executor + getServer().getPluginManager().registerEvents(this, this); - new Metrics(this, 22206); + new Metrics(this, 22206); - // Load autoreplant state from data.yml - loadPlayerStates(); + // Load autoreplant state from data.yml + loadPlayerStates(); + } catch (Exception e) { + getLogger().severe("Failed to enable AutoReplant plugin: " + e.getMessage()); + e.printStackTrace(); + setEnabled(false); + } } @Override From 39444801797b0b05401203bd871a73c1dacb686c Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 18 Apr 2026 23:47:30 +0200 Subject: [PATCH 09/10] Refactor onEnable method in AutoReplant.java for improved readability and add filters for FoliaLib in pom.xml --- pom.xml | 14 +++++++--- .../me/niko302/autoreplant/AutoReplant.java | 27 +++++-------------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index ce1bcdb..5cda833 100644 --- a/pom.xml +++ b/pom.xml @@ -33,6 +33,14 @@ 3.6.2 true + + + com.tcoded:FoliaLib + + ** + + + org.bstats @@ -69,8 +77,8 @@ - spigotmc-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + papermc + https://repo.papermc.io/repository/maven-public/ @@ -101,7 +109,7 @@ com.tcoded FoliaLib - 0.7.13 + 0.5.1 compile diff --git a/src/main/java/me/niko302/autoreplant/AutoReplant.java b/src/main/java/me/niko302/autoreplant/AutoReplant.java index 46069e1..4a2de2d 100644 --- a/src/main/java/me/niko302/autoreplant/AutoReplant.java +++ b/src/main/java/me/niko302/autoreplant/AutoReplant.java @@ -34,29 +34,16 @@ public class AutoReplant extends JavaPlugin implements Listener { public void onEnable() { super.onEnable(); - try { - configManager = new ConfigManager(this); - foliaLib = new FoliaLib(this); - - var command = getCommand("autoreplant"); - if (command == null) { - getLogger().severe("Failed to load 'autoreplant' command from plugin.yml!"); - setEnabled(false); - return; - } + configManager = new ConfigManager(this); + foliaLib = new FoliaLib(this); - command.setExecutor(new AutoReplantCommand(this)); // Registering the command executor - getServer().getPluginManager().registerEvents(this, this); + getCommand("autoreplant").setExecutor(new AutoReplantCommand(this)); // Registering the command executor + getServer().getPluginManager().registerEvents(this, this); - new Metrics(this, 22206); + new Metrics(this, 22206); - // Load autoreplant state from data.yml - loadPlayerStates(); - } catch (Exception e) { - getLogger().severe("Failed to enable AutoReplant plugin: " + e.getMessage()); - e.printStackTrace(); - setEnabled(false); - } + // Load autoreplant state from data.yml + loadPlayerStates(); } @Override From fb48b8d02863f27161b1885ad3da7b253351cc5e Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 25 Apr 2026 12:55:24 +0200 Subject: [PATCH 10/10] Remove permission declaration for autoreplant command in plugin.yml --- src/main/resources/plugin.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index e89ae33..a7f4ded 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -10,7 +10,6 @@ commands: autoreplant: description: 'Toggle autoreplant feature' usage: /autoreplant - permission: autoreplant.use permissions: autoreplant.use: