Discord Ruby bot 不响应用户加入

时间:2021-07-06 08:32:35

标签: ruby discord bots

我正在创建一个与自定义数据库交互的简单机器人。当用户不和谐地加入服务器时,机器人必须获取他的 ID 并将其与数据库中的 ID 进行比较。我决定从小处着手,向用户打招呼。 编写一些简单的代码后,bot 启动时没有任何问题,但是当用户加入服务器时,bot 根本没有响应。我尝试了其他命令,例如:channel_create,机器人响应它们

附言除此功能外,bot代码中还有其他命令。红宝石 v2.5.2

require 'pg'
require 'discordrb'
require 'dotenv/load'

bot = Discordrb::Commands::CommandBot.new(token: 'TOKEN',
                                          client_id: 'client_id',
                                          prefix: '!')

bot.member_join do
  bot.send_message(channel_id, 'Hi!')
end

bot.run

2 个答案:

答案 0 :(得分:1)

我之前没有使用过 discord gem,但文档说您需要在代码中调用 bot.run 来告诉机器人运行。您的代码示例中似乎没有该行。

https://github.com/shardlab/discordrb#usage

答案 1 :(得分:0)

我能够让机器人响应“Ping!”但是我无法触发“member_join”事件。

这是我的代码:

require 'discordrb'


bot = Discordrb::Bot.new token: 'mytoken'

puts "This bot's invite URL is #{bot.invite_url}."
puts 'Click on it to invite it to your server.'

bot.member_join do |event|
  puts 'this never seems to run' 
  event.send_message('Hi!')
end

bot.message(content: 'Ping!') do |event|
  puts 'this runs fine'
  event.respond 'Pong!'
end

bot.run

我的建议是在此处打开 Gem 的问题:https://github.com/shardlab/discordrb/issues