]> git.lizzy.rs Git - Crafter.git/blob - mods/client_version_checker/init.lua
Bucket Sounds; Warning if clientmod is not installed
[Crafter.git] / mods / client_version_checker / init.lua
1 minetest.register_node("client_version_checker:this_is_the_signature_of_crafter00111010010001000011110000110011",{})
2
3 local client_versions = {}
4 local client_version_channels = {}
5 local client_has_clientmod = {}
6
7 --I needed to add in a dev cycle to adopt for a decimal place error
8 local current_development_cycle = "alpha"
9 local current_version = 0.07000
10
11 minetest.register_on_joinplayer(function(player)
12         local name = player:get_player_name()
13     client_version_channels[name] = minetest.mod_channel_join(name..":client_version_channel")
14     client_has_clientmod[name] = nil
15     minetest.after(3, function()
16                 if not client_has_clientmod[name] then
17                         minetest.chat_send_player(name, minetest.colorize("orange", "It seems like you don't have Crafter client installed."
18                                 .. " You will not be able to use all features of this server without the clientmod."
19                                 .. " Please dowload it here: https://github.com/EliasFleckenstein03/crafter_client"))
20                 else
21                         client_has_clientmod[name] = nil
22                 end
23     end)
24 end)
25
26 minetest.register_on_modchannel_message(function(channel_name, sender, message)
27     local channel_decyphered = channel_name:gsub(sender,"")
28     if channel_decyphered == ":client_version_channel" then
29                 client_has_clientmod[sender] = true
30         local version = tonumber(message)
31         if type(version) ~= "number" then
32             minetest.chat_send_player(sender, minetest.colorize("yellow", "Please do not try to crash the server."))
33             for i = 1,5 do
34                 minetest.log("warning", sender.." tried to crash the server!")
35             end
36         elseif type(version) == "number" then
37             if current_development_cycle == "alpha" and version > 0.0999 then
38                 minetest.chat_send_player(sender, minetest.colorize("yellow", "Please update your client mod."))
39                 minetest.log("warning", sender.." logged in with an outdated client.")
40             elseif version < current_version then
41                 minetest.chat_send_player(sender, minetest.colorize("yellow", "You need to update your clientmod. Your client version: ")..
42                 minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ").. minetest.colorize("white",current_version)..
43                 minetest.colorize("yellow",". The game might not work as intended or crash."))
44                 minetest.log("warning", sender.." logged in with an outdated client.")
45             elseif version > current_version then
46                 minetest.chat_send_player(sender, minetest.colorize("yellow", "Your client mod is new than the server version. Your client version: ")..
47                 minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ")..
48                 minetest.colorize("white",current_version)..minetest.colorize("yellow",". The game might not work as intended or crash."))
49                 minetest.log("warning", sender.." logged in with a client new than the server version.")
50             end
51         end
52     end
53 end)
54