Skip to content

Commit

Permalink
Many things.
Browse files Browse the repository at this point in the history
  • Loading branch information
Droid00000 committed Nov 15, 2024
1 parent a3db9b1 commit 7ad15b8
Show file tree
Hide file tree
Showing 13 changed files with 76 additions and 77 deletions.
7 changes: 3 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
FROM ruby:3.3-alpine

RUN apk update && \
apk add --no-cache postgresql-dev ruby-json git build-base libsodium ffmpeg
apk add --no-cache postgresql-dev ruby-json git build-base libsodium-dev ffmpeg

WORKDIR /app

COPY . .

RUN gem install bundler --source https://rubygems.org && \
gem install racc && \
bundle install
bundle install

CMD ["bundle", "exec", "ruby", "--yjit", "core.rb"]
CMD ["bundle", "exec", "ruby", "core.rb"]
12 changes: 3 additions & 9 deletions src/frost/admin/settings.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,11 @@
def settings(type, server)
case type
when :archiver
archiver_records(server: server,
type: :check) ? "**Archive Channel:** <##{archiver_records(server: server,
type: :get)}>" : '**Enabled:** No'
archiver_records(server: server, type: :check) ? "**Archive Channel:** <##{archiver_records(server: server, type: :get)}>" : '**Enabled:** No'
when :booster
booster_records(server: server,
type: :enabled) ? "**Hoist Role:** <@&#{booster_records(server: server,
type: :hoist_role)}>" : '**Enabled:** No'
booster_records(server: server, type: :enabled) ? "**Hoist Role:** <@&#{booster_records(server: server, type: :hoist_role)}>" : '**Enabled:** No'
when :events
event_records(server: server,
type: :enabled) ? "**Roles:** #{event_records(server: server,
type: :get_roles)}" : '**Enabled:** No'
event_records(server: server, type: :enabled) ? "**Roles:** #{event_records(server: server, type: :get_roles).join(', ')}" : '**Enabled:** No'
end
end

Expand Down
2 changes: 1 addition & 1 deletion src/frost/boosters/create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def create_role(data)
return
end

if event.server.role_limit
if data.server.role_limit?
data.edit_response(content: RESPONSE[59])
return
end
Expand Down
10 changes: 7 additions & 3 deletions src/frost/boosters/edit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,13 @@ def edit_role(data)
return
end

data.server.update_role(role: booster_records(server: data.server.id, user: data.user.id, type: :get_role),
name: data.options['name'], colour: resolve_color(data.options['color']),
icon: data.emojis('icon')&.file, reason: REASON[2])
data.server.update_role(
role: booster_records(server: data.server.id, user: data.user.id, type: :get_role),
name: data.options['name'],
colour: resolve_color(data.options['color']),
icon: data.emojis('icon')&.file,
reason: REASON[2]
)

data.edit_response(content: "#{RESPONSE[2]} #{EMOJI[2]}")
end
25 changes: 8 additions & 17 deletions src/frost/emojis/button.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,18 @@
require 'discordrb'
require 'constants'

def button_click(data, button)
unless data.bot.profile.on(data.server).permission?(:manage_emojis)
data.update_message(content: RESPONSE[61])
def create_emoji(data)
unless data.target.emoji?
data.edit_response(content: RESPONSE[55])
return
end

if data.server.emoji_limit?(data.get_component(button).emoji)
data.update_message(content: RESPONSE[58], ephemeral: true)
return
end

data.update_message do |builder, components|
data.edit_response do |builder, components|
components.row do |buttons|
data.message.to_message.buttons.each do |old_button|
buttons.button(style: old_button.custom_id == button ? 4 : old_button.style,
emoji: old_button.emoji.id, custom_id: old_button.custom_id)
data.target.emoji.each_with_index do |emoji, position|
break if position > 4

buttons.button(style: 2, emoji: emoji.id, custom_id: position)
end
end

Expand All @@ -27,9 +23,4 @@ def button_click(data, button)
embed.color = UI[5]
end
end

emoji = data.server.add_emoji(data.get_component(button).emoji.name,
data.get_component(button).emoji.file)

data.send_message(content: "#{RESPONSE[56]} #{emoji.mention}", ephemeral: true)
end
35 changes: 35 additions & 0 deletions src/frost/emojis/click.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

require 'discordrb'
require 'constants'

def button_click(data, button)
unless data.bot.profile.on(data.server).permission?(:manage_emojis)
data.update_message(content: RESPONSE[61])
return
end

if data.server.emoji_limit?(data.get_component(button).emoji)
data.update_message(content: RESPONSE[58], ephemeral: true)
return
end

data.update_message do |builder, components|
components.row do |buttons|
data.message.to_message.buttons.each do |old_button|
buttons.button(style: old_button.custom_id == button ? 4 : old_button.style,
emoji: old_button.emoji.id, custom_id: old_button.custom_id)
end
end

builder.add_embed do |embed|
embed.title = EMBED[28]
embed.color = UI[5]
end
end

emoji = data.server.add_emoji(data.get_component(button).emoji.name,
data.get_component(button).emoji.file)

data.send_message(content: "#{RESPONSE[56]} #{emoji.mention}", ephemeral: true)
end
26 changes: 0 additions & 26 deletions src/frost/emojis/emoji.rb

This file was deleted.

2 changes: 1 addition & 1 deletion src/frost/emojis/handler.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

require_relative 'button'
require_relative 'emoji'
require_relative 'click'
require_relative 'steal'

module EmojiCommands
Expand Down
10 changes: 4 additions & 6 deletions src/frost/emojis/steal.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,14 @@ def steal_emojis(data)
return
end

if data.server.emoji_limit?
data.edit_response(content: RESPONSE[58])
return
end
emojis = []

data.target.emoji.each do |emoji|
break if data.server.emoji_limit?(emoji)

data.server.add_emoji(emoji.name, emoji.file)
emoji = data.server.add_emoji(emoji.name, emoji.file)
emojis << emoji
end

data.edit_response(content: "#{RESPONSE[57]} **#{data.target.emoji.count}**")
data.edit_response(content: "#{RESPONSE[57]} **#{emojis.count}**")
end
14 changes: 9 additions & 5 deletions src/frost/events/edit.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

require 'discordrb'
require 'schema'
require 'discordrb'
require 'constants'
require 'functions'

Expand All @@ -26,14 +26,18 @@ def edit_event_role(data)
return
end

unless data.user.roles.include?(data.server.role(data.options['role']))
unless data.user.roles&.include?(data.server.role(data.options['role']))
data.edit_response(content: RESPONSE[17])
return
end

data.server.update_role(data.options['role'], data.options['name'],
resolve_color(data.options['color']),
data.emojis('icon')&.file, REASON[5])
data.server.update_role(
role: data.options['role'],
name: data.options['name'],
colour: resolve_color(data.options['color']),
icon: data.emojis('icon')&.file,
reason: REASON[5]
)

data.edit_response(content: "#{RESPONSE[2]} #{EMOJI[3]}")
end
2 changes: 1 addition & 1 deletion src/frost/model/constants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
54 => 'Successfully deleted this tag!',
55 => "This message doesn't have any emojis.",
56 => 'Added this emoji to the server:',
57 => 'Successfully added the following amount of emojis:',
57 => 'Added the following amount of emoji(s) to the server:',
58 => 'This server is out of emoji slots.',
59 => 'This server has reached the maximum amount of roles.',
60 => 'The bot needs to have the ``manage roles`` permission to do this.',
Expand Down
2 changes: 1 addition & 1 deletion src/frost/model/functions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
def resolve_color(color)
return nil if color.nil? || !color.match(REGEX[2])

Discordrb::ColourRGB.new(color.strip.delete_prefix('#'))
Discordrb::ColourRGB.new(color.strip.delete('#'))
end

# Converts a unix timestap into a readable timestamp.
Expand Down
6 changes: 3 additions & 3 deletions src/frost/model/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'sequel'
require 'constants'

POSTGRES = Sequel.connect(CONFIG['Postgres']['URL'], max_connections: 7)
POSTGRES = Sequel.connect(CONFIG['Postgres']['URL'])

POSTGRES.create_table?(:Event_Settings) do
primary_key :id
Expand Down Expand Up @@ -152,6 +152,8 @@ def tag_records(name: nil, server: nil, message: nil, channel: nil, owner: nil,
def event_records(server: nil, role: nil, type: nil)
POSTGRES.transaction do
case type
when :get_roles
POSTGRES[:Event_Settings].where(server_id: server).select(:role_id)&.map { |role| "<@&#{role[:role_id]}>" }
when :check_role
!POSTGRES[:Event_Settings].where(server_id: server, role_id: role).select(:role_id).map(:role_id).empty?
when :enabled
Expand All @@ -160,8 +162,6 @@ def event_records(server: nil, role: nil, type: nil)
POSTGRES[:Event_Settings].insert(server_id: server, role_id: role, enabled: true)
when :disable
POSTGRES[:Event_Settings].where(server_id: server).delete
when :get_roles
POSTGRES[:Event_Settings].where(server_id: server).select(:role_id)
end
end
end
Expand Down

0 comments on commit 7ad15b8

Please sign in to comment.