From 35afcb8d2b1774a27e6d87cdf416daabd22eb162 Mon Sep 17 00:00:00 2001 From: DarkGod <darkgod@net-core.org> Date: Wed, 12 Apr 2017 20:30:45 +0200 Subject: [PATCH] safety --- game/engines/default/engine/Savefile.lua | 15 ++++++++++----- .../engines/default/engine/dialogs/ChatFilter.lua | 1 + game/modules/tome/class/UserChatExtension.lua | 2 ++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/game/engines/default/engine/Savefile.lua b/game/engines/default/engine/Savefile.lua index c6907fccc5..b30a5893e9 100644 --- a/game/engines/default/engine/Savefile.lua +++ b/game/engines/default/engine/Savefile.lua @@ -698,17 +698,22 @@ function _M:loadEntity(name) local loadedEntity = self:loadReal("main") -- Delay loaded must run - for i, o in ipairs(self.delayLoad) do --- print("loader executed for class", o, o.__CLASSNAME) - o:loaded() - end + local ok = false + pcall(function() + for i, o in ipairs(self.delayLoad) do +-- print("loader executed for class", o, o.__CLASSNAME) + o:loaded() + end + ok = true + end) -- We check for the server return, while we loaded the save it probably responded so we do not wait at all - if not checker() then self:badMD5Load() end + if ok and not checker() then self:badMD5Load() end popup:done() fs.umount(path) + if not ok then return false end return loadedEntity end diff --git a/game/engines/default/engine/dialogs/ChatFilter.lua b/game/engines/default/engine/dialogs/ChatFilter.lua index ae60fc0175..be5d77615b 100644 --- a/game/engines/default/engine/dialogs/ChatFilter.lua +++ b/game/engines/default/engine/dialogs/ChatFilter.lua @@ -38,6 +38,7 @@ function _M:init(adds) {name = "Other achievements", kind = "achievement_other"}, } for i, l in ipairs(adds or {}) do list[#list+1] = l end + self:triggerHook{"ChatFilters:list", list=list} local c_desc = Textzone.new{width=self.iw - 10, height=1, auto_height=true, text="Select which types of chat events to see or not."} local uis = { {left=0, top=0, ui=c_desc} } diff --git a/game/modules/tome/class/UserChatExtension.lua b/game/modules/tome/class/UserChatExtension.lua index 94d93117c3..0c743eab64 100644 --- a/game/modules/tome/class/UserChatExtension.lua +++ b/game/modules/tome/class/UserChatExtension.lua @@ -75,6 +75,8 @@ function _M:event(e) self.chat:addMessage("link", e.channel, e.login, {e.name, color}, "#ANTIQUE_WHITE#has linked a creature: #WHITE# "..data.name, {mode="tooltip", tooltip=data.desc}) elseif data.kind == "killer-link" then self.chat:addMessage("death", e.channel, e.login, {e.name, color}, "#CRIMSON#"..data.msg.."#WHITE#", data.desc and {mode="tooltip", tooltip=data.desc} or nil) + else + self:triggerHook{"UserChat:event", color=color, e=e, data=data} end end end -- GitLab