Moved cheese-related commands to a new folder. Added intro for when joining a new server.
This commit is contained in:
37
src/bot.rb
37
src/bot.rb
@@ -15,6 +15,7 @@
|
|||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
require 'discordrb'
|
require 'discordrb'
|
||||||
|
require 'securerandom'
|
||||||
|
|
||||||
class CheeseBot
|
class CheeseBot
|
||||||
def initialize
|
def initialize
|
||||||
@@ -54,5 +55,41 @@ class CheeseBot
|
|||||||
puts "#{@bot.profile.username} is online... GIVE ME THE CHEESE."
|
puts "#{@bot.profile.username} is online... GIVE ME THE CHEESE."
|
||||||
@bot.update_status("online", "We're so back.", nil, 0, false, 0)
|
@bot.update_status("online", "We're so back.", nil, 0, false, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@bot.server_create do |event|
|
||||||
|
server = event.server
|
||||||
|
bot_profile = server.bot
|
||||||
|
|
||||||
|
# Prevent spam on restart
|
||||||
|
# Check if the bot joined a server in the last 60 seconds
|
||||||
|
next if bot_profile.joined_at && (Time.now - bot_profile.joined_at) > 60
|
||||||
|
|
||||||
|
# Try system channel first.
|
||||||
|
# If nil or no permissions, search text channels.
|
||||||
|
channel = server.system_channel
|
||||||
|
|
||||||
|
unless channel && bot_profile.permission?(:send_messages, channel)
|
||||||
|
channel = server.text_channels.find { |c| bot_profile.permission?(:send_messages, c) }
|
||||||
|
end
|
||||||
|
|
||||||
|
next unless channel
|
||||||
|
|
||||||
|
random_color = ("0x" + Random.bytes(3).unpack1('H*')).to_i(16)
|
||||||
|
|
||||||
|
channel.send_embed do |embed|
|
||||||
|
embed.title = "cheeseBot has joined!"
|
||||||
|
embed.description = "What now?"
|
||||||
|
embed.color = random_color
|
||||||
|
embed.timestamp = Time.now
|
||||||
|
|
||||||
|
embed.add_field(name: "Well...", value: "You can start with the /help command!")
|
||||||
|
embed.add_field(name: "And then?", value: "Start trying out the rest of commands!")
|
||||||
|
embed.add_field(name: "Sounds good!", value: "We hope you enjoy cheeseBot! Stay cheesy :)")
|
||||||
|
|
||||||
|
embed.footer = Discordrb::Webhooks::EmbedFooter.new(
|
||||||
|
text: "Be advised this bot automatically sends DMs when detected. Use /blacklist to not receive DMs."
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
require_relative '../lists/cheese_facts'
|
require_relative '../../lists/cheese_facts.rb'
|
||||||
|
|
||||||
module Commands
|
module Commands
|
||||||
module Facts
|
module Facts
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
require_relative '../lists/cheese_photos'
|
require_relative '../../lists/cheese_photos'
|
||||||
|
|
||||||
module Commands
|
module Commands
|
||||||
module Photos
|
module Photos
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
require_relative '../lists/cheese_of_truth'
|
require_relative '../../lists/cheese_of_truth'
|
||||||
|
|
||||||
module Commands
|
module Commands
|
||||||
module Truth
|
module Truth
|
||||||
58
src/commands/not_cheese_related/help.rb
Normal file
58
src/commands/not_cheese_related/help.rb
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# cheeseBot
|
||||||
|
# Copyright (C) 2026 Eri (csxkdv/nxkdv) nxkdv@thenight.club
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
require 'securerandom'
|
||||||
|
|
||||||
|
module Commands
|
||||||
|
module Help
|
||||||
|
extend self
|
||||||
|
|
||||||
|
def register(bot)
|
||||||
|
cmd_key = :help
|
||||||
|
cmd_desc = "Use this command to know more."
|
||||||
|
|
||||||
|
bot.register_application_command(cmd_key, cmd_desc, server_id: ENV['SERVER_ID'])
|
||||||
|
|
||||||
|
bot.application_command(cmd_key) do |event|
|
||||||
|
random_color = ("0x" + Random.bytes(3).unpack1('H*')).to_i(16)
|
||||||
|
author = event.user
|
||||||
|
|
||||||
|
embed_generated = {
|
||||||
|
title: "About cheeseBot...",
|
||||||
|
description: "Here's everything you need to know!",
|
||||||
|
color: random_color,
|
||||||
|
timestamp: Time.now.iso8601,
|
||||||
|
author: {
|
||||||
|
name: author.username,
|
||||||
|
icon_url: author.avatar_url
|
||||||
|
},
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "Who am I?",
|
||||||
|
value: "I'm cheeseBot. Made by <@396376536070094848> related to cheese stuff."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "What are your commands?",
|
||||||
|
value: "/cheese, /fact, /photo, /truth, and more!"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
event.respond(embeds: [embed_generated])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user