* Make computers' redstone input handling consistent with repeaters. Redstone inputs parallel to the computer will now be picked up.
And several bug fixes:
* Fix `turtle.compare*()` crashing the server.
* Fix Cobalt leaking threads when coroutines blocked on Java methods are discarded.
* Fix `rawset` allowing nan keys
* Fix several out-of-bounds exceptions when handling malformed patterns.
# New features in CC: Tweaked 1.82.2
* Don't tie `turtle.refuel`/the `refuel` script's limits to item stack sizes
And several bug fixes:
* Fix changes to Project:Red inputs not being detected.
* Convert non-modem peripherals to multiparts too, fixing crash with Proportional Destruction Particles
* Remove a couple of over-eager error messages
* Fix wired modems not correctly saving their attached peripherals
# New features in CC: Tweaked 1.82.1
* Make redstone updates identical to vanilla behaviour
* Update German translation
# New features in CC: Tweaked 1.82.0
* Warn when `pastebin put` potentially triggers spam protection (Lemmmy)
* Display HTTP errors on pastebin requests (Lemmmy)
* Attach peripherals on the main thread, rather than deferring to the computer thread.
* Computers may now be preemptively interrupted if they run for too long. This reduces the risk of malicious or badly written programs making other computers unusable.
* Reduce overhead of running with a higher number of computer threads.
* Set the initial multishell tab when starting the computer. This fixes the issue where you would not see any content until the first yield.
* Allow running `pastebin get|url` with the URL instead (e.g. `pastebin run https://pastebin.com/LYAxmSby`).
* Make `os.time`/`os.day` case insensitive.
* Add translations for several languages: Brazilian Portuguese (zardyh), Swedish (nothjarnan), Italian (Ale32bit), French(absolument), German (Wilma456), Spanish (daelvn)
* Improve JEI integration for turtle/pocket computer upgrades. You can now see recipes and usages of any upgrade or upgrade combination.
* Associate turtle/pocket computer upgrades with the mod which registered them. For instance, a "Sensing Turtle" will now be labelled as belonging to Plethora.
* Fire `key_up` and `mouse_up` events when closing the GUI.
* Allow limiting the amount of server time computers can consume.
* Add several new events for turtle refuelling and item inspection. Should allow for greater flexibility in add on mods in the future.
* `rednet.send` returns if the message was sent. Restores behaviour present before CC 1.6 (Luca0208)
* Add MCMP integration for wireless and ender modems.
* Make turtle crafting more consistent with vanilla behaviour.
* `commands.getBlockInfo(s)` now also includes NBT.
* Turtles will no longer reset their label when clicked with an unnamed name tag.
And several bug fixes:
* Update Cobalt (fixes `load` not unwind the stack)
* Fix `commands.collapseArgs` appending a trailing space.
* Fix leaking file descriptors when closing (see [this JVM bug!](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8220477))
* Fix NPE on some invalid URLs
* Fix pocket computer API working outside of the player inventory
* Fix printing not updating the output display state.
# New features in CC: Tweaked 1.81.1
* Fix colour.*RGB using 8-bit values, rather than 0-1 floats.
# New features in CC: Tweaked 1.81.0
* Handle connection errors on websockets (Devilholk)
* Make `require` a little more consistent with PUC Lua, passing the required name to modules and improving error messages.
* Track how long each turtle action takes within the profiling tools
* Bump Cobalt version
* Coroutines are no longer backed by threads, reducing overhead of coroutines.
* Maximum stack depth is much larger (2^16 rather than 2^8)
* Stack is no longer unwound when an unhandled error occurs, meaning `debug.traceback` can be used on dead coroutines.
* Reduce jar size by reducing how many extra files we bundle.
* Add `term.nativePaletteColo(u)r` (Lignum)
* Split `colours.rgb8` into `colours.packRGB` and `colours.unpackRGB` (Lignum)
* Printers now only accept paper and ink, rather than any item
* Allow scrolling through the multishell tab bar, when lots of programs are running. (Wilma456)
And several bug fixes:
* Fix modems not being advanced when they should be
* Fix direction of some peripheral blocks not being set
* Strip `\r` from `.readLine` on binary handles.
* Websockets handle pings correctly
* Fix turtle peripherals becoming desynced on chunk unload.
* `/computercraft` table are now truncated correctly.
# New features in CC: Tweaked 1.80pr1.14
* Allow seeking within ROM files.
* Fix not being able to craft upgraded turtles or pocket computers when Astral Sorcery was installed.
* Make several tile entities (modems, cables, and monitors) non-ticking, substantially reducing their overhead,
And several bug fixes:
* Fix cables not rendering the breaking steps
* Try to prevent `/computercraft_copy` showing up in auto-complete.
* Fix several memory leaks and other issues with ROM mounts.
# New features in CC: Tweaked 1.80pr1.13
* `websocket_message` and `.receive` now return whether a message was binary or not.
* `websocket_close` events may contain a status code and reason the socket was closed.
* Enable the `debug` library by default.
* Clean up configuration files, moving various properties into sub-categories.
* Rewrite the HTTP API to use Netty.
* HTTP requests may now redirect from http to https if the server requests it.
* Add config options to limit various parts of the HTTP API:
* Restrict the number of active http requests and websockets.
* Limit the size of HTTP requests and responses.
* Introduce a configurable timeout
* `.getResponseCode` also returns the status text associated with that status code.
And several bug fixes:
* Fix being unable to create resource mounts from individual files.
* Sync computer state using TE data instead.
* Fix `.read` always consuming a multiple of 8192 bytes for binary handles.
# New features in CC: Tweaked 1.80pr1.12
* Using longs inside `.seek` rather than 32 bit integers. This allows you to seek in very large files.
* Move the `/computer` command into the main `/computercraft` command
* Allow copying peripheral names from a wired modem's attach/detach chat message.
And several bug fixes
* Fix `InventoryUtil` ignoring the stack limit when extracting items
* Fix computers not receiving redstone inputs sent through another block.
* Fix JEI responding to key-presses when within a computer or turtle's inventory.
# New features in CC: Tweaked 1.80pr1.11
* Rename all tile entities to have the correct `computercraft:` prefix.
* Fix files not being truncated when opened for a write.
* `.read*` methods no longer fail on malformed unicode. Malformed input is replaced with a fake character.
* Fix numerous issues with wireless modems being attached to wired ones.
* Prevent deadlocks within the wireless modem code.
* Create coroutines using a thread pool, rather than creating a new thread each time. Should make short-lived coroutines (such as iterators) much more performance friendly.
* Create all CC threads under appropriately named thread groups.
# New features in CC: Tweaked 1.80pr1.10
This is just a minor bugfix release to solve some issues with the filesystem rewrite
* Fix computers not loading if resource packs are enabled
* Fix stdin not being recognised as a usable input
* Return an unsigned byte rather than a signed one for no-args `.read()`
# New features in CC: Tweaked 1.80pr1.9
* Add German translation (Vexatos)
* Add `.getCursorBlink` to monitors and terminals.
* Allow sending binary messages with websockets.
* Extend `fs` and `io` APIs
* `io` should now be largely compatible with PUC Lua's implementation (`:read("n")` is not currently supported).
* Binary readable file handles now support `.readLine`
* Binary file handles now support `.seek(whence: string[, position:number])`, taking the same arguments as PUC Lua's method.
And several bug fixes:
* Fix `repeat` program crashing when malformed rednet packets are received (gollark/osmarks)
* Reduce risk of deadlock when calling peripheral methods.
* Fix speakers being unable to play sounds.
# New features in CC: Tweaked 1.80pr1.8
* Bump Cobalt version
* Default to using little endian in string.dump
* Remove propagation of debug hooks to child coroutines
* Allow passing functions to `debug.getlocal`, al-la Lua 5.2
* Add Charset support for bundled cables
* `/computercraft` commands are more generous in allowing computer selectors to fail.
* Remove bytecode loading disabling from bios.lua.
And several bug fixes:
* Fix stack overflow when using `turtle.place` with a full inventory
* Add `.getNameLocal` to wired modems: provides the name that computer is exposed as on the network. This is mostly useful for working with Plethora's transfer locations, though could have other purposes.
* Change turtle block breaking to closer conform to how players break blocks.
* Rewrite rendering of printed pages, allowing them to be held in hand, and placed in item frames.
And several bug fixes:
* Improve formatting of `/computercraft` when run by a non-player.
* Fix pocket computer terminals not updating when being held.
* Fix a couple of minor blemishes in the GUI textures.
* Fix sign text not always being set when placed.
* Cache turtle fakeplayer, hopefully proving some minor performance improvements.
# New features in CC: Tweaked 1.80pr1.6
* Allow network cables to work with compact machines.
* A large number of improvements to the `/computercraft` command, including:
* Ensure the tables are correctly aligned
* Remove the output of the previous invocation of that command when posting to chat.
* `/computercraft track` is now per-user, instead of global.
* We now track additional fields, such as the number of peripheral calls, http requests, etc... You can specify these as an optional argument to `/computercraft track dump` to see them.
* `wget` automatically determines the filename (Luca0208)
* Allow using alternative HTTP request methods (`DELETE`, `PUT`, etc...)
* Enable Gzip compression for websockets.
* Fix monitors not rendering when optifine shaders are enabled. There are still issues (they are tinted orange during the night), but it is an improvement.
And several bug fixes:
* Fix `.isDiskPresent()` always returning true.
* Fix peripherals showing up on wired networks when they shouldn't be.
* Fix `turtle.place()` crashing the server in some esoteric conditions.
* Remove upper bound on the number of characters than can be read with `.read(n: number)`.
* Fix various typos in `keys.lua` (hugeblank)
# New features in CC: Tweaked 1.80pr1.5
* Several additional fixes to monitors, solving several crashes and graphical glitches.
* Add recipes to upgrade computers, turtles and pocket computers.
# New features in CC: Tweaked 1.80pr1.4
* Verify the action can be completed in `copy`, `rename` and `mkdir` commands.
* Add `/rom/modules` so the package path.
* Add `read` to normal file handles - allowing reading a given number of characters.
* Various minor bug fixes.
* Ensure ComputerCraft peripherals are thread-safe. This fixes multiple Lua errors and crashes with modems monitors.
* Add `/computercraft track` command, for monitoring how long computers execute for.
* Add ore dictionary support for recipes.
* Track which player owns a turtle. This allows turtles to play nicely with various claim/grief prevention systems.
* Add config option to disable various turtle actions.
* Add an API for extending wired networks.
* Add full-block wired modems.
* Several minor bug fixes.
# New features in CC: Tweaked 1.80pr1.3
* Add `/computercraft` command, providing various diagnostic tools.
* Make `http.websocket` synchronous and add `http.websocketAsync`.
* Restore binary compatibility for `ILuaAPI`.
# New features in CC: Tweaked 1.80pr1.2
* Fix `term.getTextScale()` not working across multiple monitors.
* Fix computer state not being synced to client when turning on/off.
* Provide an API for registering custom APIs.
* Render turtles called "Dinnerbone" or "Grumm" upside*down.
* Fix `getCollisionBoundingBox` not using all AABBs.
* **Experimental:** Add map-like rendering for pocket computers.
# New features in CC: Tweaked 1.80pr1.1
* Large numbers of bug fixes, stabilisation and hardening.
* Replace LuaJ with Cobalt.
* Allow running multiple computers at the same time.
* Add config option to enable Lua's debug API.
* Add websocket support to HTTP library.
* Add `/computer` command, allowing one to queue events on command computers.
* Fix JEI's handling of various ComputerCraft items.
* Make wired cables act more like multiparts.
* Add turtle and pocket recipes to recipe book.
* Flash pocket computer's light when playing a note.
# New Features in ComputerCraft 1.80pr1:
* Update to Minecraft 1.12.2
* Large number of bug fixes and stabilisation.
* Allow loading bios.lua files from resource packs.
* Fix texture artefacts when rendering monitors.
* Improve HTTP whitelist functionality and add an optional blacklist.
* Add support for completing Lua's self calls (`foo:bar()`).
* Add binary mode to HTTP.
* Use file extensions for ROM files.
* Automatically add `.lua` when editing files, and handle running them in the shell.
* Add require to the shell environment.
* Allow startup to be a directory.
* Add speaker peripheral and corresponding turtle and pocket upgrades.
* Add pocket computer upgrades.
* Allow turtles and pocket computers to be dyed any colour.
* Allow computer and monitors to configure their palette. Also allow normal computer/monitors to use any colour converting it to greyscale.
* Added settings to disable multishell, startup scripts, and tab completion on a per-computer basis. The default values for these settings can be customised in ComputerCraft.cfg
* All Computer and Turtle items except Command Computers can now be mounted in Disk Drives
* `textutils.serialiseJSON()` now takes an optional parameter allowing it to produce JSON text with unquoted object keys. This is used by all autogenerated methods in the `commands` api except for "title" and "tellraw"
* Terminal redirection now no longer uses a stack-based system. Instead: `term.current()` gets the current terminal object and `term.redirect()` replaces it. `term.restore()` has been removed.
* New shell functions: `shell.openTab()`, `shell.switchTab( [number] )`
* New event `term_resize` fired when the size of a terminal changes
* Improved rednet functions: `rednet.send()`, `rednet.broadcast()` and `rednet.receive()`now take optional protocol parameters
* `turtle.craft(0)` and `turtle.refuel(0)` now return true if there is a valid recipe or fuel item, but do not craft of refuel anything
* `turtle.suck( [limit] )` can now be used to limit the number of items picked up
* Users of `turtle.dig()` and `turtle.attack()` can now specify which side of the turtle to look for a tool to use (by default, both will be considered)
* `textutils.serialise( text )` now produces human-readable output
* Fixed a long standing bug where turtles could lose their identify if they travel too far away
* Fixed use of deprecated code, ensuring mod compatibility with the latest versions of Minecraft Forge, and world compatibility with future versions of Minecraft
* Redesigned Wireless Modems; they can now send and receive on multiple channels, independent of the computer ID. To use these features, interface with modem peripherals directly. The rednet API still functions as before
* Floppy Disks can now be dyed with multiple dyes, just like armour
* The send and receive range of wireless modems now increases with altitude, allowing long range networking from high-altitude computers (great for GPS networks)
* Right clicking a Disk Drive with a Floppy Disk or a Record when sneaking will insert the item into the Disk Drive automatically
* The default size of the computer screen has been increased
* Several stability and security fixes. LuaJ can now no longer leave dangling threads when a computer is unloaded, turtles can no longer be destroyed by tree leaves or walking off the edge of the loaded map. Computers no longer crash when used with RedPower frames.