Add is invulnerable config

This commit is contained in:
Felix Heidisch committed 2025-06-04 13:59:37 +02:00
1 parent 82ab085648
commit 0fb831fdb9
3 files changed
+16 -5

No files matched your search

@@ -17,6 +17,7 @@ public class AfkConfig {
private boolean freezeAfkPlayers;
private boolean cancelAfkOnMove;
private boolean cancelAfkOnJump;
private boolean invulnerableDuringAfk;
/**
* Creates an instance of {@code TimerConfig} class.
@@ -46,6 +47,7 @@ public class AfkConfig {
this.freezeAfkPlayers = config.getBoolean("freeze-afk-players", true);
this.cancelAfkOnJump = config.getBoolean("cancel-afk-on-jump", true);
this.cancelAfkOnMove = config.getBoolean("cancel-afk-on-move", true);
this.invulnerableDuringAfk = config.getBoolean("invulnerable-during-afk", true);
}
public boolean isFreezeAfkPlayers() {
@@ -59,4 +61,8 @@ public class AfkConfig {
public boolean isCancelAfkOnMove() {
return cancelAfkOnMove;
}
public boolean isInvulnerableDuringAfk() {
return invulnerableDuringAfk;
}
}
@@ -5,6 +5,7 @@
package de.codecrafter.smartAfk.utils;
import de.codecrafter.smartAfk.SmartAfk;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Location;
@@ -20,7 +21,7 @@ public class AfkManager {
public void setAfk(Player player) {
afkPlayers.add(player.getUniqueId());
afkPositions.put(player.getUniqueId(), player.getLocation());
player.setInvulnerable(true);
if (SmartAfk.getPlugin().getAfkConfig().isInvulnerableDuringAfk()) player.setInvulnerable(true);
Component name = player.name();
player.displayName(AFK_PREFIX.append(name.color(NamedTextColor.WHITE)));
@@ -32,7 +33,7 @@ public class AfkManager {
public void unsetAfk(Player player) {
afkPlayers.remove(player.getUniqueId());
afkPositions.remove(player.getUniqueId());
player.setInvulnerable(false);
if (SmartAfk.getPlugin().getAfkConfig().isInvulnerableDuringAfk()) player.setInvulnerable(false);
Component name = player.name();
player.displayName(name);
+7 -3
View File
@@ -2,9 +2,13 @@
freeze-afk-players: true
# cancel afk status if the player jumps
# only active if 'freeze-afk-players' is true
# ONLY WORKS IF 'freeze-afk-players' IS TRUE
cancel-afk-on-jump: true
# cancel afk status if player moves more than 3 blocks
# only active if 'freeze-afk-players' is false
cancel-afk-on-move: true
# else use the '/afk' command
# ONLY WORKS IF 'freeze-afk-players' IS FALSE
cancel-afk-on-move: true
# the player cannot take damage when he is afk
invulnerable-during-afk: true