From ff59f2531949615f51458ebd2b27dfa0325b0428 Mon Sep 17 00:00:00 2001 From: Anna Kudriavtsev Date: Wed, 11 Oct 2023 16:56:03 -0500 Subject: [PATCH] fix(colors): .color command --- modules/colors.rb | 69 ++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/modules/colors.rb b/modules/colors.rb index 739c5b2..65034be 100644 --- a/modules/colors.rb +++ b/modules/colors.rb @@ -40,7 +40,7 @@ def self.assign_color_role(member, new_role) usage: '.c ', min_args: 1 } do |event, *args| - new_role = ColorRole.search(server, args.join(' ')) + new_role = ColorRole.search(event.server, args.join(' ')) next embed t('colors.color.not-found') unless new_role Colors.assign_color_role(event.author, new_role.role) @@ -295,49 +295,50 @@ def self.create_color_roles(server, lightness, radius, count, &) rescue ActiveRecord::RecordNotFound embed t('colors.extra-roles.del.not-found', role.mention) end -end -# rubocop: enable Metrics/ModuleLength -def give_random_color(server, user) - new_role = Colors::ColorRole.for(server).sample.role + # Color roles on join - user.add_role(new_role) -end + member_leave do |event| + PendingMember.for(event.server).destroy_by(user_id: event.user.id) + end -QBot.bot.member_join do |event| - opt = ServerConfig.for(event.server)[:auto_assign_colors] + def give_random_color(server, user) + new_role = Colors::ColorRole.for(server).sample.role + user.add_role(new_role) + end - give_random_color(event.server, event.user) if opt == 'on_join' -end + member_join do |event| + opt = ServerConfig.for(event.server)[:auto_assign_colors] + + give_random_color(event.server, event.user) if opt == 'on_join' + end -QBot.bot.raw(type: :GUILD_MEMBER_ADD) do |event| - server_id = event.data['guild_id'].to_i - opt = ServerConfig.for(server_id)[:auto_assign_colors] + raw(type: :GUILD_MEMBER_ADD) do |event| + server_id = event.data['guild_id'].to_i + opt = ServerConfig.for(server_id)[:auto_assign_colors] - if opt == 'on_screening_pass' && event.data['pending'] - user_id = event.data.dig('user', 'id') - PendingMember.create!(server_id:, user_id:) + if opt == 'on_screening_pass' && event.data['pending'] + user_id = event.data.dig('user', 'id') + PendingMember.create!(server_id:, user_id:) + end end -end -QBot.bot.raw(type: :GUILD_MEMBER_UPDATE) do |event| - server_id = event.data['guild_id'].to_i - opt = ServerConfig.for(server_id)[:auto_assign_colors] + raw(type: :GUILD_MEMBER_UPDATE) do |event| + server_id = event.data['guild_id'].to_i + opt = ServerConfig.for(server_id)[:auto_assign_colors] - if opt == 'on_screening_pass' && event.data['pending'] == false - user_id = event.data.dig('user', 'id') - record = PendingMember.find_by!(server_id:, user_id:) + if opt == 'on_screening_pass' && event.data['pending'] == false + user_id = event.data.dig('user', 'id') + record = PendingMember.find_by!(server_id:, user_id:) - server = event.bot.server(server_id) - member = server.member(user_id) + server = event.bot.server(server_id) + member = server.member(user_id) - give_random_color(server, member) - record.destroy! + give_random_color(server, member) + record.destroy! + end + rescue ActiveRecord::RecordNotFound + nil end -rescue ActiveRecord::RecordNotFound - nil -end - -QBot.bot.member_leave do |event| - PendingMember.for(event.server).destroy_by(user_id: event.user.id) end +# rubocop: enable Metrics/ModuleLength