JMC (JavaScript-like Minecraft Function) is a mcfunction extension language for making Minecraft Datapack.
Text.tellraw(@a, "everything outside the function");
say "just goes into the load function";
function myFunc() { // function
execute as @a at @s run {
Text.tellraw(@a, "&<green,bold> this text is green and bold");
say "this is a function executed through execute as @a";
}
}
function varOperations() {
// this variable x is equal to the number of items in hand
$x = data get entity @s SelectedItem.Count;
$y = 100; // this is the second variable
$z = @s::SelectedItem.Count; // the same as $x
$random_int = Math.random($x, $y);
Text.tellraw(@a, "random number from &<$x> to 100: &<$random_int>");
}
class folder {
function funcInFolder() {
if ($x < $y && $random_int <= 50) {
printf("X is less than Y and random number is less than or equal to 50");
} else if ($y > $x || $x == 69) {
printf("X is greater than Y or X is equal to 69 ($x is &<$x>)");
} else {
printf("&6other cases"); // "printf" is shortcut for "tellraw @a" but works with custom formatting
}
}
}
function folder.raycast() {
Raycast.simple(
onHit=()=>{
printf("i hit some block");
},
onStep=()=>{
particle happy_villager ~ ~ ~;
}
interval=0.5,
maxIter=100,
stopAtBlock=true,
);
}
Documentation: https://jmc.wingedseal.com
Trailer: https://www.youtube.com/watch?v=cFgvCScpirw&ab_channel=WingedSeal
JMC allows you to write minecraft functions in a better language (.jmc) which is more readable and easier to write.
Everything you need to know about JMC can be found at https://jmc.wingedseal.com
In "datapacks" folder of your world file (Usually .minecraft/saves/world_name/datapacks
). Create a new datapack folder. And put JMC.exe in that folder then run it.
pip install jmcfunction --pre
Latest unreleased build:
pip install git+https://github.com/WingedSeal/jmc.git#subdirectory=src
If you would like to build the executable yourself (on Windows).
cd
pip install -r build_requirements.txt
build
If you would like to use latest unreleased feature, you can install jmc directly from github repository.
cd
cd ./src
pip install setuptools
python setup.py install