我正在创建一个与自定义数据库交互的简单机器人。当用户不和谐地加入服务器时,机器人必须获取他的 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
答案 0 :(得分:1)
我之前没有使用过 discord gem,但文档说您需要在代码中调用 bot.run
来告诉机器人运行。您的代码示例中似乎没有该行。
答案 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