team_app.rb 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. require './app/app_forms/app_form.rb'
  2. class TeamApplication < ApplicationForm
  3. def self.process
  4. @process ||= Application.new('Team Application') do |event|
  5. # Calculate majority and check votes
  6. maj = majority(event)
  7. check_votes(event, maj)
  8. rescue StandardError => e
  9. error_embed(e.message)
  10. end
  11. end
  12. def self.approve(event)
  13. # Save the application
  14. app = event.message.embeds.first
  15. # Create Role
  16. role = event.server.create_role(
  17. name: app.title,
  18. colour: 3447003,
  19. hoist: true,
  20. mentionable: true,
  21. reason: 'New Team'
  22. )
  23. # Sort the Team above Clubs
  24. role.sort_above(ENV['TEAM_ROLE'])
  25. # Create Channel
  26. channel = event.server.create_channel(
  27. app.title,
  28. parent: ENV['TEAM_CAT'],
  29. permission_overwrites: [
  30. { id: event.server.everyone_role.id, deny: 1024 },
  31. { id: role.id, allow: 1024 }
  32. ]
  33. )
  34. # Create new team
  35. team = Team.create(
  36. name: app.title,
  37. description: app.description,
  38. role: role.id.to_s,
  39. channel: channel.id.to_s
  40. )
  41. reply = BotResponse.new(
  42. destination: ENV['TEAM_CH'],
  43. embed: message_embed(
  44. "#{team.name} was approved!",
  45. "Request to join with ```pkmn-team #{team.name} | apply | character_name```"
  46. )
  47. )
  48. event.message.delete
  49. reply
  50. end
  51. def self.deny(event)
  52. event.message.delete
  53. end
  54. end