]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Add core.mkdir
authorShadowNinja <shadowninja@minetest.net>
Tue, 9 Sep 2014 19:17:01 +0000 (15:17 -0400)
committerShadowNinja <shadowninja@minetest.net>
Sat, 16 May 2015 22:32:37 +0000 (18:32 -0400)
doc/lua_api.txt
src/script/lua_api/l_util.cpp
src/script/lua_api/l_util.h

index 2421af069e7a5b7a48d4f59a7cb699fcdb14d711..c82208286c2c576dc7252d4802a66babd7bce2ed 100644 (file)
@@ -1674,36 +1674,36 @@ Helper functions
     * Useful for storing custom data
 * `minetest.is_singleplayer()`
 * `minetest.features`
-    * table containing API feature flags: `{foo=true, bar=true}`
+    * Table containing API feature flags: `{foo=true, bar=true}`
 * `minetest.has_feature(arg)`: returns `boolean, missing_features`
     * `arg`: string or table in format `{foo=true, bar=true}`
     * `missing_features`: `{foo=true, bar=true}`
-* `minetest.get_player_information(playername)`
-    * table containing information about player peer.
-
-Example of `minetest.get_player_information` return value:
-
-    {
-        address = "127.0.0.1",     -- IP address of client
-        ip_version = 4,            -- IPv4 / IPv6
-        min_rtt = 0.01,            -- minimum round trip time
-        max_rtt = 0.2,             -- maximum round trip time
-        avg_rtt = 0.02,            -- average round trip time
-        min_jitter = 0.01,         -- minimum packet time jitter
-        max_jitter = 0.5,          -- maximum packet time jitter
-        avg_jitter = 0.03,         -- average packet time jitter
-        connection_uptime = 200,   -- seconds since client connected
-
-        -- following information is available on debug build only!!!
-        -- DO NOT USE IN MODS
-        --ser_vers = 26,             -- serialization version used by client
-        --prot_vers = 23,            -- protocol version used by client
-        --major = 0,                 -- major version number
-        --minor = 4,                 -- minor version number
-        --patch = 10,                -- patch version number
-        --vers_string = "0.4.9-git", -- full version string
-        --state = "Active"           -- current client state
-    }
+* `minetest.get_player_information(player_name)`: returns a table containing
+  information about player. Example return value:
+        {
+            address = "127.0.0.1",     -- IP address of client
+            ip_version = 4,            -- IPv4 / IPv6
+            min_rtt = 0.01,            -- minimum round trip time
+            max_rtt = 0.2,             -- maximum round trip time
+            avg_rtt = 0.02,            -- average round trip time
+            min_jitter = 0.01,         -- minimum packet time jitter
+            max_jitter = 0.5,          -- maximum packet time jitter
+            avg_jitter = 0.03,         -- average packet time jitter
+            connection_uptime = 200,   -- seconds since client connected
+    
+            -- following information is available on debug build only!!!
+            -- DO NOT USE IN MODS
+            --ser_vers = 26,             -- serialization version used by client
+            --prot_vers = 23,            -- protocol version used by client
+            --major = 0,                 -- major version number
+            --minor = 4,                 -- minor version number
+            --patch = 10,                -- patch version number
+            --vers_string = "0.4.9-git", -- full version string
+            --state = "Active"           -- current client state
+        }
+* `minetest.mkdir(path)`: returns success.
+    * Creates a directory specified by `path`, creating parent directories
+      if they don't exist.
 
 ### Logging
 * `minetest.debug(line)`
@@ -2282,11 +2282,8 @@ These functions return the leftover itemstack.
           the floor or ceiling
         * The first four options are mutually-exclusive; the last in the list takes
           precedence over the first.
-
-
-
 * `minetest.rotate_node(itemstack, placer, pointed_thing)`
-     * calls `rotate_and_place()` with infinitestacks set according to the state of
+    * calls `rotate_and_place()` with infinitestacks set according to the state of
        the creative mode setting, and checks for "sneak" to set the `invert_wall`
        parameter.
 
@@ -2306,7 +2303,7 @@ minetest.global_exists(name)
     * Any function in the minetest namespace can be called using the syntax
      `minetest.env:somefunction(somearguments)`
      instead of `minetest.somefunction(somearguments)`
-   * Deprecated, but support is not to be dropped soon
+    * Deprecated, but support is not to be dropped soon
 
 ### Global tables
 * `minetest.registered_items`
index 151d449d5476ee222723720985930434f18cb38f..e16b6feab2419c426a1fb083bc96f055d5101730 100644 (file)
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "cpp_api/s_async.h"
 #include "serialization.h"
 #include "json/json.h"
+#include "cpp_api/s_security.h"
 #include "debug.h"
 #include "porting.h"
 #include "log.h"
@@ -327,6 +328,17 @@ int ModApiUtil::l_decompress(lua_State *L)
        return 1;
 }
 
+// mkdir(path)
+int ModApiUtil::l_mkdir(lua_State *L)
+{
+       NO_MAP_LOCK_REQUIRED;
+       const char *path = luaL_checkstring(L, 1);
+       CHECK_SECURE_PATH_OPTIONAL(L, path);
+       lua_pushboolean(L, fs::CreateAllDirs(path));
+       return 1;
+}
+
+
 void ModApiUtil::Initialize(lua_State *L, int top)
 {
        API_FCT(debug);
@@ -352,6 +364,8 @@ void ModApiUtil::Initialize(lua_State *L, int top)
 
        API_FCT(compress);
        API_FCT(decompress);
+
+       API_FCT(mkdir);
 }
 
 void ModApiUtil::InitializeAsync(AsyncEngine& engine)
@@ -374,5 +388,7 @@ void ModApiUtil::InitializeAsync(AsyncEngine& engine)
 
        ASYNC_API_FCT(compress);
        ASYNC_API_FCT(decompress);
+
+       ASYNC_API_FCT(mkdir);
 }
 
index e824323815430b300e79d602be8eb4c6a0460232..bf7cd71d3807d07bcae3c26e968b86f3f91c4cee 100644 (file)
@@ -78,7 +78,7 @@ class ModApiUtil : public ModApiBase {
        // is_yes(arg)
        static int l_is_yes(lua_State *L);
 
-       // get_scriptdir()
+       // get_builtin_path()
        static int l_get_builtin_path(lua_State *L);
 
        // compress(data, method, ...)
@@ -87,6 +87,9 @@ class ModApiUtil : public ModApiBase {
        // decompress(data, method, ...)
        static int l_decompress(lua_State *L);
 
+       // mkdir(path)
+       static int l_mkdir(lua_State *L);
+
 public:
        static void Initialize(lua_State *L, int top);