fix crash when achievements are disabled and /awards is being used

This commit fixes  https://git.minetest.land/MineClone2/MineClone2/issues/2164, which crashes the game whenever /awards is called with arguments other than enable
This commit is contained in:
chmodsayshello 2022-05-03 14:58:44 +00:00
parent a27abae045
commit 390802a344

View File

@ -21,9 +21,13 @@ minetest.register_chatcommand("awards", {
description = S("Show, clear, disable or enable your achievements"), description = S("Show, clear, disable or enable your achievements"),
func = function(name, param) func = function(name, param)
if param == "clear" then if param == "clear" then
if awards.player(name).disabled ~= nil then
minetest.chat_send_player(name, S("Awards are disabled, enable them first by using /awards enable!"))
else
awards.clear_player(name) awards.clear_player(name)
minetest.chat_send_player(name, minetest.chat_send_player(name,
S("All your awards and statistics have been cleared. You can now start again.")) S("All your awards and statistics have been cleared. You can now start again."))
end
elseif param == "disable" then elseif param == "disable" then
awards.disable(name) awards.disable(name)
minetest.chat_send_player(name, S("You have disabled your achievements.")) minetest.chat_send_player(name, S("You have disabled your achievements."))
@ -31,11 +35,19 @@ minetest.register_chatcommand("awards", {
awards.enable(name) awards.enable(name)
minetest.chat_send_player(name, S("You have enabled your achievements.")) minetest.chat_send_player(name, S("You have enabled your achievements."))
elseif param == "c" then elseif param == "c" then
if awards.player(name).disabled ~= nil then
minetest.chat_send_player(name, S("Awards are disabled, enable them first by using /awards enable!"))
else
awards.show_to(name, name, nil, true) awards.show_to(name, name, nil, true)
end
else
if awards.player(name).disabled ~= nil then
minetest.chat_send_player(name, S("Awards are disabled, enable them first by using /awards enable!"))
else else
awards.show_to(name, name, nil, false) awards.show_to(name, name, nil, false)
end end
end end
end
}) })
minetest.register_privilege("achievements", { minetest.register_privilege("achievements", {