Skip to content

Commit 9ab17dd

Browse files
feat: add keybind to toggle mod <#5>
1 parent 0a251db commit 9ab17dd

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

src/main/java/bigbrainrobin29/durabilityguard/DurabilityGuard.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44

55
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
66
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
7+
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
8+
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
79
import net.minecraft.client.MinecraftClient;
10+
import net.minecraft.client.option.KeyBinding;
11+
import net.minecraft.client.option.StickyKeyBinding;
12+
import net.minecraft.client.util.InputUtil;
13+
import net.minecraft.text.Text;
814
import org.slf4j.Logger;
915
import org.slf4j.LoggerFactory;
1016

@@ -17,6 +23,10 @@ public class DurabilityGuard implements ClientModInitializer {
1723
public void onInitializeClient() {
1824
LOGGER.info("Initializing Durability Guard...");
1925

26+
KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(
27+
new StickyKeyBinding("key.durabilityguard.toggle", InputUtil.UNKNOWN_KEY.getCode(), "Durability Guard", () -> DurabilityGuardConfig.active)
28+
);
29+
2030
DurabilityGuardConfig.HANDLER.load();
2131

2232
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
@@ -27,5 +37,12 @@ public void onInitializeClient() {
2737
})));
2838
});
2939

40+
41+
ClientTickEvents.END_CLIENT_TICK.register(client -> {
42+
while (keyBinding.wasPressed()) {
43+
DurabilityGuardConfig.active = !DurabilityGuardConfig.active;
44+
client.player.sendMessage(Text.of("Durability Guard is now " + (DurabilityGuardConfig.active ? "enabled" : "disabled")), true);
45+
}
46+
});
3047
}
3148
}

src/main/java/bigbrainrobin29/durabilityguard/mixin/MinecraftMixin.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import net.minecraft.util.Formatting;
1111
import net.minecraft.util.hit.HitResult;
1212
import org.jetbrains.annotations.Nullable;
13-
import org.slf4j.Logger;
14-
import org.spongepowered.asm.mixin.Final;
1513
import org.spongepowered.asm.mixin.Mixin;
1614
import org.spongepowered.asm.mixin.Shadow;
1715
import org.spongepowered.asm.mixin.Unique;
@@ -35,8 +33,6 @@ public abstract class MinecraftMixin {
3533
@Shadow public abstract ToastManager getToastManager();
3634

3735

38-
@Shadow @Final private static Logger LOGGER;
39-
4036
@Inject(method = "doAttack", at = @At(value = "HEAD"), cancellable = true)
4137
void check(CallbackInfoReturnable<Boolean> cir) {
4238
checkDamage(() -> cir.setReturnValue(false));
@@ -77,17 +73,13 @@ private boolean isIgnored() {
7773

7874
String id = Registries.ITEM.getId(player.getMainHandStack().getItem()).toString();
7975

80-
LOGGER.info("Checking if item is ignored: " + id);
81-
8276
if (DurabilityGuardConfig.ignoredItems.contains(id)) {
83-
LOGGER.info("Item is ignored: " + id);
8477
isIgnored = true;
8578
}
8679

8780
for (String ignoredItem : DurabilityGuardConfig.ignoredItems) {
8881
Pattern pattern = Pattern.compile(ignoredItem.replace("*", ".*"), Pattern.CASE_INSENSITIVE);
8982
if (pattern.matcher(id).matches()) {
90-
LOGGER.info("Item is ignored: " + id);
9183
isIgnored = true;
9284
break;
9385
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"key.durabilityguard.toggle": "Toggle"
3+
}

0 commit comments

Comments
 (0)