⚡ P-LifeSteal | 1.21.11 SUPPORT | UPDATED (All 1.21.x versio
2.0.0Fork of original P-Lifesteal plugin updated to work with latest versions of minecraft
2.0.0latest⚡ P-LifeSteal | 1.21.10 SUPPORT | UPDATED (All 1.21.x versions supported)Mar 20, 2026 P-LifeSteal v2.0.0 — Complete Changelog pom.xml Build Configuration Plugin version bumped from 1.9.6 → 2.0.0 Java version updated from 17 → 21 Maven Compiler source updated from 17 → 21 Maven Compiler target updated from 17 → 21 Server API changed from org.spigotmc:spigot-api:1.21.1-R0.1-SNAPSHOT → io.papermc.paper aper-api:1.21.4-R0.1-SNAPSHOT CommandAPI changed from dev.jorel:commandapi-bukkit-shade:9.5.3 (compile) → dev.jorel:commandapi-paper-core:11.0.0 (provided) PlaceholderAPI version updated from 2.11.3 → 2.11.6 PlaceholderAPI repository URL fixed from https://repo.extendedclip.com/content/repositories/placeh… → https://repo.extendedclip.com/releases/ Sonatype repository replaced with PaperMC repository ( https://repo.papermc.io/repository/maven-public/) maven-shade-plugin entirely removed (CommandAPI no longer shaded into JAR) maven-jar-plugin outputDirectory fixed from hardcoded Windows path F:\newplugtesting\P-LifeSteal\target → platform-independent ${project.build.directory} plugin.yml Plugin Metadata api-version updated from 1.18 → 1.21 Added softdepend: [PlaceholderAPI, CommandAPI] Removed the old multi-line softdepend block for PlaceholderAPI CommandAPIDependency.java New File New class eu.vibemc.lifesteal.other.CommandAPIDependency created Checks if CommandAPI plugin is already installed on the server If not found, auto-downloads CommandAPI-11.0.0-Paper.jar from GitHub releases Provides clear restart instructions in the console if download was needed Shows manual download URL if auto download fails Main.java Plugin Main Class Removed import dev.jorel.commandapi.CommandAPIBukkitConfig Removed import dev.jorel.commandapi.CommandAPIConfig Removed CommandAPI.onLoad(new CommandAPIBukkitConfig(this).silentLogs(false)) from onLoad() Added commandApiAvailable boolean field to track CommandAPI status Added CommandAPIDependency.ensureInstalled() check in onLoad() triggers auto-download if needed Added early return in onLoad() if CommandAPI is not available Added graceful disable in onEnable() if CommandAPI is not loaded (shows restart message) Added guard in onDisable() to skip recipe cleanup if CommandAPI wasn't available Changed loadCommands() to use fully qualified class name to avoid ClassNotFoundError when CommandAPI isn't loaded HeartsCommands.java Heart Management Commands Removed import dev.jorel.commandapi.arguments.PlayerArgument Added import dev.jorel.commandapi.arguments.PlayerProfileArgument Added import org.bukkit.profile.PlayerProfile Added import java.util.List add command: PlayerArgument("player") → PlayerProfileArgument("player") add command: (Player) args.get("player")→ Bukkit.getPlayer(profiles.getFirst().getUniqueId()) set command: PlayerArgument("player") → PlayerProfileArgument("player") set command: (Player) args.get("player")→ Bukkit.getPlayer(profiles.getFirst().getUniqueId()) remove command: PlayerArgument("player") → PlayerProfileArgument("player") remove command: (Player) args.get("player")→ Bukkit.getPlayer(profiles.getFirst().getUniqueId()) check command: PlayerArgument("player") → PlayerProfileArgument("player") check command: (Player) args.get("player")→ Bukkit.getPlayer(profiles.getFirst().getUniqueId()) ItemsCommands.java Item Give Commands Removed import dev.jorel.commandapi.arguments.PlayerArgument Added import dev.jorel.commandapi.arguments.PlayerProfileArgument Added import org.bukkit.profile.PlayerProfile Added import java.util.List extra_heart command: PlayerArgument("player") → PlayerProfileArgument("player") extra_heart command: (Player) args.get("player")→ Bukkit.getPlayer(profiles.getFirst().getUniqueId()) revive_book command: PlayerArgument("player") → PlayerProfileArgument("player") revive_book command: (Player) args.get("player") → Bukkit.getPlayer(profiles.getFirst().getUniqueId()) BansCommands.java Ban Management Commands Removed import dev.jorel.commandapi.arguments.OfflinePlayerArgument Added import dev.jorel.commandapi.arguments.PlayerProfileArgument Added import org.bukkit.Bukkit Added import org.bukkit.profile.PlayerProfile Added import java.util.List remove command: OfflinePlayerArgument("player") → PlayerProfileArgument("player") remove command: (OfflinePlayer) args.get("player") → Bukkit.getOfflinePlayer(profile.getUniqueId()) Attribute Renaming (MC 1.21.3+ API Change) Attribute.GENERIC_MAX_HEALTH → Attribute.MAX_HEALTH1.9.6Sep 8, 2024
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta