Runtime Strictness for Luanti Mods
- Lua 100%
| .luacheckrc | A strictness mod is born | |
| init.lua | A strictness mod is born | |
| License.txt | A strictness mod is born | |
| lua.lua |
math.random(a, b): Assert a <= b
|
|
| minetest.lua | Fix broken set_sky warning | |
| mod.conf | Get rid of broken name hack | |
| Readme.md | Clarify that only string indexing misses error | |
| settingtypes.txt | A strictness mod is born | |
Strictest
Runtime Strictness for Minetest Mods
Strictest consists of two components:
- Lua strictness:
- Disallows string indexing misses:
("...").somethingwill throw an error if there is nostring.somethingto prevent accidental use of strings where tables are expected - Disables string - number coercion where possible
- Disallows string indexing misses:
- Minetest strictness: Disallows usage of deprecated APIs & using entity-only or player-only methods on the wrong type of object.
Particularly useful when writing new mods that don't target older Minetest versions.
Configuration
strictest.action can be set to either error or log:
error: Immediately throw an error on strictness violations.log: Merely log the error (including a stacktrace).
Potentially partially redundant with the deprecated_lua_api_handling setting.
Usage
Install & enable strictest, then make sure to optionally depend on it in mod.conf.
Note that runtime strictness always comes at a cost. Running strictest on production servers under heavy load is thus not advisable.
Links: GitHub, ContentDB, Minetest Forums
License: Written by Lars Müller and licensed under the MIT license.