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 committed by cora
parent 53cf4fc6be
commit 0722f5b84f
1 changed files with 17 additions and 5 deletions

View File

@ -21,9 +21,13 @@ minetest.register_chatcommand("awards", {
description = S("Show, clear, disable or enable your achievements"),
func = function(name, param)
if param == "clear" then
awards.clear_player(name)
minetest.chat_send_player(name,
S("All your awards and statistics have been cleared. You can now start again."))
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)
minetest.chat_send_player(name,
S("All your awards and statistics have been cleared. You can now start again."))
end
elseif param == "disable" then
awards.disable(name)
minetest.chat_send_player(name, S("You have disabled your achievements."))
@ -31,9 +35,17 @@ minetest.register_chatcommand("awards", {
awards.enable(name)
minetest.chat_send_player(name, S("You have enabled your achievements."))
elseif param == "c" then
awards.show_to(name, name, nil, true)
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)
end
else
awards.show_to(name, name, nil, false)
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, false)
end
end
end
})