blob: e9b2bfa39a019b3975c3a47873f47c1a3210d754 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package me.xmrvizzy.skyblocker.skyblock;
import me.shedaniel.autoconfig.AutoConfig;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.option.KeyBinding;
import org.lwjgl.glfw.GLFW;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.List;
public class HotbarSlotLock {
public static KeyBinding hotbarSlotLock;
public static void init() {
hotbarSlotLock = KeyBindingHelper.registerKeyBinding(new KeyBinding(
"key.hotbarSlotLock",
GLFW.GLFW_KEY_H,
"key.categories.skyblocker"
));
}
public static boolean isLocked(int slot) {
return SkyblockerConfig.get().general.lockedSlots.contains(slot);
}
public static void handleDropSelectedItem(int slot, CallbackInfoReturnable<Boolean> cir) {
if (isLocked(slot)) cir.setReturnValue(false);
}
public static void handleInputEvents(ClientPlayerEntity player) {
while (hotbarSlotLock.wasPressed()) {
List<Integer> lockedSlots = SkyblockerConfig.get().general.lockedSlots;
int selected = player.getInventory().selectedSlot;
if (!isLocked(player.getInventory().selectedSlot)) lockedSlots.add(selected);
else lockedSlots.remove(Integer.valueOf(selected));
AutoConfig.getConfigHolder(SkyblockerConfig.class).save();
}
}
}
|