diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkCommand.java index dad13df6d..834e2447f 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkCommand.java @@ -24,6 +24,8 @@ ) class AfkCommand { + private static final String AFK_BYPASS_PERMISSION = "eternalcore.afk.bypass"; + private final NoticeService noticeService; private final PluginConfiguration pluginConfiguration; private final AfkService afkService; @@ -38,10 +40,15 @@ class AfkCommand { } @Execute - @DescriptionDocs(description = "Marks you as AFK, if player has eternalcore.afk.bypass permission, eternalcore will be ignore afk delay") + @DescriptionDocs(description = "Marks you as AFK, if player has eternalcore.afk.bypass permission, eternalcore will ignore afk delay") void execute(@Context Player player) { UUID uuid = player.getUniqueId(); + if (player.hasPermission(AFK_BYPASS_PERMISSION)) { + this.afkService.switchAfk(uuid, AfkReason.COMMAND); + return; + } + if (this.delay.hasDelay(uuid)) { Duration time = this.delay.getDurationToExpire(uuid); @@ -56,11 +63,6 @@ void execute(@Context Player player) { } this.afkService.switchAfk(uuid, AfkReason.COMMAND); - - if (player.hasPermission("eternalcore.afk.bypass")) { - return; - } - this.delay.markDelay(uuid, this.pluginConfiguration.afk.getAfkDelay()); } } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AftPlaceholderSetup.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkPlaceholderSetup.java similarity index 95% rename from eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AftPlaceholderSetup.java rename to eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkPlaceholderSetup.java index d5f167fb4..ac71db826 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AftPlaceholderSetup.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkPlaceholderSetup.java @@ -14,12 +14,12 @@ import java.util.Optional; @Controller -class AftPlaceholderSetup { +class AfkPlaceholderSetup { private final TranslationManager translationManager; @Inject - AftPlaceholderSetup(TranslationManager translationManager) { + AfkPlaceholderSetup(TranslationManager translationManager) { this.translationManager = translationManager; } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkServiceImpl.java index 5228142ad..007edcdf5 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkServiceImpl.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkServiceImpl.java @@ -7,12 +7,12 @@ import com.eternalcode.core.notice.NoticeService; import com.eternalcode.core.user.User; import com.eternalcode.core.user.UserManager; +import java.util.HashMap; import java.util.Optional; import org.jetbrains.annotations.ApiStatus; import java.time.Duration; import java.time.Instant; -import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -126,5 +126,4 @@ private void sendAfkNotification(UUID playerUniqueId, boolean afk) { .placeholder("{PLAYER}", this.userManager.getUser(playerUniqueId).map(User::getName)) .send(); } - } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkTask.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkTask.java index 8d9621acc..f888a80f9 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkTask.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/AfkTask.java @@ -3,12 +3,11 @@ import com.eternalcode.core.feature.vanish.VanishService; import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.injector.annotations.component.Task; +import java.util.UUID; import java.util.concurrent.TimeUnit; import org.bukkit.Server; import org.bukkit.entity.Player; -import java.util.UUID; - @Task(delay = 1L, period = 1L, unit = TimeUnit.MINUTES) class AfkTask implements Runnable { @@ -55,5 +54,4 @@ void markAllInactivePlayers() { } } } - } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/messages/PLAfkMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/messages/PLAfkMessages.java index 7163327f2..1762f2277 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/messages/PLAfkMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/afk/messages/PLAfkMessages.java @@ -13,16 +13,18 @@ public class PLAfkMessages implements AfkMessages { @Description("# {PLAYER} - Gracz ") public Notice afkOn = Notice.chat("{PLAYER} jest AFK!"); + + @Description("# {PLAYER} - Gracz ") public Notice afkOff = Notice.chat("{PLAYER} już nie jest AFK!"); @Description({" ", "# {TIME} - Czas po którym gracz może użyć komendy"}) public Notice afkDelay = Notice.chat("Możesz użyć tej komendy dopiero po {TIME}!"); @Description({" "}) - public String afkKickReason = "Zostałeś wyrzucone z powodu braku aktywności!"; + public String afkKickReason = "Zostałeś wyrzucony z powodu braku aktywności!"; @Description({" ", "# Używane w %eternalcore_afk_formatted% do wskazania statusu AFK"}) public String afkEnabledPlaceholder = "AFK"; - public String afkDisabledPlaceholder = ""; + public String afkDisabledPlaceholder = ""; }