Skip to content

Releases: WingedSeal/jmc

v1.2.12

15 Feb 07:56
Compare
Choose a tag to compare

Changelog v1.2.12

🔧Fix:

  • Fix Unrecognized JSON file's type error position
  • Improve error message position
  • Fix playsound ... weather
  • Fix index out of range error
  • Fix negative values not working on variable operation
    • $var *= -1
    • $var = -1
    • $var += -1 (JMC will use scoreboard players remove in this case)

🎉Change:

  • Display full traceback when encountering unexpected error
  • Print newline when the program closes

v1.2.12-alpha.1

12 Feb 11:49
Compare
Choose a tag to compare

Changelog v1.2.12-alpha.1

✨Added:

  • Allow obj:selector in condition
  • Add Hardcode.repeatLists

🎉Change:

  • Improve error messages (Parenthesis vs Bracket)
  • Split compile time to actual compiling time and building time
  • Store path inside config file as relative path
    • Since it's relative, you can now share jmc_config.json
  • Improve error message display
    • Use ^^ instead of <-

v1.2.11

28 Jan 12:02
Compare
Choose a tag to compare

Changelog v1.2.11

✨Added:

  • Add $var=true and $var=false
  • Allow variable without operator in condition
    • if ($isYes) {
  • Add properties key to Team.add
  • Add Entity.launch(power=1)

🔧Fix:

  • Fix GUI.registers of 0th item
  • Fix execute store with execute ($var = execute ...) creating 2 spaces
  • Fix header syntax error of uninstall showing wrong line
  • Fix spacing in macros
  • Use custom hash function for objective name of onEvent
    • The objective name used to be something like on_event0 which cause a huge problem when developing datapack since you can't change the scoreboard criteria
  • Fix empty FormattedText not working
  • Fix execute if data causing false positive on missing semicolon

🎉Change:

  • Change mob_type in Item.createSpawnEgg to mobType
  • Change criteria in Player.onEvent to keyword
  • Move Team.add to LoadOnly
  • Ignore the @import if the file has already been imported
  • Improve distribution of Math.random

v1.2.11-alpha.1

24 Jan 06:50
Compare
Choose a tag to compare

Changelog v1.2.11-alpha.1

✨Added:

  • Add #dels my_command to ignore command when searching for missing semicolons
    • Used when your namespace/etc. is the same as a command
  • Add Item.createSpawnEgg(itemId, mob_type, displayName, onPlace, lore, nbt)
  • Add #uninstall header to automatically modify your uninstall function to remove traces of the datapack

🔧Fix:

  • Fix ... is already defined showing -1 col and line in Item.registers
  • Fix "," being treated like normal , in function arguments
  • Fix GUI.registers modifying item's internal nbt affecting further use of the item

🎉Change:

  • Improve error message on list
    • The error now points at the item in list instead of the list itself
  • GUI.registers now default to first item when score is missing
  • Make every onEvent of the same criteria run from the same objective
  • Read and write as utf-8
    • Special characters will now be parsed correctly

v1.2.10

15 Jan 13:33
Compare
Choose a tag to compare

Changelog v1.2.10

✨Added:

  • Advancement.grant(@s, only, story/enter_the_end, namespace=minecraft) - @bdke
  • Advancement.revoke(@s, only, story/enter_the_end, namespace=minecraft) - @bdke
  • Add ?= and = operator for supporting execute store
    • $currentAmmo = data get entity @s SelectedItem.tag.ammo;
    • $currentAmmo ?= data get entity @s SelectedItem.tag.ammo;

🔧Fix:

  • Fix execute ... run execute if ... causing index error
  • Fix GUI items not getting killed
  • Fix new not accepting array([) in JSON
new item_modifiers(jfr_wins) [
  {
    "function": "minecraft:set_nbt",
    "tag": "{display:{Name:'{\"text\":\"Multiplayer wins\",\"color\":\"gold\",\"italic\":false}',Lore:['{\"scores\":{\"name\":\"@s\",\"objective\":\"jfrWins\"}}']}}"
  }
];

🎉Change:

  • Update API
    • Improve API for jmc.txt
  • Delay deletion of old namespace until compilation is finished
  • Add missing worldgen json file types for newer minecraft version - @AmericanBagel

v1.2.10-beta.4

05 Jan 08:55
Compare
Choose a tag to compare

Changelog v1.2.10-beta.4

✨Added:

  • API for pipelining JMC's output into other python libraries
from jmc.api import PyJMC, EXCEPTIONS

🔧Fix:

  • Fix random spaces in condition result
  • Fix loot ... loot not working
  • Fix $var = -<integer>; throwing error

🎉Change:

  • } will no longer terminate the command in vanilla syntax
    • tellraw ... {...}; will now require a semicolon

v1.2.10-beta.1

04 Jan 08:58
Compare
Choose a tag to compare

Changelog v1.2.10-beta.1

✨Added:

  • GUI.registers

🔧Fix:

  • Fix enderchest mode not working for GUI
  • Fix objective:selector not working as scoreboard argument
  • Fix using macro before operator causing unexpected space
    • MACRO:keyword -> replacement :keyword

🎉Change:

  • Remove player option from GUI

v1.2.10-beta

03 Jan 16:52
Compare
Choose a tag to compare

Changelog v1.2.10-beta

✨Added:

  • Scoreboard.add(objective, criteria, displayName)
  • Bossbar.add(team, displayName)
  • Team.add(id, name)
  • GUI.template
  • GUI.register
  • GUI.create
GUI.template(
  MainMenu,
  ["---------",
  "---ACD---",
  "---------"],
  mode=block
);
GUI.register(MainMenu, "A", diamond_sword, onClick=()=>{say "YES";});
GUI.register(MainMenu, "C", arrow);
GUI.register(MainMenu, "D", air);
GUI.create(MainMenu);

function __tick__() {
  execute positioned 2 -60 0 run GUI.run(MainMenu);
}

🔧Fix:

  • Fix error message on the wrong file causing IndexError, again
  • Fix FormattedText swapping objective and selector

🎉Change:

  • Only add __int__ scoreboard if ints are actually used
  • Add log when error happens at wrong file

v1.2.10-alpha.1

26 Dec 13:22
Compare
Choose a tag to compare

Changelog v

✨Added:

  • Schedule expression
    • schedule function myFunc() 1t append;
    • schedule clear myFunc();
    • schedule 1t append {say "command";}
    • schedule 1t {say "command";}
    • Old vanilla schedule command still works
  • Add Object.isEqual
    • Object.isEqual(type1: Keyword, source1: string, path1: Keyword, type2: Keyword, source2: string, path2: Keyword) -> Boolean
  • Add Hardcode.repeatList for strings instead of numbers
Hardcode.repeatList(
  "obj",
  ()=>{scoreboard players reset @s obj;},
  ["my_obj1", "my_obj2", "my_obj3", "my_obj4", "my_obj5"]
);

🔧Fix:

  • Fix import causing IndexError when an error occur
  • Fix IndexError due to wrong error file path
  • Fix error message showing the wrong file
  • Fix empty text causing error in Item.createSign
  • Fix schedule clear raising error
  • Fix } terminating setblock command early
  • Fix ValueError "maxIter paremeter is not number"
  • Fix vanilla execute ... run function not working
  • Fix spacing in condition when using - sign
  • Fix vanilla function call not working
  • Fix Timer.add runOnce not working
  • Fix matches not working in condition
  • Fix negative as argument not working
  • Fix "operations" typo in Timer.set
  • Fix player name as selector not working in Timer.add
  • Fix Timer.add bugs with player name selector

🎉Change:

  • Improve execute run optimization
  • Timer now run at @s
  • Allow Player name as selector
  • String.isEqual now is able to use any type of data instead of just storage
  • Change Player.onEvent to use criteria type instead of an existing scoreboard objective

v1.2.9

22 Dec 08:27
Compare
Choose a tag to compare

Changelog v1.2.9

✨Added:

  • Add != and !== operator

🔧Fix:

  • Fix operator : problem in parsing function arguments and condition
  • Fix spacing in condition
  • Fix double = in function argument not triggering error
  • Fix passing function name as argument causing error in the result datapack

🎉Change:

  • Allow warped_fungus_on_a_stick in Item.create's onClick
  • Remove space from FormattedText's result json
  • Remove space from .toString's result json