- Fix certificate issue on older Java versions that caused issues with importing (@MisterCheezeCake)
- Fix modules sometimes evaluating twice when imported from different locations
- Fix trigger priorities sometimes not working correctly (@camnwalter)
- Color required modules gray in the
/ct modulesmenu (@NoahTheNerd)
- Completely revamped the
ScoreboardAPI to be more ergonomicScoreis now mutable, and many methods have been added. Check the docs for more info
- Added
PlayerInteractionto provided libs - Added MIT license
- Added CT module list to crash reports
- Added a typings generator that produces a TypeScript definition file for the mod (see attachments)
- Added support for targeting non-Minecraft classes when using mixins
- Added
entityDamageandentityDeathtriggers - Fixed a bunch of misc bugs
- Disallow cancelling
playerInteracttrigger if the action isBreakBlock - Calling
.register()on a trigger more than once will now do nothing TextComponentnow mirrors/tellrawwith respect to click and hover event values
- Console now prints error causes where applicable
- Fix a few more edge cases with
KeyBind - Fix
Shaperendering being offset by the player's position - Completely rewrite
TextComponent- It is now immutable and much more developer-friendly. See the docs for more details
- Removed
Message;TextComponentnow containschat()/actionBar()/chatLineId/etc
- Fix not parsing JS files as UTF-8
- Add a
ToastAPI, which can be used to display toasts (the thing that pops up in the top right when you get an advancement) - Re-add ModMenu support
Update to 1.20.4 and Fabric loader 0.15.3. This version should still work with old Fabric loaders.
- Fix
Renderer.drawCircle()causing crashes - Fix needing to call
Renderer.rotateToCamera/translateToPlayer - Fix
CommandsAPI not converting Java objects to JS values - Fix a bunch of mapping errors
- Fix
Guibuttons not being clickable and add functions to set their text and tooltip - Fix various
KeyBindissues - Fix not being to colorize
Item's rendering - Fix
ChatLib.chat()triggering chat triggers - Fix
/ct fileson MacOS - Fix
TextComponentnot parsing its actions correctly - Add
TextComponent.setColor() - Add ability for
Commandsto redirect to the vanilla MC command dispatcher viaCommands.redirect(Commands.getDispatcherRoot() - Add
Renderer.lineWidth()
- Add 1.20.2 support
- Rhino now treats java.util.Collection objects as JS arrays
- Rhino now convert Java boxed-primitive classes to their JS equivalent primitives (i.e. converting java.lang.String into a JS string instead of a new String())
- Fix Renderer.drawLine() treating newlines incorrectly
- Fix colors not working correctly in Renderer
- Fix Renderer3d.drawString() not showing through walls (also added a parameter to control that behavior)
- Fix Renderer text not scaling properly
- Fix Inventory.getItems() sometimes causing an NPE
- Fix the CT console keybinding getting reset every time the game is launched
- Change the way
serverConnect/serverDisconnect/worldLoad/worldUnloadtrigger with respect to each other. See this commit for more details. - Remove the general console. If you need to see chat messages for criteria, use /ct dump
- Added a new
/ct migratecommand which can handle most incompatibilities when upgrading - Reverted previous merger of
RendererandTessellator, butTessellatorhas been renamed toRenderer3d. It does not necessarily have the same API, as it now holds 3D-only methods. - Fixed a few obscure Mixin issues
- Removed the
parameterNameoption in various Mixin objects, since it will never work outside of a dev environment - Stop converting Java
Collections to JS arrays. This allowsCollectionobjects coming from Java to be modified - Fix
Scoreboard.getLines()returning empty strings- Also made scoreboard functions return
TextComponentinstead ofstring
- Also made scoreboard functions return
- Fix custom KeyBinds not being persistent between game launches and sometimes causing crashes
- Fix
Item.getLore()triggering the Fabric tooltip event - Fix calling
.trigger()on a custom trigger at the top level not working - Fix
messageSentnot propogating the leading/character if the message was a command
- Ensure top-level code runs in a consistent order. If module A requires module B, module B's entry file will be ran before module A's entry file. It is now an enforced error to have circular module requirements.
- Add middle clicks to
CPS - Fixed interface methods not being remapped
- Fixed
Scoreboardnot updating when the scoreboard changes - Fixed a bunch of
Soundissues - Fixed a
ConcurrentModificationExceptionwhen constructing anImage - Fixed console being extremely unreliable
- Fixed
serverConnecttrigger using the wrong trigger class (causing error) as well as firing when joining a single player world
- Added extra parameter to
Image.fromUrlto control the cached image name - Added
FileLib.{encodeBase64,decodeBase64}(@Debuggingss) - Added
Gui.register{Opened,Closed}(@DalwynWasTaken) - Added
Player.isMoving(@realfork) - Added ability to filter the class type using
.setFilteredClass(Class)for the following triggers:renderEntity,postRenderEntity,renderTileEntity,postRenderTileEntity(@Marvinschs) - Added a top-level
NBThelper to make parsing NBT easier (@camnwalter) - Added
KeyBind.{unregisterKeyPress,unregisterKeyRelease,unregisterKeyDown}()(@Marvinschs) - Added
Display.{unregisterClicked,unregisterHovered,unregisterMouseLeave,unregisterDragged}()(@Marvinschs) - Added ability to pass
Class<*>objects which inherit from Forge'sEventclass into the first parameter ofregister. This allows you to register for arbitrary events. - Show module dependencies on the module graph GUI (@camnwalter)
- Fixed step trigger firing a bunch of extra times when registering it after a call to unregister.
- Fixed links in
TextComponentinstances not being clickable (@camnwalter ) - Fixed
ChatLib.saynot triggeringmessageSent(@Debuggingss) - Fixed not being able to
/ct loadafter a/ct unload(@camnwalter) - Fixed not having to manually
/ct loadafter importing a module with a .jar file (@camnwalter)
