]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/cilent_version_checker/init.lua
Add client and server version checking
[Crafter.git] / mods / cilent_version_checker / init.lua
diff --git a/mods/cilent_version_checker/init.lua b/mods/cilent_version_checker/init.lua
new file mode 100644 (file)
index 0000000..7164493
--- /dev/null
@@ -0,0 +1,39 @@
+local client_versions = {}
+local client_version_channels = {}
+
+local current_version = 0.05000
+
+local function do_version_check(player)
+    local name = player:get_player_name()
+    local version = client_versions[name] or 0
+    if version then
+        local testversion = tonumber(version)
+        if type(testversion) == "number" then
+            version = testversion
+        else
+            version = 0
+        end
+    end
+    if version < current_version then
+        minetest.chat_send_player(name, minetest.colorize("yellow", "You need to update your clientmod. Current version: "..version..". The game might not work as intended."))
+    end
+end
+
+minetest.register_on_joinplayer(function(player)
+       local name = player:get_player_name()
+    client_version_channels[name] = minetest.mod_channel_join(name..":client_version_channel")
+    minetest.after(5,function()
+        do_version_check(player)
+    end)
+end)
+
+minetest.register_on_modchannel_message(function(channel_name, sender, message)
+    local channel_decyphered = channel_name:gsub(sender,"")
+    if channel_decyphered == ":client_version_channel" then
+        client_versions[sender] = message
+    end
+end)
+
+local server_version = minetest.get_version()
+assert((server_version["string"] == "5.3.0-dev"),"\nThis is designed for the latest version of Minetest, please update to 5.3.0-DEV")
+