local client_versions = {}
local client_version_channels = {}
-local current_version = 0.05004
-
-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
+--I needed to add in a dev cycle to adopt for a decimal place error
+local current_development_cycle = "alpha"
+local current_version = 0.05005
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(3,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
+ local version = tonumber(message)
+ if type(version) ~= "number" then
+ minetest.chat_send_player(sender, minetest.colorize("yellow", "Please do not try to crash the server."))
+ for i = 1,5 do
+ minetest.log("warning", sender.." tried to crash the server!")
+ end
+ elseif type(version) == "number" then
+ if current_development_cycle == "alpha" and version > 0.0999 then
+ minetest.chat_send_player(sender, minetest.colorize("yellow", "Please update your client mod."))
+ minetest.log("warning", sender.." logged in with an outdated client.")
+ elseif version < current_version then
+ minetest.chat_send_player(sender, minetest.colorize("yellow", "You need to update your clientmod. Your client version: ")..
+ minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ").. minetest.colorize("white",current_version)..
+ minetest.colorize("yellow",". The game might not work as intended or crash."))
+ minetest.log("warning", sender.." logged in with an outdated client.")
+ elseif version > current_version then
+ minetest.chat_send_player(sender, minetest.colorize("yellow", "Your client mod is new than the server version. Your client version: ")..
+ minetest.colorize("white",version)..minetest.colorize("yellow",". Current server version: ")..
+ minetest.colorize("white",current_version)..minetest.colorize("yellow",". The game might not work as intended or crash."))
+ minetest.log("warning", sender.." logged in with a client new than the server version.")
+ end
+ end
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")
-]]--