SquidDev
585c769c2a
Restructure the HTTP API
...
- Adds support for blacklisting domains
- Adds support for blacklisting & whitelisting IP addresses and
IP ranges.
- Reuse threads for HTTP requests
AddressPredicate will parse a series of patterns and convert them into
regexes or CIDR ranges. When checking whether an address is accessible,
we first ensure the domain is whitelisted and isn't blacklisted.
If everything is OK, then we start create a new thread for the HTTP
request and resolve the IP, ensuring that is whitelisted & not
blacklisted. Then the normal HTTP request is continued.
However, http.checkURL also needs to resolve the IP address. In order to
avoid blocking the Lua thread, this method will return instantly and
create a new thread which will queue an event.
As both http.request and http.checkURL are now creating threads and
queuing events, some logic is abstracted into a separate HTTPTask class
- this allows us to share the thread creation, finishing and cancelling
logic.
2017-06-12 19:22:02 +01:00
SquidDev
fac625173a
Use Lua style error messages in the rom files
...
This makes it mostly consistent with the Java APIs, and makes debugging
significantly easier.
2017-06-12 10:54:44 +01:00
SquidDev
bffc3c18cc
Rewrite argument validation
...
This uses a new utility class ArgumentHelper, which provides convenience
methods for parsing arguments from an array of Objects.
The format of error messages has also changed. It now follows a format
similar to Lua's native error messages - including the invalid argument
index, the expected type and the type actually received.
2017-06-12 10:28:31 +01:00
Wilma456
9e9df37c40
Add autocompletion to exec
2017-06-07 16:51:23 +02:00
Daniel Ratcliffe
0f982e6199
Merge pull request #303 from Wojbie/Window-api-fix
...
Fix to setPaletteColour in rgb8 mode.
2017-06-04 13:58:40 +01:00
Daniel Ratcliffe
4f3be7963e
Merge pull request #304 from Wilma456/windowcheck
...
Add checks to window API
2017-06-04 13:57:51 +01:00
Wojbie
60e9ce1b68
Fix to redirection game.
...
Was not testing for correct file type. Game ended after first lvl cause it was looking from wrong name of file.
2017-06-04 14:51:49 +02:00
Wilma456
c9bf463419
Add checks to window API
2017-06-04 12:34:40 +02:00
Wojbie
a90e2a8bfd
Fix to setPaletteColour in rgb8 mode.
...
Was not saving color if called using rgb8 mode.
2017-06-04 11:59:30 +02:00
Daniel Ratcliffe
3828750ade
Merge pull request #302 from Wojbie/Wget-binary-mode
...
Switch wget to use binary mode.
2017-06-03 21:32:45 +01:00
Wilma456
fd842be37f
Remove second fix
2017-06-03 16:30:35 +02:00
Wojbie
0cc65adff9
Switch wget to use binary mode.
...
Allows wget to download all types of files not only text ones.
2017-06-03 13:19:57 +02:00
Wilma456
d6e4323f17
Fix Bug with term.setCursorPos
...
I fixed 2 Bugs:
1. If you call this function, without 2 numbers, you get a error in the window API and not in your Program
2. If you call, this function with 2 numbers lower then 1 (e.g. term.setCursorPos(0,0) ), CraftOS will hang forever and need to press Ctrl+R or rejoin the world.
2017-06-02 17:35:18 +02:00
SquidDev
255dc925fb
Fire Forge events where appropriate
...
- BlockEvent.BreakEvent and BlockEvent.HarvestDropsEvent are fired when
digging.
- AttackEntityEvent is fired when attacking.
- Various PlayerInteractEvent.* events are fired when placing.
Closes #103 , closes #100
2017-05-31 12:41:31 +01:00
Daniel Ratcliffe
114c49e3f6
Merge pull request #291 from Wilma456/apis
...
Add multishell to apis program
2017-05-29 16:57:42 +01:00
Lignum
44c67796b8
Fix generic-related compiler warning
2017-05-29 17:35:41 +02:00
Wilma456
9770f103ed
Add multishell to apis program
2017-05-29 15:55:45 +02:00
Wilma456
07ae332c24
Add fileextension for Paint ( #260 )
...
* Add fileextension for Paint
* Change extension to .nfp
* Add setting
2017-05-29 14:05:19 +01:00
Wilma456
99b5534099
Add setting for .lua extension ( #278 )
...
* Add setting for .lua extension
* Feedback from SquidDev
* Feedback from dan200
* All requested changes are done
* Better description
* Cleaner check
2017-05-29 13:21:27 +01:00
Wojbie
47f470910e
Fix to getPalletteColour
...
Done as @dan200 specified in #287 . Closes #287 .
2017-05-28 14:08:15 +02:00
Daniel Ratcliffe
9f35d2a2b7
Merge pull request #282 from apemanzilla/contributors_task
...
Dynamically generate contributors list
2017-05-28 12:06:12 +01:00
Daniel Ratcliffe
7b182e32b8
Update credits.txt
2017-05-28 12:03:23 +01:00
MineRobber___T
3d9d54beef
Update credits.txt
...
Add url of github repo to credits.
2017-05-25 10:15:01 -04:00
apemanzilla
51b9f3ca3b
Use template instead of separate task
2017-05-24 13:20:46 -04:00
apemanzilla
5ff3ae6434
Add Gradle task to generate contributor list
2017-05-24 12:35:41 -04:00
Daniel Ratcliffe
e66f0d7033
Merge pull request #268 from Wilma456/credits
...
Add Contributors to credits.txt
2017-05-24 13:21:52 +01:00
Nephi (AKA Lupus590)
5f2446009d
mass file rename, left some files...
...
... as they are levels for nitrogenfingers goldrunner
2017-05-22 21:34:49 +01:00
Wilma456
19fc491532
Remove Ingamename and sort alphabetical
2017-05-22 17:18:11 +02:00
Lignum
0a2cb7442d
Merge branch 'master' into fix-speakers
2017-05-20 13:23:12 +02:00
Daniel Ratcliffe
d86aa50bec
Merge pull request #267 from SquidDev-CC/feature/tutle-tool-changes
...
Shovel upgrade converts grass to path blocks
2017-05-20 12:16:47 +01:00
Wilma456
df2fe7c445
Add Contributors to credits.txt
2017-05-20 13:13:08 +02:00
Daniel Ratcliffe
6c85ca071f
Merge pull request #266 from Wilma456/leveldat
...
Add .dat extension to all redirection levels
2017-05-20 11:57:26 +01:00
Wilma456
b31518cfb5
Add .dat extension to all redirection levels
2017-05-20 12:51:01 +02:00
Wilma456
e8ecf5dcd5
Add .txt extension to all help files
2017-05-20 12:20:27 +02:00
Lignum
163c1db6be
Fix some if statements
2017-05-19 23:37:02 +02:00
Lignum
c8697d9158
nTicks -> nPitch in speaker help file
...
Not sure why this was called nTicks, but it had nothing to do with ticks.
2017-05-19 20:27:08 +02:00
Lignum
c2af482615
Format TileSpeaker and TurtleSpeaker
2017-05-19 20:25:08 +02:00
Lignum
a402fc9093
Format SpeakerPeripheral correctly
2017-05-19 20:20:51 +02:00
Lignum
387fc13322
Pocket Computer upgrde -> Pocket Computer upgrade
2017-05-19 19:19:29 +02:00
Lignum
b30191638f
Ensure the existence, not existance
2017-05-19 19:17:23 +02:00
Lignum
95991694e0
Load modules, not modiles
2017-05-19 19:16:50 +02:00
Daniel Ratcliffe
9b6d335c5d
small fix
2017-05-19 14:13:08 +01:00
SquidDev
971c719a9f
Add some sanity checks to Palette.readFromNBT
...
Printers use a Terminal to store the page currently being printed.
Printers saved in an older version of ComputerCraft would be missing the
term_palette field, resulting in an NPE when loading the tile.
2017-05-19 11:47:27 +01:00
Daniel Ratcliffe
f3c291cb4d
Merge pull request #205 from SquidDev-CC/feature/packet-network-api
...
Expose wireless network in the public API
2017-05-18 23:57:44 +01:00
SquidDev
d76ce22db7
Split transmit into two separate methods
...
This removes the interdimensional and range options from the packet
and ensures they are provides them from the transmit* methods instead.
2017-05-18 23:50:14 +01:00
Wojbie
af07a78f76
Speaker rage limit
...
Limit max volume of speaker to volume of normal noteblock.
2017-05-18 23:12:55 +02:00
SquidDev
d19bc53cb4
Include standard Lua libraries in package.loaded
...
PUC Lua includes all builtin libraries in the package.loaded table.
2017-05-18 00:15:21 +01:00
Daniel Ratcliffe
61b2ed36a9
Reworked how shell creates environments. Implemented require
...
"shell" now runs each program in a new lua environment, instead of
sharing that lua environment between all programs launched under a one
shell. Said environment now includes an implemenation of "require" and
the "package" API, so that programs can require modules into that
environment.
This means that programs can require in libraries without polluting the
global namespace, and without breaking the virtual computer model, as
each program has it's own set of requires, which are discarded when the
program ends.
2017-05-17 23:43:44 +01:00
Daniel Ratcliffe
4fb93853ce
Running "edit foo" will now create "foo.lua" if "foo" does not exist
2017-05-17 22:47:39 +01:00
Daniel Ratcliffe
6e6b8e7eef
Made os.loadAPI handle .lua files. Renamed all builtin APIs to .lua
2017-05-17 22:47:13 +01:00
Daniel Ratcliffe
50a4a961e5
Pressing tab in "edit" now inserts 4 spaces instead of 2, backspace now deletes them
2017-05-17 19:48:27 +01:00
Daniel Ratcliffe
f5edb32be9
Replaced tabs with spaces in all lua files
2017-05-17 19:48:27 +01:00
SquidDev
5cf581e6c9
Fix files not writing data when closed
...
As the raw stream was being provided to the parent class, buffered data
was not written, resulting in empty files. This ensures the buffered
reader/writer is the one which is closed.
2017-05-17 19:25:13 +01:00
Daniel Ratcliffe
05e838ca5a
Strip ".lua" from program names in multishell title bar
2017-05-17 19:05:45 +01:00
Wilma456
1d905963e9
Add .lua extension to all programs and startup
2017-05-17 16:28:43 +02:00
SquidDev
12e61efd76
Fixes speakers playing incorrect sounds on the server
...
As a new SoundEvent was being created each time, the actual sound was
not in the registry, resulting in the sound -> id mapping yielding
incorrect values.
2017-05-17 08:00:14 +01:00
Daniel Ratcliffe
0a350077e9
Updated turtle speaker texture to match the style of the other turtle peripherals
2017-05-16 23:59:35 +01:00
Daniel Ratcliffe
19c8613dea
Better shell.programs() fix
...
Prevents duplicate entries
2017-05-16 23:34:53 +01:00
Daniel Ratcliffe
fb00698557
Merge pull request #239 from Wilma456/shellprog
...
Make shell.programs filter .lua extension
2017-05-16 23:00:14 +01:00
Daniel Ratcliffe
3d1eb830c7
Saner extension check
2017-05-16 22:59:39 +01:00
Daniel Ratcliffe
2bc72a883f
Merge pull request #228 from Lignum/startup-dir
...
Startup directories
2017-05-16 22:56:00 +01:00
Cruor
cd2a51f816
Updated text... again...
2017-05-16 23:39:48 +02:00
Cruor
8b7c769ff9
Update speakers
2017-05-16 23:33:09 +02:00
Cruor
4101cb2dfb
Added help file for speakers
...
Added help file for speakers
2017-05-16 23:30:53 +02:00
Lignum
03794970ba
Merge master into startup-dir
2017-05-16 23:25:54 +02:00
Lignum
9d0afe9e18
Mention startup directories in whatsnew and changelog
...
Also makes the line endings in these files consistent to be LF only.
2017-05-16 23:22:34 +02:00
SquidDev
b5e75a86c8
Remove AT for Block.createStackedBlock
...
Access transformers do not propagate to sub classes, and so the access
transformer did not work here. Reverting to reflection fixes this issue.
2017-05-16 21:19:36 +01:00
Lignum
00943163c8
Replace type check with nil check
2017-05-16 21:53:50 +02:00
Lignum
eb9b7f3b8c
Ignore dirs inside startup directories
2017-05-16 21:50:35 +02:00
Daniel Ratcliffe
ba4b1e21fe
Merge pull request #238 from SquidDev-CC/feature/binary-handles
...
Refactor the filesystem and HTTP code
2017-05-16 20:02:34 +01:00
Daniel Ratcliffe
cd85a03429
Merge pull request #237 from Restioson/feature/speaker
...
[Peripheral] Speaker
2017-05-16 19:52:10 +01:00
Restioson
0113e7229f
Added speaker to whatsnew
2017-05-16 20:44:34 +02:00
Restioson
7e556acebc
Added Speaker to Changelog
2017-05-16 20:42:16 +02:00
Daniel Ratcliffe
aa8455e0b1
Merge pull request #245 from Wilma456/settings
...
Update Settings Help
2017-05-16 19:39:34 +01:00
Daniel Ratcliffe
2e22ca4ccf
Merge pull request #217 from SquidDev-CC/feature/logging
...
Add a basic logging system
2017-05-16 19:38:03 +01:00
Wilma456
68f4611abc
Add Default Settings
2017-05-16 20:35:46 +02:00
SquidDev
0e1135ed97
Disable peripheral logging by default
2017-05-16 19:35:07 +01:00
Daniel Ratcliffe
ebbdd29bd6
Merge pull request #243 from SquidDev-CC/feature/access-transformer
...
Replace reflection with access transformers
2017-05-16 19:25:10 +01:00
Daniel Ratcliffe
8c4331d15a
Added checks to window.setTextColor and window.setBackgroundColor
2017-05-16 19:23:08 +01:00
Restioson
4df4b91d09
Converted (!x == y) to x != y
2017-05-16 20:02:59 +02:00
Restioson
b28c565665
(Hopefully) addressed @dan200's concerns
...
Push your fix to thread safety if this doesn't cut it
2017-05-16 19:48:38 +02:00
SquidDev
efb0065ebd
Add config option to disable certain error messages
2017-05-16 15:59:09 +01:00
SquidDev
a0b6cbb671
Remove ILogger facade
...
Just use global Log4j logger on the ComputerCraft class.
2017-05-16 15:49:55 +01:00
SquidDev
44ba4069c1
Print stack traces/add logging messages in several places
...
This will hopefully make it easier to track down various issues which
might otherwise go unnoticed or provide little information.
The main areas modified are those that external APIs may provide values
for or interact with: various providers and ILuaObject/IPeripheral
implementations. However, we do also log in a couple of other places
which indicate a problem with this, or another, mod.
2017-05-16 15:49:55 +01:00
SquidDev
bdc438fc62
Add a basic logging system
...
This adds a common ILogger interface and two built-in loggers - one
which prints to stdout, the other using a Log4J logger. These are split
up as not to cause dependency issues for emulators.
The stdout logger is enabled by default, but the ComputerCraft mod class
will swap over to using FML's mod specific logger, which provides a more
consistent look with the rest of Minecraft.
2017-05-16 15:49:55 +01:00
Restioson
b3c49db761
Made Speaker threadsafe & fix warnings
2017-05-15 17:42:29 +02:00
Restioson
7ff4631a9f
@gegy1000 strikes again
2017-05-15 17:42:29 +02:00
Restioson
aad81bead7
Fix style
...
@gegy1000 don't say *I* get distracted
2017-05-15 17:42:29 +02:00
Restioson
88b55934c7
Fix castException
2017-05-15 17:42:29 +02:00
Restioson
42962dcd48
Fix Noisy turtles not in creative - Thanks @SquidDev
2017-05-15 17:42:29 +02:00
Restioson
093d2ea89f
Added PocketSpeaker & corrected blockmodel for turtle speaker
2017-05-15 17:42:29 +02:00
Restioson
97a6679510
Dammit, I hope my git history works now!
2017-05-15 17:38:50 +02:00
Restioson
a3b0e4e993
Added speaker as turtle peripheral
2017-05-15 17:38:50 +02:00
Restioson
3bf15a3798
Added speaker model - potentially glitched
2017-05-15 17:38:50 +02:00
Restioson
dc96f2121a
Fix Speaker not playing sounds on break and replace for entire Lua session
2017-05-15 17:38:50 +02:00
Restioson
2899246dbc
Fix speaker peripheral API
2017-05-15 17:38:50 +02:00
gegy1000
2444245b80
Speaker rendering and name
2017-05-15 17:38:50 +02:00
Restioson
a748d0167b
Fixed Speaker being recognized as Disk Drive. Massive thanks to @SquidDev
2017-05-15 17:38:50 +02:00
Restioson
6cf1801f7e
Changed method names to camelCaser
2017-05-15 17:38:50 +02:00
Restioson
61c08afc7f
Implemented speaker. It's broken though - thinks it's a Disk Drive
...
~~Damn Tile Entities these days, always with their identity crises~~
2017-05-15 17:38:50 +02:00