From c720da99800f6017528f5e0a4fab3ce8656954f7 Mon Sep 17 00:00:00 2001 From: NikitaCartes Date: Sun, 12 Nov 2023 01:47:43 +0100 Subject: [PATCH] Add option to disable action detection --- README.md | 4 ++++ src/main/java/net/bytzo/sessility/SessilityProperties.java | 1 + .../java/net/bytzo/sessility/mixins/ServerPlayerMixin.java | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 30d5733..749f9c7 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,10 @@ detect-advancement-action=true # Default: true detect-rotation=true +# Whether or not to detect player action (hitting, breaking blocks or moving) as motility. +# Default: true +detect-action=true + # Whether or not to hide sessile players in the player tab list. # Default: false hide-sessile-in-tab-list=false diff --git a/src/main/java/net/bytzo/sessility/SessilityProperties.java b/src/main/java/net/bytzo/sessility/SessilityProperties.java index 3780be7..ae8e980 100644 --- a/src/main/java/net/bytzo/sessility/SessilityProperties.java +++ b/src/main/java/net/bytzo/sessility/SessilityProperties.java @@ -16,6 +16,7 @@ public class SessilityProperties extends Settings { public final boolean hideSessileInServerList = this.get("hide-sessile-in-server-list", false); public final boolean detectAdvancementAction = this.get("detect-advancement-action", true); public final boolean detectRotation = this.get("detect-rotation", true); + public final boolean detectAction = this.get("detect-action", true); public SessilityProperties(Properties properties) { super(properties); diff --git a/src/main/java/net/bytzo/sessility/mixins/ServerPlayerMixin.java b/src/main/java/net/bytzo/sessility/mixins/ServerPlayerMixin.java index 9fe2a2e..cbde247 100644 --- a/src/main/java/net/bytzo/sessility/mixins/ServerPlayerMixin.java +++ b/src/main/java/net/bytzo/sessility/mixins/ServerPlayerMixin.java @@ -61,8 +61,10 @@ private void postTick(CallbackInfo callbackInfo) { @Inject(method = "resetLastActionTime()V", at = @At("HEAD")) private void preResetLastActionTime(CallbackInfo callbackInfo) { - // If action is taken, make the player not sessile. - this.setSessile(false); + if (Sessility.settings().properties().detectAction) { + // If action is taken, make the player not sessile. + this.setSessile(false); + } } @Inject(method = "getTabListDisplayName()Lnet/minecraft/network/chat/Component;", at = @At("RETURN"), cancellable = true)