- /kick, /ban, /whitelist und /block funktionieren jetzt auch von Service-Nachrichten aus

- Geblockte User konnten trotzdem Kommandos ausführen. Dies wurde gefixt.
This commit is contained in:
Andreas Bielawski 2016-08-16 17:27:51 +02:00
parent b28ae66707
commit 34a0629056
2 changed files with 40 additions and 8 deletions

View File

@ -233,6 +233,7 @@ function pre_process_msg(self, msg, config)
if plugin.pre_process and msg then if plugin.pre_process and msg then
-- print('Preprocess '..plugin.name) -- remove comment to restore old behaviour -- print('Preprocess '..plugin.name) -- remove comment to restore old behaviour
new_msg = plugin:pre_process(msg, self, config) new_msg = plugin:pre_process(msg, self, config)
if not new_msg then return end
end end
end end
return new_msg return new_msg

View File

@ -174,8 +174,7 @@ end
function banhammer:action(msg, config, matches) function banhammer:action(msg, config, matches)
if not is_sudo(msg, config) then if not is_sudo(msg, config) then
utilities.send_reply(self, msg, config.errors.sudo) return -- Silent ignore
return
end end
if matches[1] == 'leave' then if matches[1] == 'leave' then
@ -194,8 +193,14 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
elseif msg.reply_to_message.left_chat_member then
user_id = msg.reply_to_message.left_chat_member.id
else
user_id = msg.reply_to_message.from.id user_id = msg.reply_to_message.from.id
end end
end
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
if matches[2] == 'user' or not matches[2] then if matches[2] == 'user' or not matches[2] then
@ -221,8 +226,12 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
else
user_id = msg.reply_to_message.from.id user_id = msg.reply_to_message.from.id
end end
end
banhammer:kick_user(user_id, msg.chat.id, self, true) banhammer:kick_user(user_id, msg.chat.id, self, true)
return return
else else
@ -250,7 +259,11 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
local user_id = msg.reply_to_message.from.id if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
else
user_id = msg.reply_to_message.from.id
end
local hash = 'whitelist:user#id'..user_id local hash = 'whitelist:user#id'..user_id
redis:set(hash, true) redis:set(hash, true)
utilities.send_reply(self, msg, 'User '..user_id..' whitelisted') utilities.send_reply(self, msg, 'User '..user_id..' whitelisted')
@ -261,7 +274,13 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
local user_id = msg.reply_to_message.from.id if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
elseif msg.reply_to_message.left_chat_member then
user_id = msg.reply_to_message.left_chat_member.id
else
user_id = msg.reply_to_message.from.id
end
local hash = 'whitelist:user#id'..user_id local hash = 'whitelist:user#id'..user_id
redis:del(hash) redis:del(hash)
utilities.send_reply(self, msg, 'User '..user_id..' von der Whitelist entfernt!') utilities.send_reply(self, msg, 'User '..user_id..' von der Whitelist entfernt!')
@ -327,7 +346,13 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
local user_id = msg.reply_to_message.from.id if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
elseif msg.reply_to_message.left_chat_member then
user_id = msg.reply_to_message.left_chat_member.id
else
user_id = msg.reply_to_message.from.id
end
local hash = 'blocked:'..user_id local hash = 'blocked:'..user_id
redis:set(hash, true) redis:set(hash, true)
utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot nun nicht mehr nutzen.') utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot nun nicht mehr nutzen.')
@ -338,7 +363,13 @@ function banhammer:action(msg, config, matches)
if not msg.reply_to_message then if not msg.reply_to_message then
return return
end end
local user_id = msg.reply_to_message.from.id if msg.reply_to_message.new_chat_member then
user_id = msg.reply_to_message.new_chat_member.id
elseif msg.reply_to_message.left_chat_member then
user_id = msg.reply_to_message.left_chat_member.id
else
user_id = msg.reply_to_message.from.id
end
local hash = 'blocked:'..user_id local hash = 'blocked:'..user_id
redis:del(hash) redis:del(hash)
utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot wieder nutzen.') utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot wieder nutzen.')