macrocompile

macrocompile JS library on npm Download macrocompile JS library

Compile a macromod script and its dependencies into one large inlined script

Version 1.0.4 License ISC
macrocompile has no homepage
macrocompile JS library on GitHub
macrocompile JS library on npm
Download macrocompile JS library
Keywords
Minecraftautomationinliningcompilation

macrocompile

A command line tool to automatically "recompile" macromod scripts when a change in any script dependency is detected. By "compile" we refer to the process of recursive inline-replacement of dependent scripts, removal of comments and whitespace, and the obfuscation of variable names.

Installation

Using npm:

npm i macrocompile -g

Usage

From command line:

macrocompile

Or:

macrocompile -i

To only run compilation for the specified scripts once, not watching for file changes.

Configuration

You must configure the file %node_path%/npm_modules/macrocompile/config.json before running. It comes with a default set of options:

Option Default Description
removeWhitespace true Controls whether whitespace is removed
obfuscate true Whether variables are renamed to shorter forms
blockFormat true Puts multiple statements on one line, up to a maximum width
maxWidth 70 Maximum width of each combined line, except for original long lines

As well, the scripts you wish to compile, as well as their compiled-version name, must be specified as an array of objects, and a path to your scripts folder:

"scriptsFolder":
    "C:\\Users\\YOUR USERNAME HERE\\AppData\\Roaming\\.minecraft\\liteconfig\\common\\macros\\",
"scripts": [
    {
    "name": "digBot_source.txt",
    "compiledName": "digBot.txt"
    },
    {
    "name": "fooBot_source.txt",
    "compiledName": "fooBot.txt"
    }
],

Purpose

Beyond a certain level of nesting, macromod scripts develop strange bugs that arise from the script runtime agent itself. To prevent this, the script is compiled into one large file that has no external dependencies.