mirror of
https://github.com/minetest-mods/irc.git
synced 2024-12-27 09:10:21 +01:00
Add support for mod security
This commit is contained in:
parent
38832b3c55
commit
0c900dbac2
@ -32,6 +32,11 @@ many distributions, for example:
|
|||||||
# # On Debian/Ubuntu:
|
# # On Debian/Ubuntu:
|
||||||
# apt-get install lua-socket
|
# apt-get install lua-socket
|
||||||
|
|
||||||
|
You will also need to add IRC to your trusted mods if you haven't disabled mod
|
||||||
|
security. Here's an example configuration line:
|
||||||
|
|
||||||
|
secure.trusted_mods = irc
|
||||||
|
|
||||||
|
|
||||||
Settings
|
Settings
|
||||||
--------
|
--------
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
-- This file is licensed under the terms of the BSD 2-clause license.
|
-- This file is licensed under the terms of the BSD 2-clause license.
|
||||||
-- See LICENSE.txt for details.
|
-- See LICENSE.txt for details.
|
||||||
|
|
||||||
|
local ie = ...
|
||||||
|
|
||||||
-- MIME is part of LuaSocket
|
-- MIME is part of LuaSocket
|
||||||
local b64e = require("mime").b64
|
local b64e = ie.require("mime").b64
|
||||||
|
|
||||||
irc.hooks = {}
|
irc.hooks = {}
|
||||||
irc.registered_hooks = {}
|
irc.registered_hooks = {}
|
||||||
|
27
init.lua
27
init.lua
@ -3,24 +3,39 @@
|
|||||||
|
|
||||||
local modpath = minetest.get_modpath(minetest.get_current_modname())
|
local modpath = minetest.get_modpath(minetest.get_current_modname())
|
||||||
|
|
||||||
package.path =
|
-- Handle mod security if needed
|
||||||
|
local ie, req_ie = _G, minetest.request_insecure_environment
|
||||||
|
if req_ie then ie = req_ie() end
|
||||||
|
if not ie then
|
||||||
|
error("The IRC mod requires access to insecure functions in order "..
|
||||||
|
"to work. Please add the irc mod to your secure.trusted_mods "..
|
||||||
|
"setting or disable the irc mod.")
|
||||||
|
end
|
||||||
|
|
||||||
|
ie.package.path =
|
||||||
-- To find LuaIRC's init.lua
|
-- To find LuaIRC's init.lua
|
||||||
modpath.."/?/init.lua;"
|
modpath.."/?/init.lua;"
|
||||||
-- For LuaIRC to find its files
|
-- For LuaIRC to find its files
|
||||||
..modpath.."/?.lua;"
|
..modpath.."/?.lua;"
|
||||||
..package.path
|
..ie.package.path
|
||||||
|
|
||||||
-- The build of Lua that Minetest comes with only looks for libraries under
|
-- The build of Lua that Minetest comes with only looks for libraries under
|
||||||
-- /usr/local/share and /usr/local/lib but LuaSocket is often installed under
|
-- /usr/local/share and /usr/local/lib but LuaSocket is often installed under
|
||||||
-- /usr/share and /usr/lib.
|
-- /usr/share and /usr/lib.
|
||||||
if not rawget(_G, "jit") and package.config:sub(1, 1) == "/" then
|
if not rawget(_G, "jit") and package.config:sub(1, 1) == "/" then
|
||||||
package.path = package.path..
|
ie.package.path = ie.package.path..
|
||||||
";/usr/share/lua/5.1/?.lua"..
|
";/usr/share/lua/5.1/?.lua"..
|
||||||
";/usr/share/lua/5.1/?/init.lua"
|
";/usr/share/lua/5.1/?/init.lua"
|
||||||
package.cpath = package.cpath..
|
ie.package.cpath = ie.package.cpath..
|
||||||
";/usr/lib/lua/5.1/?.so"
|
";/usr/lib/lua/5.1/?.so"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Temporarily set require so that LuaIRC can access it
|
||||||
|
local old_require = require
|
||||||
|
require = ie.require
|
||||||
|
local lib = ie.require("irc")
|
||||||
|
require = old_require
|
||||||
|
|
||||||
irc = {
|
irc = {
|
||||||
version = "0.2.0",
|
version = "0.2.0",
|
||||||
connected = false,
|
connected = false,
|
||||||
@ -29,7 +44,7 @@ irc = {
|
|||||||
recent_message_count = 0,
|
recent_message_count = 0,
|
||||||
joined_players = {},
|
joined_players = {},
|
||||||
modpath = modpath,
|
modpath = modpath,
|
||||||
lib = require("irc"),
|
lib = lib,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Compatibility
|
-- Compatibility
|
||||||
@ -37,7 +52,7 @@ mt_irc = irc
|
|||||||
|
|
||||||
dofile(modpath.."/config.lua")
|
dofile(modpath.."/config.lua")
|
||||||
dofile(modpath.."/messages.lua")
|
dofile(modpath.."/messages.lua")
|
||||||
dofile(modpath.."/hooks.lua")
|
loadfile(modpath.."/hooks.lua")(ie)
|
||||||
dofile(modpath.."/callback.lua")
|
dofile(modpath.."/callback.lua")
|
||||||
dofile(modpath.."/chatcmds.lua")
|
dofile(modpath.."/chatcmds.lua")
|
||||||
dofile(modpath.."/botcmds.lua")
|
dofile(modpath.."/botcmds.lua")
|
||||||
|
Loading…
Reference in New Issue
Block a user