9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-27 10:39:11 +00:00

Added config option for syncing dead player inventories, cancel damage if locked

This commit is contained in:
William
2022-08-04 17:48:16 +01:00
parent 1ed2414241
commit d1c95030f0
7 changed files with 41 additions and 12 deletions

View File

@@ -14,6 +14,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityPickupItemEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
@@ -121,6 +122,13 @@ public class BukkitEventListener extends EventListener implements Listener {
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerTakeDamage(@NotNull EntityDamageEvent event) {
if (event.getEntity() instanceof Player player) {
event.setCancelled(cancelPlayerEvent(BukkitPlayer.adapt(player)));
}
}
@EventHandler(ignoreCancelled = true)
public void onPlayerDeath(PlayerDeathEvent event) {
if (cancelPlayerEvent(BukkitPlayer.adapt(event.getEntity()))) {

View File

@@ -97,7 +97,7 @@ public class BukkitPlayer extends OnlineUser {
final double currentHealth = player.getHealth();
if (statusData.health != currentHealth) {
final double healthToSet = currentHealth > currentMaxHealth ? currentMaxHealth : statusData.health;
if (healthToSet <= 0) {
if (healthToSet < 1) {
Bukkit.getScheduler().runTask(BukkitHuskSync.getInstance(), () -> player.setHealth(healthToSet));
} else {
player.setHealth(healthToSet);
@@ -572,6 +572,11 @@ public class BukkitPlayer extends OnlineUser {
});
}
@Override
public boolean isDead() {
return player.getHealth() < 1;
}
@Override
public void sendActionBar(@NotNull MineDown mineDown) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, mineDown.replace().toComponent());