initial release
This commit is contained in:
90
cosmic rage/lua/checkplugin.lua
Normal file
90
cosmic rage/lua/checkplugin.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
-- checkplugin.lua
|
||||
|
||||
-- Checks the nominated plugin is installed
|
||||
|
||||
function do_plugin_check_now (id, name)
|
||||
|
||||
local me -- who am I? plugin or main world script?
|
||||
local location -- location to attempt to load plugin from
|
||||
|
||||
-- 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!")
|
||||
|
||||
-- here if still not installed
|
||||
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))
|
||||
return -- skip enabled check
|
||||
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
|
||||
|
||||
function load_ppi (id, name)
|
||||
local PPI = require "ppi"
|
||||
|
||||
local ppi = PPI.Load(id)
|
||||
if ppi then
|
||||
return ppi
|
||||
end
|
||||
|
||||
ColourNote ("white", "green", "Plugin '" .. name .. "' not installed. Attempting to install it...")
|
||||
LoadPlugin (GetPluginInfo(GetPluginID (), 20) .. name .. ".xml")
|
||||
|
||||
ppi = PPI.Load(id) -- try again
|
||||
if ppi then
|
||||
ColourNote ("white", "green", "Success!")
|
||||
return ppi
|
||||
end
|
||||
|
||||
ColourNote ("white", "red", string.rep ("-", 80))
|
||||
ColourNote ("white", "red", "Plugin '" .. name .. "' not installed. Please download and install it.")
|
||||
ColourNote ("white", "red", string.rep ("-", 80))
|
||||
|
||||
return nil
|
||||
end -- function load_ppi
|
||||
Reference in New Issue
Block a user