]> git.lizzy.rs Git - Crafter.git/blob - mods/cilent_version_checker/init.lua
76e3dc9446db6b3330c8734c0f473d4c24a4691c
[Crafter.git] / mods / cilent_version_checker / init.lua
1 local client_versions = {}
2 local client_version_channels = {}
3
4 --I needed to add in a dev cycle to adopt for a decimal place error
5 local current_development_cycle = "alpha"
6 local current_version = 0.05005
7
8 minetest.register_on_joinplayer(function(player)
9         local name = player:get_player_name()
10     client_version_channels[name] = minetest.mod_channel_join(name..":client_version_channel")
11 end)
12
13 minetest.register_on_modchannel_message(function(channel_name, sender, message)
14     local channel_decyphered = channel_name:gsub(sender,"")
15     if channel_decyphered == ":client_version_channel" then
16         local version = tonumber(message)
17         if type(version) ~= "number" then
18             minetest.chat_send_player(sender, minetest.colorize("yellow", "Please do not try to crash the server."))
19             for i = 1,5 do
20                 minetest.log("warning", sender.." tried to crash the server!")
21             end
22         elseif type(version) == "number" then
23             if current_development_cycle == "alpha" and version > 0.0999 then
24                 minetest.chat_send_player(sender, minetest.colorize("yellow", "Please update your client mod."))
25                 minetest.log("warning", sender.." logged in with an outdated client.")
26             elseif version < current_version then
27                 minetest.chat_send_player(sender, minetest.colorize("yellow", "You need to update your clientmod. Your client version: ")..
28                 minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ").. minetest.colorize("white",current_version)..
29                 minetest.colorize("yellow",". The game might not work as intended or crash."))
30                 minetest.log("warning", sender.." logged in with an outdated client.")
31             elseif version > current_version then
32                 minetest.chat_send_player(sender, minetest.colorize("yellow", "Your client mod is new than the server version. Your client version: ")..
33                 minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ")..
34                 minetest.colorize("white",current_version)..minetest.colorize("yellow",". The game might not work as intended or crash."))
35                 minetest.log("warning", sender.." logged in with a client new than the server version.")
36             end
37         end
38     end
39 end)
40