Skip to content

26.1.2 Player Toggle and Persistence

Rifa edited this page Aug 22, 2026 · 1 revision

πŸ”„ Player Toggle & State Management (MC 26.1.2)

πŸ“Œ Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.

Feature Infobox Technical Parameters
State Storage Class net.instantgratification.magnet.MagnetPlayerState
Default Client Keybind Ctrl+M (GLFW.GLFW_KEY_M + isControlDown())
Key Category key.category.ig_magnet.magnet (Magnet, Let me get that!)
Network Payload MagnetTogglePayload (ig_magnet:toggle)
Actionbar API client.gui.setOverlayMessage(Component, boolean)

πŸ“– State Architecture Overview

In Minecraft 26.1.2, player toggle preferences are managed during the active server session via MagnetPlayerState using a thread-safe ConcurrentHashMap:

public class MagnetPlayerState {
    private static final Map<UUID, Boolean> playerStates = new ConcurrentHashMap<>();

    public static boolean isMagnetEnabled(Player player) {
        return playerStates.getOrDefault(player.getUUID(), true);
    }

    public static void setMagnetEnabled(Player player, boolean enabled) {
        playerStates.put(player.getUUID(), enabled);
    }

    public static boolean toggleMagnet(Player player) {
        boolean newState = !isMagnetEnabled(player);
        setMagnetEnabled(player, newState);
        return newState;
    }
}

⌨️ Client Keybinding (Ctrl+M)

  • Default Combination: Ctrl+M (GLFW_KEY_M + isControlDown()), with cross-platform support for Command key on macOS (GLFW_KEY_LEFT_SUPER).
  • Visual Actionbar Feedback:
    • chat.ig_magnet.enabled: "Item Magnet: Enabled"
    • chat.ig_magnet.disabled: "Item Magnet: Disabled"

πŸ“‘ Network Synchronization Protocol

[CLIENT]                                                           [SERVER]
Player presses Ctrl+M
MagnetPlayerState.setMagnetEnabled(player, newState)
ClientPlayNetworking.send(new MagnetTogglePayload(newState))
                                               ------------------> Server Receiver
                                                                   MagnetPlayerState.setMagnetEnabled(player, payload.enabled())

πŸ”— Related Wiki Documentation

Clone this wiki locally