Sha256: 4cd6a99732e3e29a39812d3b8b81a3de11fdb64bed77766b5ddf8898b21fc75c

Contents?: true

Size: 907 Bytes

Versions: 1

Compression:

Stored size: 907 Bytes

Contents

require "discorb"
require "discorb/view"

client = Discorb::Client.new

client.load_extension Discorb::View::Extension

class MyMenu < Discorb::View::Base
  @@texts = ["A", "B"]

  def initialize
    @page = 0
  end

  button :left, "<", :primary do |interaction|
    @page -= 1
  end

  button :right, ">", :primary do |interaction|
    @page += 1
  end

  button :quit, "Quit", :danger do |interaction|
    stop!
  end

  view ->(interaction) { !((0...@@texts.length).include?(@page)) } do |result|
    result.content = "Out of range: Page #{@page + 1}"
  end

  view do |result|
    result.content = @@texts[@page % @@texts.length]
    result.embeds = []
    result.components = [:left, :right, :quit]
  end
end

client.once :standby do
  puts "Ready!"
end

client.on :message do |message|
  next unless message.content == "menu"

  MyMenu.start(message.channel)
end

client.run ENV["DISCORD_BOT_TOKEN"]

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
discorb-view-0.2.0 examples/menu.rb