rolling-6
parent
a64c5e61b2
commit
3077616965
|
@ -6,10 +6,10 @@ function minetest.get_player_privs(playername)
|
|||
return minetest.original_get_player_privs(playername)
|
||||
end
|
||||
|
||||
if cmd_ext then
|
||||
if cmdlib then
|
||||
function call_chatcommand(chatter, call)
|
||||
local last_space, next_space = 1, call:find(" ")
|
||||
local command_trie, command_name = cmd_ext.chatcommands
|
||||
local command_trie, command_name = cmdlib.chatcommands
|
||||
local cmd, suggestion
|
||||
local total_command_name = {}
|
||||
repeat
|
||||
|
@ -41,7 +41,7 @@ if cmd_ext then
|
|||
end
|
||||
else
|
||||
function call_chatcommand(chatter, call)
|
||||
local name, params = unpack(string_ext.split(call, " ", 2))
|
||||
local name, params = unpack(modlib.text.split(call, " ", 2))
|
||||
if bridges.command_blacklist[name] then
|
||||
return false, "Command only available from Minetest."
|
||||
end
|
||||
|
|
16
conf.lua
16
conf.lua
|
@ -53,8 +53,8 @@ local conf_spec={type="table", children={
|
|||
}
|
||||
}}
|
||||
|
||||
local config=conf.import("adv_chat", conf_spec)
|
||||
table_ext.add_all(getfenv(1), config)
|
||||
local config=modlib.conf.import("adv_chat", conf_spec)
|
||||
modlib.table.add_all(getfenv(1), config)
|
||||
|
||||
function load_schemes()
|
||||
for k, v in pairs(schemes.minetest) do
|
||||
|
@ -82,8 +82,8 @@ end
|
|||
|
||||
if bridges.discord then
|
||||
|
||||
local blacklist_empty=table_ext.is_empty(bridges.discord.blacklist or {})
|
||||
local whitelist_empty=table_ext.is_empty(bridges.discord.whitelist or {})
|
||||
local blacklist_empty=modlib.table.is_empty(bridges.discord.blacklist or {})
|
||||
local whitelist_empty=modlib.table.is_empty(bridges.discord.whitelist or {})
|
||||
if blacklist_empty then
|
||||
if not whitelist_empty then
|
||||
bridges.discord.blacklist=setmetatable(bridges.discord.blacklist, {__index=function(value)
|
||||
|
@ -103,10 +103,10 @@ end
|
|||
|
||||
if bridges.discord or bridges.irc then
|
||||
|
||||
bridges.command_blacklist = table_ext.set(bridges.command_blacklist or {})
|
||||
bridges.command_whitelist = table_ext.set(bridges.command_whitelist or {})
|
||||
local blacklist_empty=table_ext.is_empty(bridges.command_blacklist)
|
||||
local whitelist_empty=table_ext.is_empty(bridges.command_whitelist or {})
|
||||
bridges.command_blacklist = modlib.table.set(bridges.command_blacklist or {})
|
||||
bridges.command_whitelist = modlib.table.set(bridges.command_whitelist or {})
|
||||
local blacklist_empty=modlib.table.is_empty(bridges.command_blacklist)
|
||||
local whitelist_empty=modlib.table.is_empty(bridges.command_whitelist or {})
|
||||
if blacklist_empty then
|
||||
if not whitelist_empty then
|
||||
bridges.command_blacklist=setmetatable(bridges.command_blacklist, {__index=function(value)
|
||||
|
|
58
discord.lua
58
discord.lua
|
@ -28,19 +28,19 @@ discord_bridge = bridge
|
|||
|
||||
bridge.listen(function(line)
|
||||
local linecontent=line:sub(6)
|
||||
if string_ext.starts_with(line, "[MSG]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2)
|
||||
if modlib.text.starts_with(line, "[MSG]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2)
|
||||
local src=parts[1].."[discord]"
|
||||
local adv_msg=message.new(chatters[src], nil, parts[2])
|
||||
adv_msg.sent_to="discord"
|
||||
send_to_all(adv_msg)
|
||||
elseif string_ext.starts_with(line, "[GMS]") or string_ext.starts_with(line, "[CGM]") then -- GMS = group message or CGM = channel group message
|
||||
local parts=string_ext.split(linecontent, " ",3)
|
||||
elseif modlib.text.starts_with(line, "[GMS]") or modlib.text.starts_with(line, "[CGM]") then -- GMS = group message or CGM = channel group message
|
||||
local parts=modlib.text.split(linecontent, " ",3)
|
||||
local source=parts[1]
|
||||
local targets=string_ext.split_without_limit(parts[2], ",")
|
||||
local targets=modlib.text.split_without_limit(parts[2], ",")
|
||||
local msg=parts[3]
|
||||
local sent_to
|
||||
if string_ext.starts_with(line, "[CGM]") then
|
||||
if modlib.text.starts_with(line, "[CGM]") then
|
||||
sent_to="discord"
|
||||
end
|
||||
local targetset={}
|
||||
|
@ -56,62 +56,62 @@ bridge.listen(function(line)
|
|||
elseif (#adv_msg.invalid_mentions) > 1 then
|
||||
discord_bridge.write("[PMS]#FFFFFF "..source.." The targets "..table.concat(adv_msg.invalid_mentions, ", ").." are inexistant.")
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[CMD]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2)
|
||||
elseif modlib.text.starts_with(line, "[CMD]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2)
|
||||
local source=parts[1]
|
||||
local call=parts[2]
|
||||
local success, retval = call_chatcommand(source.."[discord]", call)
|
||||
local prefix = "[PMS]#FFFFFF "
|
||||
if success then prefix = "[SUC]" elseif success == false then prefix = "[ERR]" end
|
||||
discord_bridge.write(prefix..source.." "..(retval or "No return value."))
|
||||
elseif string_ext.starts_with(line, "[JOI]") or string_ext.starts_with(line, "[LIS]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2) --nick & roles
|
||||
elseif modlib.text.starts_with(line, "[JOI]") or modlib.text.starts_with(line, "[LIS]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --nick & roles
|
||||
local chatter=parts[1].."[discord]"
|
||||
join(chatter, {color=parts[2], roles={}, discord=true})
|
||||
if string_ext.starts_with(line, "[JOI]") then
|
||||
if modlib.text.starts_with(line, "[JOI]") then
|
||||
minetest.chat_send_all(mt_color(chatter)..chatter..minetest.get_color_escape_sequence("#FFFFFF").." joined.")
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[EXT]") then
|
||||
elseif modlib.text.starts_with(line, "[EXT]") then
|
||||
local chatter = linecontent .. "[discord]"
|
||||
minetest.chat_send_all(mt_color(chatter)..chatter..minetest.get_color_escape_sequence("#FFFFFF").." left.")
|
||||
leave(chatter)
|
||||
elseif string_ext.starts_with(line, "[NCK]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2) --nick & newnick
|
||||
elseif modlib.text.starts_with(line, "[NCK]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --nick & newnick
|
||||
local chattername=parts[1].."[discord]"
|
||||
local new_chattername=parts[2].."[discord]"
|
||||
rename(chattername, new_chattername)
|
||||
elseif string_ext.starts_with(line, "[ROL]") then
|
||||
local parts=string_ext.split(linecontent, " ", 3) --name, color, nicks
|
||||
elseif modlib.text.starts_with(line, "[ROL]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 3) --name, color, nicks
|
||||
if not bridges.discord.blacklist[parts[1]] then
|
||||
if not roles[parts[1]] then
|
||||
register_role(parts[1], {color=parts[2], discord=true})
|
||||
end
|
||||
if parts[3] then
|
||||
for _,nick in pairs(string_ext.split_without_limit(parts[3], ",")) do
|
||||
for _,nick in pairs(modlib.text.split_without_limit(parts[3], ",")) do
|
||||
add_role(nick.."[discord]", parts[1], "discord")
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[DEL]") then --Role is deleted
|
||||
elseif modlib.text.starts_with(line, "[DEL]") then --Role is deleted
|
||||
delete_discord_role()
|
||||
elseif string_ext.starts_with(line, "[REM]") then --User is removed from role
|
||||
local parts=string_ext.split(linecontent, " ", 2) --role & nick
|
||||
elseif modlib.text.starts_with(line, "[REM]") then --User is removed from role
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --role & nick
|
||||
remove_role(parts[2].."[discord]", parts[1], "discord")
|
||||
elseif string_ext.starts_with(line, "[ADD]") then --User is added to role
|
||||
local parts=string_ext.split(linecontent, " ", 2) --role & nick
|
||||
elseif modlib.text.starts_with(line, "[ADD]") then --User is added to role
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --role & nick
|
||||
add_role(parts[2].."[discord]", parts[1], "discord")
|
||||
elseif string_ext.starts_with(line, "[NAM]") then --Role changes name
|
||||
local parts=string_ext.split(linecontent, " ", 2) --oldname, newname
|
||||
elseif modlib.text.starts_with(line, "[NAM]") then --Role changes name
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --oldname, newname
|
||||
if not bridges.discord.blacklist[parts[2]] then
|
||||
if roles[parts[1]].discord then
|
||||
for chatter,_ in pairs(roles[parts[1]].affected) do
|
||||
chatters[chatter].roles[parts[1]]=nil
|
||||
chatters[chatter].roles[parts[2]]="discord"
|
||||
end
|
||||
roles[parts[2]]=table_ext.tablecopy(roles[parts[1]])
|
||||
roles[parts[2]]=modlib.table.tablecopy(roles[parts[1]])
|
||||
roles[parts[1]]=nil
|
||||
else
|
||||
roles[parts[2]]=table_ext.tablecopy(roles[parts[1]])
|
||||
roles[parts[2]]=modlib.table.tablecopy(roles[parts[1]])
|
||||
roles[parts[2]].discord=true
|
||||
for chatter,_ in pairs(roles[parts[1]].affected) do
|
||||
if chatters[chatter].roles[parts[1]]=="discord" then --Move
|
||||
|
@ -124,8 +124,8 @@ bridge.listen(function(line)
|
|||
else
|
||||
delete_discord_role(parts[1])
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[COL]") then --Role changes color
|
||||
local parts=string_ext.split(linecontent, " ", 2) --role & color
|
||||
elseif modlib.text.starts_with(line, "[COL]") then --Role changes color
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --role & color
|
||||
if roles[parts[1]].discord then
|
||||
roles[parts[1]].color=parts[2]
|
||||
end
|
||||
|
@ -133,7 +133,7 @@ bridge.listen(function(line)
|
|||
end)
|
||||
|
||||
-- Pinging
|
||||
mt_ext.register_globalstep(1, function()
|
||||
modlib.minetest.register_globalstep(1, function()
|
||||
bridge.write("[PIN]")
|
||||
end)
|
||||
|
||||
|
|
28
init.lua
28
init.lua
|
@ -1,5 +1,5 @@
|
|||
adv_chat={}
|
||||
extend_mod("adv_chat", "conf")
|
||||
modlib.mod.extend("adv_chat", "conf")
|
||||
|
||||
-- Some IFNDEFS hehe
|
||||
local bridge_ifndefs={
|
||||
|
@ -8,33 +8,33 @@ local bridge_ifndefs={
|
|||
irc=adv_chat.bridges.irc
|
||||
}
|
||||
|
||||
extend_mod_string("adv_chat", string_ext.handle_ifndefs(file_ext.read(get_resource("adv_chat", "colorize_message.lua")), bridge_ifndefs))
|
||||
modlib.mod.extend_string("adv_chat", modlib.text.handle_ifndefs(modlib.file.read(modlib.mod.get_resource("adv_chat", "colorize_message.lua")), bridge_ifndefs))
|
||||
|
||||
extend_mod_string("adv_chat", string_ext.handle_ifndefs(file_ext.read(get_resource("adv_chat", "main.lua")), bridge_ifndefs))
|
||||
modlib.mod.extend_string("adv_chat", modlib.text.handle_ifndefs(modlib.file.read(modlib.mod.get_resource("adv_chat", "main.lua")), bridge_ifndefs))
|
||||
|
||||
-- Basic API stuff
|
||||
extend_mod("adv_chat", "unicode")
|
||||
extend_mod("adv_chat", "closest_color")
|
||||
extend_mod("adv_chat", "trie")
|
||||
extend_mod("adv_chat", "text_styles")
|
||||
extend_mod("adv_chat", "message")
|
||||
extend_mod("adv_chat", "hud_channels")
|
||||
modlib.mod.extend("adv_chat", "unicode")
|
||||
modlib.mod.extend("adv_chat", "closest_color")
|
||||
modlib.mod.extend("adv_chat", "trie")
|
||||
modlib.mod.extend("adv_chat", "text_styles")
|
||||
modlib.mod.extend("adv_chat", "message")
|
||||
modlib.mod.extend("adv_chat", "hud_channels")
|
||||
|
||||
-- Chat bridges
|
||||
if bridge_ifndefs.bridge then
|
||||
extend_mod("adv_chat", "chatcommands")
|
||||
extend_mod("adv_chat", "process_bridges")
|
||||
modlib.mod.extend("adv_chat", "chatcommands")
|
||||
modlib.mod.extend("adv_chat", "process_bridges")
|
||||
|
||||
local env = minetest.request_insecure_environment() or error("Error: adv_chat needs to be added to the trusted mods for chat bridges to work. See the Readme for more info.")
|
||||
adv_chat.set_os_execute(env.os.execute)
|
||||
adv_chat.set_socket(env.require("socket"))
|
||||
|
||||
if adv_chat.bridges.irc then
|
||||
extend_mod("adv_chat", "irc")
|
||||
modlib.mod.extend("adv_chat", "irc")
|
||||
end
|
||||
|
||||
if adv_chat.bridges.discord then
|
||||
extend_mod("adv_chat", "discord")
|
||||
modlib.mod.extend("adv_chat", "discord")
|
||||
end
|
||||
|
||||
adv_chat.build_socket_bridge = nil
|
||||
|
@ -44,5 +44,5 @@ end
|
|||
|
||||
-- Tests - don't uncomment unless you actually want to test something
|
||||
--[[
|
||||
-- -- -- extend_mod("adv_chat", "test")
|
||||
-- -- -- modlib.mod.extend("adv_chat", "test")
|
||||
]]
|
40
irc.lua
40
irc.lua
|
@ -11,39 +11,39 @@ irc_bridge = bridge
|
|||
|
||||
bridge.listen(function(line)
|
||||
local linecontent=line:sub(6)
|
||||
if string_ext.starts_with(line, "[MSG]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2)
|
||||
if modlib.text.starts_with(line, "[MSG]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2)
|
||||
local src=parts[1].."[irc]"
|
||||
local adv_msg=message.new(chatters[src], nil, parts[2])
|
||||
adv_msg.sent_to="irc"
|
||||
send_to_all(adv_msg)
|
||||
elseif string_ext.starts_with(line, "[PMS]") then
|
||||
local parts=string_ext.split(linecontent, " ", 1)
|
||||
elseif modlib.text.starts_with(line, "[PMS]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 1)
|
||||
local source=parts[1]
|
||||
local target=parts[2]
|
||||
local msg=parts[3]
|
||||
if string_ext.ends_with(target, "[discord]") then
|
||||
if modlib.text.ends_with(target, "[discord]") then
|
||||
discord_bridge.write("[PMS]"..source.." "..target.."@you : "..msg)
|
||||
else
|
||||
if minetest.get_player_by_name(target_and_msg[1]) then
|
||||
minetest.chat_send_player(target_and_msg[2])
|
||||
end
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[CMD]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2)
|
||||
elseif modlib.text.starts_with(line, "[CMD]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2)
|
||||
local source=parts[1]
|
||||
local call=parts[2]
|
||||
local success, retval = call_chatcommand(source.."[irc]", call)
|
||||
local prefix="Unknown"
|
||||
if success then prefix="Success" elseif success ~= nil then prefix="Error" end
|
||||
irc_bridge.write("[PMS]"..source.." "..prefix.." : "..(retval or "No return value."))
|
||||
elseif string_ext.starts_with(line, "[GMS]") or string_ext.starts_with(line, "[CGM]") then -- GMS = group message or CGM = channel group message
|
||||
local parts=string_ext.split(linecontent, " ",3)
|
||||
elseif modlib.text.starts_with(line, "[GMS]") or modlib.text.starts_with(line, "[CGM]") then -- GMS = group message or CGM = channel group message
|
||||
local parts=modlib.text.split(linecontent, " ",3)
|
||||
local source=parts[1]
|
||||
local targets=string_ext.split_without_limit(parts[2], ",")
|
||||
local targets=modlib.text.split_without_limit(parts[2], ",")
|
||||
local msg=parts[3]
|
||||
local sent_to
|
||||
if string_ext.starts_with(line, "[CGM]") then
|
||||
if modlib.text.starts_with(line, "[CGM]") then
|
||||
sent_to="irc"
|
||||
end
|
||||
local adv_msg=message.new(chatters[source.."[discord]"], targets, msg)
|
||||
|
@ -55,26 +55,26 @@ bridge.listen(function(line)
|
|||
elseif (#adv_msg.invalid_mentions) > 1 then
|
||||
irc_bridge.write("[PMS]"..source.." The targets "..table.concat(adv_msg.invalid_mentions, ", ").." are inexistant.")
|
||||
end
|
||||
elseif string_ext.starts_with(line, "[JOI]") then
|
||||
local parts=string_ext.split(linecontent, " ", 3) --nick & color & channel
|
||||
elseif modlib.text.starts_with(line, "[JOI]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 3) --nick & color & channel
|
||||
join(parts[1].."[irc]", {color=parts[2], roles={}, irc=true})
|
||||
local chattername=parts[1].."[irc]"
|
||||
minetest.chat_send_all(mt_color(chattername)..
|
||||
chattername..minetest.get_color_escape_sequence("#FFFFFF").." joined.",
|
||||
minetest.get_color_escape_sequence(parts[2])..parts[1].."[irc]"..
|
||||
minetest.get_color_escape_sequence("#FFFFFF").." joined.")
|
||||
elseif string_ext.starts_with(line, "[EXT]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2) --nick & reason
|
||||
elseif modlib.text.starts_with(line, "[EXT]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --nick & reason
|
||||
local chattername=parts[1].."[irc]"
|
||||
minetest.chat_send_all(mt_color(chattername)..chattername..minetest.get_color_escape_sequence("#FFFFFF").." quitted ("..parts[2]..").")
|
||||
leave(chattername)
|
||||
elseif string_ext.starts_with(line, "[BYE]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2) --nick & reason
|
||||
elseif modlib.text.starts_with(line, "[BYE]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --nick & reason
|
||||
local chattername=parts[1].."[irc]"
|
||||
minetest.chat_send_all(mt_color(chattername)..chattername..minetest.get_color_escape_sequence("#FFFFFF").." left ("..parts[2]..").")
|
||||
leave(chattername)
|
||||
elseif string_ext.starts_with(line, "[NCK]") then
|
||||
local parts=string_ext.split(linecontent, " ", 2) --nick & newnick
|
||||
elseif modlib.text.starts_with(line, "[NCK]") then
|
||||
local parts=modlib.text.split(linecontent, " ", 2) --nick & newnick
|
||||
local chattername=parts[1].."[irc]"
|
||||
local new_chattername=parts[2].."[irc]"
|
||||
rename(chattername, new_chattername)
|
||||
|
@ -82,7 +82,7 @@ bridge.listen(function(line)
|
|||
end)
|
||||
|
||||
-- Pinging
|
||||
mt_ext.register_globalstep(1, function()
|
||||
modlib.minetest.register_globalstep(1, function()
|
||||
bridge.write("[PIN]")
|
||||
end)
|
||||
|
||||
|
|
32
main.lua
32
main.lua
|
@ -70,12 +70,12 @@ scheme={minetest={mention_prefix=minetest.get_color_escape_sequence("#FFFF66")..
|
|||
delim=" : "}}
|
||||
|
||||
function save_data()
|
||||
data.save_json("chatroles", "to_be_sent", to_be_sent)
|
||||
modlib.data.save_json("chatroles", "to_be_sent", to_be_sent)
|
||||
end
|
||||
|
||||
to_be_sent=data.load_json("chatroles","to_be_sent") or {}
|
||||
to_be_sent=modlib.data.load_json("chatroles","to_be_sent") or {}
|
||||
|
||||
mt_ext.register_globalstep(30, save_data) -- TODO introduce config var
|
||||
modlib.minetest.register_globalstep(30, save_data) -- TODO introduce config var
|
||||
minetest.register_on_shutdown(save_data)
|
||||
|
||||
-- TODO override minetest chat send player ?
|
||||
|
@ -125,7 +125,7 @@ function send_to_targets(msg)
|
|||
for target, _ in pairs(msg.targets) do
|
||||
if not chatters[target] then
|
||||
if roles[target] then
|
||||
table_ext.add_all(msg.targets, roles[target].affected)
|
||||
modlib.table.add_all(msg.targets, roles[target].affected)
|
||||
end
|
||||
msg.targets[target]=nil
|
||||
end
|
||||
|
@ -245,7 +245,7 @@ end)
|
|||
|
||||
function register_role(rolename, roledef)
|
||||
roles[rolename]={title=roledef.title, color=roledef.color or "#FFFFFF",affected={}}
|
||||
player_ext.register_forbidden_name(rolename)
|
||||
modlib.player.register_forbidden_name(rolename)
|
||||
end
|
||||
|
||||
--IFNDEF bridge
|
||||
|
@ -291,7 +291,7 @@ register_role("minetest",{color="#66FF66"})
|
|||
|
||||
function unregister_role(rolename)
|
||||
roles[rolename]=nil
|
||||
player_ext.unregister_forbidden_name(rolename)
|
||||
modlib.player.unregister_forbidden_name(rolename)
|
||||
end
|
||||
|
||||
function add_role(player, role, value)
|
||||
|
@ -365,7 +365,7 @@ end
|
|||
|
||||
function send_to_players(msg, players, origin)
|
||||
for playername,_ in pairs(players) do
|
||||
local blocked=player_ext.get_property(playername, "chatroles.blocked")
|
||||
local blocked=modlib.player.get_property(playername, "chatroles.blocked")
|
||||
if blocked.players[origin] then
|
||||
goto continue
|
||||
for role,_ in ipairs(blocked.roles) do
|
||||
|
@ -383,7 +383,7 @@ function get_affected_by_mentions(mentions)
|
|||
local affected={}
|
||||
for _, mention in pairs(mentions) do
|
||||
if roles[mention] then
|
||||
table_ext.add_all(affected, roles[mention].affected)
|
||||
modlib.table.add_all(affected, roles[mention].affected)
|
||||
elseif minetest.get_player_by_name(mention) then
|
||||
affected[mention]=true
|
||||
end
|
||||
|
@ -456,9 +456,9 @@ on_chat_message=function(sender, msg)
|
|||
|
||||
msg_content=msg:sub(delim_space+1)
|
||||
local msg_header=msg:sub(2, delim_space-1)
|
||||
local parts=string_ext.split_without_limit(msg_header,",")
|
||||
local parts=modlib.text.split_without_limit(msg_header,",")
|
||||
for _, part in pairs(parts) do
|
||||
table.insert(mentions, string_ext.trim(part, " "))
|
||||
table.insert(mentions, modlib.text.trim(part, " "))
|
||||
end
|
||||
local adv_msg=message.new(chatters[sender], mentions, msg_content)
|
||||
message.mentionpart(adv_msg)
|
||||
|
@ -482,7 +482,7 @@ on_chat_message=function(sender, msg)
|
|||
end
|
||||
minetest.register_on_chat_message(on_chat_message)
|
||||
|
||||
local prefix = (cmd_ext and "chat ") or "chat_"
|
||||
local prefix = (cmdlib and "chat ") or "chat_"
|
||||
|
||||
minetest.register_chatcommand(prefix.."msg",{
|
||||
params = "<name> <message>",
|
||||
|
@ -494,7 +494,7 @@ minetest.register_chatcommand(prefix.."msg",{
|
|||
return false, "No message specified"
|
||||
else
|
||||
local playername=param:sub(1,delim-1)
|
||||
if minetest.player_exists(playername) or string_ext.ends_with(playername, "[irc]") or string_ext.ends_with(playername, "[discord]") then
|
||||
if minetest.player_exists(playername) or modlib.text.ends_with(playername, "[irc]") or modlib.text.ends_with(playername, "[discord]") then
|
||||
local message=colorize_message(param:sub(delim+1))
|
||||
if not to_be_sent[playername] then
|
||||
to_be_sent[playername]={}
|
||||
|
@ -534,7 +534,7 @@ minetest.register_chatcommand(prefix.."block", {
|
|||
description = "Block messages from chatter or role",
|
||||
privs={},
|
||||
func = function(sendername, param)
|
||||
param=string_ext.trim(param)
|
||||
param=modlib.text.trim(param)
|
||||
if param:len() == 0 or (not chatters[param] and not roles[param]) then
|
||||
return false, "No valid chatter name or role given."
|
||||
end
|
||||
|
@ -558,7 +558,7 @@ minetest.register_chatcommand(prefix.."unblock", {
|
|||
description = "Unblock messages from chatter or role",
|
||||
privs={},
|
||||
func = function(sendername, param)
|
||||
param=string_ext.trim(param)
|
||||
param=modlib.text.trim(param)
|
||||
if param:len() == 0 or (not chatters[param] and not roles[param]) then
|
||||
return false, "No valid chatter name or role given."
|
||||
end
|
||||
|
@ -582,11 +582,11 @@ minetest.register_chatcommand(prefix.."login", {
|
|||
description = "Log in as (fake) player to execute chatcommands as them",
|
||||
privs = {chatter=true},
|
||||
func = function(sendername, param)
|
||||
param=string_ext.trim(param)
|
||||
param=modlib.text.trim(param)
|
||||
if param:len() == 0 then
|
||||
return false, "No arguments given - missing name and password."
|
||||
end
|
||||
local name, password = unpack(string_ext.split(param, " ", 2))
|
||||
local name, password = unpack(modlib.text.split(param, " ", 2))
|
||||
password = password or ""
|
||||
local auth = minetest.get_auth_handler().get_auth(name)
|
||||
if auth and minetest.check_password_entry(name, auth.password, password) then
|
||||
|
|
|
@ -22,7 +22,7 @@ function build_socket_bridge(name, logs)
|
|||
local ip, port = server:getsockname()
|
||||
local logs=logs or minetest.get_worldpath().."/bridges/"..name.."/logs.txt"
|
||||
minetest.mkdir(minetest.get_worldpath().."/bridges/"..name)
|
||||
file_ext.create_if_not_exists(logs, "")
|
||||
modlib.file.create_if_not_exists(logs, "")
|
||||
minetest.register_on_shutdown(function()
|
||||
server:close()
|
||||
end)
|
||||
|
@ -52,7 +52,7 @@ function build_socket_bridge(name, logs)
|
|||
if next(available) then
|
||||
local line, error = self.client:receive("*l")
|
||||
if not error then
|
||||
if string_ext.starts_with(line, "[KIL]") then
|
||||
if modlib.text.starts_with(line, "[KIL]") then
|
||||
minetest.request_shutdown("adv_chat: "..name..": process terminated: "..line:sub(6))
|
||||
else
|
||||
line_consumer(line)
|
||||
|
@ -68,30 +68,30 @@ function build_socket_bridge(name, logs)
|
|||
end
|
||||
|
||||
function build_file_bridge(name, input, output, logs)
|
||||
file_ext.process_bridge_build(name, input, output, logs)
|
||||
modlib.file.process_bridge_build(name, input, output, logs)
|
||||
local self = {
|
||||
info={name=name, ref=file_ext.process_bridges[name]},
|
||||
info={name=name, ref=modlib.file.process_bridges[name]},
|
||||
serve=function()
|
||||
return file_ext.process_bridge_serve(name)
|
||||
return modlib.file.process_bridge_serve(name)
|
||||
end,
|
||||
write=function(line)
|
||||
return file_ext.process_bridge_write(name, line)
|
||||
return modlib.file.process_bridge_write(name, line)
|
||||
end,
|
||||
listen=function(line_consumer)
|
||||
function consumer(line)
|
||||
if string_ext.starts_with(line, "[PIN]") then
|
||||
if modlib.text.starts_with(line, "[PIN]") then
|
||||
self.last_ping = minetest.get_gametime()
|
||||
elseif string_ext.starts_with(line, "[KIL]") then
|
||||
elseif modlib.text.starts_with(line, "[KIL]") then
|
||||
minetest.request_shutdown("adv_chat: "..name..": process terminated: "..line:sub(6))
|
||||
else
|
||||
return line_consumer(line)
|
||||
end
|
||||
end
|
||||
return file_ext.process_bridge_listen(name, consumer)
|
||||
return modlib.file.process_bridge_listen(name, consumer)
|
||||
end
|
||||
}
|
||||
self.start=function(process)
|
||||
file_ext.process_bridge_start(name, process, os_execute)
|
||||
modlib.file.process_bridge_start(name, process, os_execute)
|
||||
self.last_ping = minetest.get_gametime()
|
||||
minetest.register_globalstep(function()
|
||||
if minetest.get_gametime()-self.last_ping > ping_timeout then
|
||||
|
|
2
test.lua
2
test.lua
|
@ -2,7 +2,7 @@
|
|||
|
||||
register_hud_channel("score", {mode="stack", hud_base_position={x=0.6, y=0.5}, autoremove_interval=4})
|
||||
|
||||
mt_ext.register_globalstep(1, function()
|
||||
modlib.minetest.register_globalstep(1, function()
|
||||
if math.random() > 0.5 then
|
||||
local choice=math.random(1, 3)
|
||||
local text=({"-", "+", "~"})[choice]..tostring(math.random(1, 50))
|
||||
|
|
|
@ -67,7 +67,7 @@ local irc_style_to_md={
|
|||
[irc_strikethrough]="~~", -- Strikethrough
|
||||
}
|
||||
|
||||
local md_style_to_irc=table_ext.flip(irc_style_to_md)
|
||||
local md_style_to_irc=modlib.table.flip(irc_style_to_md)
|
||||
|
||||
local irc_escape={
|
||||
[irc_bold]=true, [irc_italics]=true, [irc_underlined]=true, [irc_strikethrough]="~~", [irc_disable]=true, [irc_color_reverse]=true, [irc_monospace]=true
|
||||
|
@ -153,7 +153,7 @@ function strip_markdown(markdown)
|
|||
else
|
||||
local tag, offset = trie.find_longest(markdown_trie, markdown, i)
|
||||
if tag then
|
||||
for index, tag_index in table_ext.rpairs(tags) do
|
||||
for index, tag_index in modlib.table.rpairs(tags) do
|
||||
local conversion = res[tag_index].conversion and res[tag_index].conversion[tag.name]
|
||||
if res[tag_index].name == tag.name or conversion then
|
||||
if tag.space_sensitive and markdown:sub(i-1,i-1) == " " then
|
||||
|
@ -222,7 +222,7 @@ function markdown_to_irc(markdown)
|
|||
else
|
||||
local tag, offset = trie.find_longest(markdown_trie, markdown, i)
|
||||
if tag then
|
||||
for index, tag_index in table_ext.rpairs(tags) do
|
||||
for index, tag_index in modlib.table.rpairs(tags) do
|
||||
local conversion = res[tag_index].conversion and res[tag_index].conversion[tag.name]
|
||||
if res[tag_index].name == tag.name or conversion then
|
||||
if tag.space_sensitive and markdown:sub(i-1,i-1) == " " then
|
||||
|
@ -296,7 +296,7 @@ function markdown_to_irc(markdown)
|
|||
else
|
||||
local tag, offset = trie.find_longest(markdown_trie, markdown, i)
|
||||
if tag then
|
||||
for index, tag_index in table_ext.rpairs(tags) do
|
||||
for index, tag_index in modlib.table.rpairs(tags) do
|
||||
local conversion = res[tag_index].conversion and res[tag_index].conversion[tag.name]
|
||||
if res[tag_index].name == tag.name or conversion then
|
||||
if tag.space_sensitive and markdown:sub(i-1,i-1) == " " then
|
||||
|
@ -355,7 +355,7 @@ function irc_to_markdown(irc)
|
|||
table.insert(res, " ")
|
||||
i=i+1
|
||||
end
|
||||
for index, open_md in table_ext.rpairs(active) do
|
||||
for index, open_md in modlib.table.rpairs(active) do
|
||||
if open_md == md then
|
||||
table.remove(active, index)
|
||||
local i=#res
|
||||
|
@ -370,7 +370,7 @@ function irc_to_markdown(irc)
|
|||
table.insert(res, md)
|
||||
::noinsert::
|
||||
elseif char == irc_disable then
|
||||
for _, md in table_ext.rpairs(active) do
|
||||
for _, md in modlib.table.rpairs(active) do
|
||||
table.insert(res, md)
|
||||
end
|
||||
active={}
|
||||
|
@ -389,7 +389,7 @@ function irc_to_markdown(irc)
|
|||
table.insert(res, md)
|
||||
end
|
||||
else
|
||||
for index, open_md in table_ext.rpairs(active) do
|
||||
for index, open_md in modlib.table.rpairs(active) do
|
||||
if open_md == "||" then
|
||||
table.remove(active, index)
|
||||
local j=#res
|
||||
|
@ -406,7 +406,7 @@ function irc_to_markdown(irc)
|
|||
end
|
||||
i=i+1
|
||||
end
|
||||
for _, thing in table_ext.rpairs(active) do
|
||||
for _, thing in modlib.table.rpairs(active) do
|
||||
table.insert(res, thing)
|
||||
end
|
||||
return table.concat(res)
|
||||
|
@ -423,8 +423,8 @@ end
|
|||
function table_to_hex(color)
|
||||
return string.format("%02X", color[1])..string.format("%02X", color[2])..string.format("%02X", color[3])
|
||||
end
|
||||
table_ext.add_all(conversion_table, user_defined_colors)
|
||||
local reversed = table_ext.flip(conversion_table)
|
||||
modlib.table.add_all(conversion_table, user_defined_colors)
|
||||
local reversed = modlib.table.flip(conversion_table)
|
||||
for k, v in pairs(reversed) do
|
||||
reversed[string.upper(k)]=v
|
||||
reversed[string.lower(k)]=v
|
||||
|
@ -514,10 +514,10 @@ elseif color_conv == "disabled" then
|
|||
else
|
||||
local color_chooser
|
||||
if color_conv == "safest" then
|
||||
local closest_color_basic = closest_color_finder(table_ext.process(user_defined_colors, function(k, color) return hex_to_table(color) end))
|
||||
local closest_color_basic = closest_color_finder(modlib.table.process(user_defined_colors, function(k, color) return hex_to_table(color) end))
|
||||
color_chooser = closest_color_basic
|
||||
else
|
||||
local closest_color_extended = closest_color_finder(table_ext.process(conversion_table, function(k, color) return hex_to_table(color) end))
|
||||
local closest_color_extended = closest_color_finder(modlib.table.process(conversion_table, function(k, color) return hex_to_table(color) end))
|
||||
color_chooser = closest_color_extended
|
||||
end
|
||||
function convert_color_to_irc(color)
|
||||
|
|
|
@ -17,7 +17,7 @@ function parse_utf8_codepoints(message, pattern)
|
|||
end
|
||||
number=tonumber(number, 16)
|
||||
if number then
|
||||
local utf_8_char=string_ext.utf8(number)
|
||||
local utf_8_char=modlib.text.utf8(number)
|
||||
if utf_8_char then
|
||||
table.insert(rope, message:sub(last_index, begin-1))
|
||||
table.insert(rope, utf_8_char)
|
||||
|
|
Loading…
Reference in New Issue