Posted by
| Nick Gammon
Australia (22,973 posts) bio
Forum Administrator |
Message
| Good idea (I think). I have made a few more improvements too, as follows:
function do_plugin_check_now (id, name)
local me
local location
-- allow for being called from main world script
if GetPluginID () == "" then
me = "world script"
location = GetInfo (60)
else
me = GetPluginName () .. " plugin"
location = GetPluginInfo(GetPluginID (), 20)
end -- if
-- first check if installed
if not IsPluginInstalled (id) then
ColourNote ("white", "green", "Plugin '" .. name .. "' not installed. Attempting to install it...")
LoadPlugin (location .. name .. ".xml")
if IsPluginInstalled (id) then
ColourNote ("white", "green", "Success!")
else
ColourNote ("white", "red", string.rep ("-", 80))
ColourNote ("white", "red", "Plugin '" .. name .. "' not installed. Please download and install it.")
ColourNote ("white", "red", "It is required for the correct operation of the " .. me)
ColourNote ("white", "red", string.rep ("-", 80))
end -- if not installed
end -- plugin was not installed
-- now make sure enabled (suggested by Fiendish - version 4.74+ )
if not GetPluginInfo(id, 17) then
ColourNote ("white", "green", "Plugin '" .. name .. "' not enabled. Attempting to enable it...")
EnablePlugin(id, true)
if GetPluginInfo(id, 17) then
ColourNote ("white", "green", "Success!")
else
ColourNote ("white", "red", string.rep ("-", 80))
ColourNote ("white", "red", "Plugin '" .. name .. "' not enabled. Please make sure it can be enabled.")
ColourNote ("white", "red", "It is required for the correct operation of the " .. me)
ColourNote ("white", "red", string.rep ("-", 80))
end -- if
end -- if not enabled
end -- do_plugin_check_now
function checkplugin (id, name)
if GetOption ("enable_timers") ~= 1 then
ColourNote ("white", "red", "WARNING! Timers not enabled. Plugin dependency checks will not work properly.")
end -- if timers disabled
-- give them time to load
DoAfterSpecial (2,
"do_plugin_check_now ('" .. id .. "', '" .. name .. "')",
sendto.script)
end -- checkplugin
Since checkplugin requires timers to be active, it checks for that. Also do_plugin_check_now will now work from the main script as well as plugins. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | top |
|