Skip to content

Releases: SecondLifeGaming/MacroMod

MacroMod v0.1.2-beta

Choose a tag to compare

@westkevin12 westkevin12 released this 28 Sep 09:12
v0.1.2-beta
c531b7b

MC Macro Mod - Release Notes

Version 0.1.2-beta (Minecraft 26.3)

Modular Free vs Premium Compilation Architecture

  • Compile-Time Source Set Separation:
    • Restructured the codebase into decoupled Gradle source sets (src/main, src/free, and src/premium).
    • Free Edition (src/free): Compiles a standalone binary containing no paywalled classes, .mcm file parser bytecode or event loop checks.
    • Premium Edition (src/premium): Compiles the complete feature suite including multi-line .mcm script files, ScriptInterpreter, PremiumEventTriggers threshold checking, WindMouse {LOOKAT} camera automation, and the remote update checker.

Modrinth Terms of Service Compliance

  • Physical Bytecode Removal:
    • Eliminated artificial runtime boolean checks (IS_PREMIUM flags) in the free JAR.
    • All proprietary feature bytecode is physically excluded at compile time, ensuring compliance with Modrinth hosting policies for free downloads.

Git Security & Privacy (.gitignore)

  • Configured .gitignore to explicitly ignore src/premium/ while keeping src/main/ and src/free/ tracked for GitHub open-source hosting.

Modern PaperMC Adventure Component API Refactoring

  • Kyori Adventure API Migration:
    • Refactored MacroModServerPlugin.java to replace deprecated org.bukkit.ChatColor with net.kyori.adventure.text.Component and NamedTextColor.
    • Replaced deprecated getDescription().getVersion() with modern getPluginMeta().getVersion().
    • Cleaned up subproject command execution logic to return false on unrecognized subcommands for standard Bukkit usage help rendering.

Performance & Memory Optimizations

  • Precompiled Regex Patterns:
    • Optimized InlineScriptInterpreter by compiling whitespace regex patterns (\s+) into a static pre-compiled Pattern field, eliminating per-tick allocations.
    • Refactored tick processing to use Optional<Boolean> step execution control flow to reduce cognitive complexity.

MacroMod v0.1.1-beta

Choose a tag to compare

@westkevin12 westkevin12 released this 24 Sep 23:46
v0.1.1-beta
ffa3c3a

MC Macro Mod - Release Notes

Version 0.1.1-beta (Minecraft 26.3)

Minecraft 26.3 Refactor & 26.2 Retirement

  • Minecraft 26.3 Native Support:
    • Fully refactored for Minecraft 26.3 and Fabric Loader 0.19+, compiled targeting Java 25.
    • Updated native keyboard input event pipeline to Mojang's InputConstants.Key API and updated KeyboardMixin.
    • Migrated GUI rendering engine extractors to MC 26.3 GuiGraphicsExtractor interfaces.
  • Retirement of Minecraft 26.2:
    • Deprecated and retired backward compatibility for Minecraft 26.2 due to breaking Mojang API changes in input, rendering, and Fabric networking.

Human WindMouse LOOKAT & Block Target Verification

  • Human-like WindMouse Camera Movement ({LOOKAT}):
    • Upgraded {LOOKAT} camera rotation from instant single-frame snapping to human-like WindMouse physics (curved vector paths, gravity pull, wind disturbance noise, and target approach deceleration).
  • Target Block Type Validation (expectedBlock):
    • Supports optional block validation argument: {LOOKAT x y z [expectedBlock]} (e.g. {LOOKAT 100 64 -200 blast_furnace}).
    • Validates block state at target coordinates before turning; halts macro and warns if block type doesn't match.
  • Target Inner Depth Margin (innerMargin):
    • Supports optional inner margin depth ratio argument (0.0 to 0.45, default 0.1). Calculates target vector inside the block face bounding box with natural Gaussian center weighting.
  • Crosshair Raycast Verification:
    • Verifies that player crosshair raycast (hitResult) has locked onto target BlockPos before advancing script execution.
  • Human Look Angle Commands ({HLOOK}, {HLOOKRANGE}, {HLOOKRANDOM}):
    • Introduced {HLOOK yaw pitch}, {HLOOKRANGE}, and {HLOOKRANDOM} for human-like WindMouse camera rotation targeting explicit yaw and pitch angles, reserving {LOOK} for instant 1-tick snapping.

Interface & GUI Verification

  • Screen & Interface Verification ({VERIFYSCREEN}):
    • Added {VERIFYSCREEN expectedInterface} / {VERIFYINTERFACE expectedInterface} action command. Verifies active screen title or container type matches expected target (e.g. furnace, chest, vault) before interacting.
  • Dynamic Interface State Variables:
    • Added $screentitle, $screenclass, $containertype, $isfurnaceopen, $ischestopen, $iscraftingopen, $isanvilopen.
    • Upgraded {GETCONTAINERTITLE varName} to dynamically read active GUI screen titles and menu types.

MacroMod v0.1.0-beta

Choose a tag to compare

@westkevin12 westkevin12 released this 14 Sep 16:45
v0.1.0-beta
ffa3c3a

MC Macro Mod - Release Notes

Version 0.1.0-beta

🛡️ Modrinth Policy Compliance & Protocol-Level Server Discovery

  • Modrinth Section 3.3 & Content Rules Audit:
    • Dynamically removed non-compliant UI tabs (Event Triggers & Scripts) in the Free Edition configuration screen.
  • Protocol-Level Server Discovery (macromod:hello):
    • Replaced legacy /macromod-info chat command execution with Fabric's native ClientPlayNetworking custom payload packet (macromod:hello).
    • Fixed Unknown command errors and unprompted chat messages when joining vanilla or non-plugin Minecraft servers.

MacroMod v0.0.6

Choose a tag to compare

@westkevin12 westkevin12 released this 27 Aug 18:27
v0.0.6

MC Macro Mod - Release Notes

Version 0.0.6

🚀 Package Migration, Type-Safe Scripting Engine & Library Overhaul

  • Package Namespace Migration:
    • Migrated all Java classes, plugin descriptors (fabric.mod.json, plugin.yml, paper-plugin.yml, bungee.yml, velocity-plugin.json), and build configurations from com.github.westkevin12.macromod to com.github.secondlifegaming.macromod.
  • Type-Safe Variable Engine (ScriptValue):
    • Replaced separate disconnected variable maps (userVars, userStringVars, userArrays) with a unified, type-safe ScriptValue model (NUMBER, STRING, BOOLEAN, ARRAY), eliminating variable shadowing bugs.
  • Parameterized INC & DEC:
    • Updated inc and dec parsing and execution to support optional custom step values: inc counter 5, inc counter $step, dec health 10.
  • Native Arithmetic Instructions:
    • Added native math operations: add <var> <val>, sub / subtract, mul / multiply, div / divide, mod.
  • String & Array Utility Functions:
    • Added string statements: concat(target, s1, s2), substr(var, start, len), length(target, var), lower(var), upper(var).
    • Added array management: arraypush(arr, val), arraypop(arr, [target]), arrayclear(arr), arraycontains(arr, val, target).

MacroMod v0.0.5

Choose a tag to compare

@westkevin12 westkevin12 released this 12 Aug 02:02
95d57c0

MC Macro Mod - Release Notes

Version 0.0.5

Note

Status: Version 0.0.5 marks the final alpha development milestone. The plugin and companion server ecosystem are fully feature-complete and feature-locked, preparing for upcoming public Beta releases.

🚀 Enhancements, Inventory Automation & Engine Lifecycle Stability

  • Automated Container Stashing:
    • Introduced {STASHALL} keyword: automatically deposits main player inventory items into open container/vault screens while protecting hotbar tools (pickaxes & shovels).
  • Screen Lifecycle & Container Sync Fixes:
    • Refactored {CLOSESCREEN} to call Screen.onClose() on the active GUI screen, properly triggering screen cleanup handlers and dispatching container close packets.
    • Resolved container desynchronization and screen overlay lockups when running automated container sequences (such as /pv vault macros).
    • Pinned outbound commands (sendCommand) and chat messages (sendChat) to Minecraft's main client execution thread (client.execute).
    • Added single-slot click actions {SLOTCLICK}, {SHIFTCLICK}, {CTRLSHIFTCLICK}, {QUICKMOVE}, {QUICKMOVEALL slot}, and {CONTAINERCLICK} for granular container manipulation.
  • Hotbar Slot Packet Synchronization:
    • Updated {SLOT 1..9} to convert 1-based hotbar numbers (1..9) to 0-based indices (0..8) and send explicit ServerboundSetCarriedItemPacket network packets to synchronize selected hotbar slots with the server.
  • File Array Operations & Chat Formatting:
    • Introduced {READFILE "file.txt" arrayVar}, {ARRAYSIZE arrayVar targetVar}, and {GETARRAY arrayVar index targetVar} for reading and indexing text file arrays from .mcm scripts.
    • Added {CHAT message} command with color section sign translation (&a -> §a) for rich chat logging and command dispatching.

Version 0.0.4

🚀 Enhancements, Security & Server Policy Integration

  • Security & Sandbox Hardening:

    • Audit and enforcement blocking user-supplied strings starting with dangerous reflection/process lookup prefixes (java., javax., sun., com.sun., Runtime, ProcessBuilder).
    • Added Throwable catch wrapping in ScriptInterpreter.tick() to gracefully isolate failing script instances without crashing the client tick loop.
    • Added friendly syntax error handling during script parsing.
  • New Event Triggers & Movement Options:

    • Implemented onItemPickup and onInventoryChange triggers via InventoryMixin.
    • Implemented onWorldLoad trigger via WorldLoadMixin.
    • Extended durability threshold checking to cover off-hand items.
    • Implemented script execution pause/resume suspension for priority event triggers.
  • Script Engine API Extensions & DSL Enhancements:

    • Added read-only getters for $isburning, $isswimming, $eyeheight.
    • Added inventory query actions: {INVENTORYGETSLOT}, {GETHELDITEM}, {GETCONTAINERTITLE}, {SWAPSLOT}.
    • Added break and continue keyword support for while and for loops.
    • Enhanced condition evaluation to support string equality comparisons (e.g. if $dimension == "minecraft:the_nether").
  • Companion Server Plugin & Network Enforcement:

    • Created ServerPermissionHandler custom payload network listener for macromod:policy packets.
    • Initialized macromod-server companion server multi-module plugin for Paper, Folia, Velocity, and BungeeCord.
    • Added LuckPerms meta-key integration (macromod.<flag>) allowing per-player or per-group policy overrides.
    • Implemented unmanaged server discovery ping (/macromod-info).
  • Build Pipeline & Version Bumping:

    • Multi-artifact automated build pipeline (scripts/build.sh) producing macromod-0.0.4-free.jar, macromod-0.0.4-premium.jar, and macromod-server-0.0.4.jar.
    • Automated version bump script (scripts/bump-version.sh) and un-gated update checker for all users.