discorb 0.7.3 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4197e97af48fc47c1062d0327ccc048cb8317701be673a2bce035b108f7cade
4
- data.tar.gz: 7c48b69868636ca4722e3ec2aee50bb6148174c1cfdcf0b31a2d227110aefa76
3
+ metadata.gz: c3274a015f4e303bb978379e4eb01a039088ce3139507bccf6e32dbcf19dfe29
4
+ data.tar.gz: 4f8b8ca01fcbd9e362ff90bdee7880d11769e0c984687be1e7d5774a9da6a8b5
5
5
  SHA512:
6
- metadata.gz: 7215a8dc3b0c3502f1948838aac8c08cc0ae0ac4c7c874dcc695c48fc5ead628f36718f08e7e2854aa46f191e9f0c851ff23a6f96aa82edaa3c7d7c912ff490b
7
- data.tar.gz: 7ade9dcd2e56efb2513928a021d0f557d827a230b02f2c23ee6691cc9decc919f2e51b19e9e95fab13f535e8cc112cc8f3a29ac36e3a2144651a625e60ea0e25
6
+ metadata.gz: 7eb065d83e4fa92ac82bfd70426e48e04aaca4832dcea9890603e04a349998b48f0d39aac1169a047b73014b88517eae05ab9679c1e55e27286e7b411f6454b2
7
+ data.tar.gz: 77bb4471337fbf056af8a3d3493b84218cb6811745ce28e3a33e4684e72f6806c74045af1a58bf8d7e80532d46cf9fb8caa51587e94c8f96660e5ad9ce10bd6b
@@ -0,0 +1,53 @@
1
+ name: Build YARD by version
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ tags:
7
+ - "v*"
8
+ jobs:
9
+ main:
10
+
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ with:
16
+ fetch-depth: 0
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 3.0.2
21
+ bundler-cache: true
22
+ - name: Set up git settings
23
+ run: |
24
+ git config --global user.email "action@github.com"
25
+ git config --global user.name "GitHub Action"
26
+ - name: Clone pages
27
+ env:
28
+ SSH_SECRET: ${{ secrets.SSH }}
29
+ GIT_SSH_COMMAND: ssh -i ~/ssh_secret
30
+ run: |
31
+ echo "$SSH_SECRET" > ~/ssh_secret
32
+ chmod 600 ~/ssh_secret
33
+ git clone git@github.com:discorb-lib/discorb-lib.github.io /tmp/pages
34
+ - name: Install dependencies
35
+ run: |
36
+ bundle config --local with 'docs'
37
+ bundle install
38
+ - name: Generate document
39
+ run: bundle exec rake document:build_all
40
+ - name: Push document
41
+ env:
42
+ SSH_SECRET: ${{ secrets.SSH }}
43
+ GIT_SSH_COMMAND: ssh -i ~/ssh_secret
44
+ run: |
45
+ echo "$SSH_SECRET" > ~/ssh_secret
46
+ chmod 600 ~/ssh_secret
47
+ cp -r ./doc/. /tmp/pages
48
+ cd /tmp/pages
49
+ git add -A
50
+ git commit -m "Update: Update document"
51
+ git update-ref -d refs/remotes/origin/user
52
+ git push origin main -f
53
+ continue-on-error: true
data/Changelog.md CHANGED
@@ -190,4 +190,37 @@ end
190
190
 
191
191
  ## 0.7.3
192
192
 
193
- - Add: Improve `discorb init`
193
+ - Add: Improve `discorb init`
194
+
195
+ ## 0.7.4 (yanked)
196
+
197
+ - Fix: Fix disconnected client
198
+
199
+ ## 0.7.5 (yanked)
200
+
201
+ - Fix: Fix critical error
202
+
203
+ ## 0.7.6
204
+
205
+ - Fix: Fix heartbeating error
206
+
207
+ ## 0.8.0
208
+
209
+ - Add: Add `Guild#fetch_members`
210
+ - Add: Add `Guild#fetch_member_list` as alias of `Guild#fetch_members`
211
+ - Add: Add `Intents#to_h`
212
+ - Add: Add `fetch_member` parameter to `Client#initialize`; Note you should set `false` if your bot doesn't have `GUILD_MEMBERS` intent
213
+ - Change: Change `ready` to `standby` event
214
+ - Change: `ready` will be fired when client receives `READY` event
215
+
216
+ ## 0.8.1
217
+
218
+ - Add: Add FAQ
219
+ - Fix: Fix sending files
220
+ - Add: Add `File.from_string`
221
+ - Fix: Fix `Client#update_presence`
222
+ - Add: Add information in `discorb run -d`
223
+
224
+ ## 0.8.2
225
+
226
+ Fix: Fix `Client#initialize`
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ![discorb](./assets/banner.svg)
2
2
 
3
3
  <div align="center"><a href="https://discorb-lib.github.io/"><img src="https://img.shields.io/badge/Document-discorb--lib.github.io-blue.svg" alt="Document"></a>
4
- <a href="https://rubygems.org/gems/discorb"><img src="https://img.shields.io/gem/dt/discorb?logo=rubygems&logoColor=fff" alt="Gem"></a>
5
- <a href="https://rubygems.org/gems/discorb"><img src="https://img.shields.io/gem/v/discorb?logo=rubygems&logoColor=fff" alt="Gem"></a>
4
+ <a href="https://rubygems.org/gems/discorb"><img src="https://img.shields.io/gem/dt/discorb?logo=rubygems&logoColor=fff&label=Downloads" alt="Gem"></a>
5
+ <a href="https://rubygems.org/gems/discorb"><img src="https://img.shields.io/gem/v/discorb?logo=rubygems&logoColor=fff&label=Version" alt="Gem"></a>
6
6
  <a href="https://discord.gg/hCP6zq8Vpj"><img src="https://img.shields.io/discord/863581274916913193?logo=discord&logoColor=fff&color=5865f2&label=Discord" alt="Discord"></a>
7
7
  <a href="https://github.com/discorb-lib/discorb"><img src="https://img.shields.io/github/stars/discorb-lib/discorb?color=24292e&label=Stars&logo=GitHub&logoColor=fff" alt="GitHub"></a></div>
8
8
 
@@ -28,14 +28,14 @@ Or install it yourself as:
28
28
 
29
29
  ## Usage
30
30
 
31
- ### Simple ping-pong
31
+ ### Ping & Pong
32
32
 
33
33
  ```ruby
34
34
  require "discorb"
35
35
 
36
36
  client = Discorb::Client.new
37
37
 
38
- client.once :ready do
38
+ client.once :standby do
39
39
  puts "Logged in as #{client.user}"
40
40
  end
41
41
 
@@ -49,6 +49,57 @@ end
49
49
  client.run(ENV["DISCORD_BOT_TOKEN"])
50
50
  ```
51
51
 
52
+ ### Quiz Game
53
+
54
+ ```ruby
55
+ require "discorb"
56
+
57
+ client = Discorb::Client.new
58
+
59
+ client.once :standby do
60
+ puts "Logged in as #{client.user}"
61
+ end
62
+
63
+ client.on :message do |message|
64
+ next if message.author.bot?
65
+ next unless message.content == "!quiz"
66
+
67
+ operator = [:+, :-, :*].sample
68
+ num1 = rand(1..10)
69
+ num2 = rand(1..10)
70
+
71
+ val = num1.send(operator, num2)
72
+ message.channel.post("Quiz: `#{num1} #{operator} #{num2}`")
73
+ begin
74
+ msg = client.event_lock(:message, 30) { |m|
75
+ m.content == val.to_s && m.channel == message.channel
76
+ }.wait
77
+ rescue Discorb::TimeoutError
78
+ message.channel.post("No one answered...")
79
+ else
80
+ msg.reply("Correct!")
81
+ end
82
+ end
83
+
84
+ client.run(ENV["DISCORD_BOT_TOKEN"])
85
+ ```
86
+
87
+ ### Slash Commands
88
+
89
+ ```ruby
90
+ require "discorb"
91
+
92
+ client = Discorb::Client.new
93
+
94
+ client.slash("hello", "Greet for you") do |interaction|
95
+ interaction.post("Hello!", ephemeral: true)
96
+ end
97
+
98
+ client.run(ENV["DISCORD_BOT_TOKEN"])
99
+ ```
100
+
101
+ Note: You must run `discorb setup` before using slash commands.
102
+
52
103
  ## Contributing
53
104
 
54
105
  Bug reports and pull requests are welcome on GitHub at https://github.com/discorb-lib/discorb.
data/assets/banner.svg CHANGED
@@ -1,125 +1,101 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
- <svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
5
- y="0px" width="1080px" height="150px" viewBox="0 0 1080 150" enable-background="new 0 0 1080 150" xml:space="preserve">
6
- <g>
7
- <defs>
8
- <rect id="SVGID_1_" x="283.667" y="-12.667" width="343.333" height="201.333"/>
9
- </defs>
10
- <clipPath id="SVGID_2_">
11
- <use xlink:href="#SVGID_1_" overflow="visible"/>
12
- </clipPath>
13
- <g clip-path="url(#SVGID_2_)">
14
- <g>
15
- <g>
16
- <path fill="#2E3338" d="M370.533,119.061c-13.503,0-21.565-10.312-21.565-27.582c0-18.543,9.872-30.525,25.149-30.525
17
- c5.186,0,10.446,0.915,14.432,2.509l3.429,1.372V31.79l6.393-1.006v86.997h-4.456l-1.936-12.146l-3.522,4.208
18
- C383.265,116.045,377.402,119.061,370.533,119.061z M374.501,65.554c-9.191,0-19.013,6.676-19.013,25.413
19
- c0,13.96,6.559,22.98,16.708,22.98c7.18,0,13.308-3.736,19.286-11.758l0.495-0.665V69.983l-1.358-0.697
20
- C385.253,66.53,381.035,65.554,374.501,65.554z"/>
21
- </g>
22
- <g>
23
- <path fill="#2E3338" d="M419.624,117.78V61.721h6.393v56.059H419.624z M422.884,44.433c-2.645,0-4.796-2.094-4.796-4.668
24
- c0-2.6,2.196-4.796,4.796-4.796c2.574,0,4.668,2.152,4.668,4.796C427.552,42.338,425.458,44.433,422.884,44.433z"/>
25
- </g>
26
- <g>
27
- <path fill="#2E3338" d="M463.332,119.061c-7.015,0-14.662-2.282-19.529-4.647l0.809-5.23c4.905,2.794,11.627,5.405,19.616,5.405
28
- c9.34,0,14.917-3.949,14.917-10.564c0-8.187-6.482-10.382-16.372-12.797c-13.937-3.485-18.19-7.314-18.19-16.388
29
- c0-8.611,7.638-14.397,19.005-14.397c6.173,0,11.985,1.055,17.305,3.139l-0.902,5.412c-5.417-2.532-11.33-3.95-16.659-3.95
30
- c-12.06,0-12.997,7.302-12.997,9.54c0,6.302,5.57,8.979,14.559,11.256c15.329,3.897,20.003,7.967,20.003,17.418
31
- C484.897,113.3,477.037,119.061,463.332,119.061z"/>
32
- </g>
33
- <g>
34
- <path fill="#2E3338" d="M523.746,119.061c-15.986,0-25.917-11.206-25.917-29.246c0-17.843,10.273-29.373,26.173-29.373
35
- c6.897,0,12.696,1.453,17.263,4.322l-0.821,5.493c-5.086-3.282-10.441-4.83-16.57-4.83c-12.043,0-19.525,9.296-19.525,24.262
36
- c0,15.271,7.777,24.389,20.805,24.389c6.137,0,11.114-1.451,15.996-4.757l0.746,4.59
37
- C536.669,117.509,531.15,119.061,523.746,119.061z"/>
38
- </g>
39
- <g>
40
- <path fill="#2E3338" d="M580.834,119.061c-15.511,0-25.533-11.479-25.533-29.246c0-17.843,10.022-29.373,25.533-29.373
41
- c15.744,0,25.917,11.53,25.917,29.373C606.751,107.581,596.578,119.061,580.834,119.061z M580.834,65.042
42
- c-11.729,0-19.014,9.492-19.014,24.772c0,15.049,7.463,24.773,19.014,24.773c11.964,0,19.396-9.492,19.396-24.773
43
- C600.23,74.766,592.617,65.042,580.834,65.042z"/>
44
- </g>
45
- <g>
46
- <path d="M623.652,117.78V61.721h4.444l2.615,16.91l3.563-5.661c3.16-5.019,8.634-11.016,17.176-12.309l0.981,5.953
47
- c-9.186,1.447-17.664,7.67-22.117,16.437l-0.271,0.533v34.196H623.652z"/>
48
- </g>
49
- <g>
50
- <path d="M688.224,118.549c-8.27,0-14.267-1.167-21.31-3.208V31.79l6.393-1.006V72.56l4.295-4.43
51
- c5.017-5.173,10.417-7.688,16.51-7.688c13.302,0,21.565,10.569,21.565,27.582C715.677,107.423,705.671,118.549,688.224,118.549z
52
- M692.447,65.554c-6.539,0-12.794,3.675-18.593,10.923l-0.548,0.685v33.856l1.64,0.601c3.981,1.461,7.108,2.202,13.148,2.202
53
- c9.608,0,21.062-4.387,21.062-25.285C709.156,74.575,702.598,65.554,692.447,65.554z"/>
54
- </g>
55
- </g>
56
- </g>
57
- </g>
58
- <g>
59
- <defs>
60
- <rect id="SVGID_3_" x="610.334" y="8" width="268" height="246"/>
61
- </defs>
62
- <clipPath id="SVGID_4_">
63
- <use xlink:href="#SVGID_3_" overflow="visible"/>
64
- </clipPath>
65
- <g clip-path="url(#SVGID_4_)">
66
- <g>
67
- <path fill="#2E3338" d="M391.782,120.28l-1.408-8.833c-4.608,5.505-10.88,10.113-19.841,10.113
68
- c-13.185,0-24.065-9.601-24.065-30.082c0-22.272,12.8-33.025,27.649-33.025c6.017,0,11.521,1.152,15.361,2.688v-31.49
69
- l11.393-1.792v92.42H391.782z M389.478,71.51c-4.736-2.432-8.448-3.456-14.977-3.456c-9.601,0-16.513,7.809-16.513,22.913
70
- c0,13.441,6.016,20.48,14.208,20.48c7.041,0,12.417-4.224,17.281-10.752V71.51z"/>
71
- <path fill="#2E3338" d="M422.884,46.933c-3.968,0-7.296-3.2-7.296-7.168s3.328-7.296,7.296-7.296s7.168,3.328,7.168,7.296
72
- S426.852,46.933,422.884,46.933z M417.124,120.28V59.221h11.393v61.059H417.124z"/>
73
- <path fill="#2E3338" d="M463.332,121.561c-8.064,0-17.025-2.816-22.273-5.76l1.664-10.754c5.76,3.969,13.185,7.041,21.505,7.041
74
- c7.808,0,12.417-2.944,12.417-8.064c0-5.633-3.456-7.68-14.465-10.368c-14.336-3.585-20.097-7.937-20.097-18.817
75
- c0-9.729,8.192-16.897,21.505-16.897c7.552,0,14.336,1.536,20.097,4.096l-1.792,10.752c-5.376-3.072-12.161-5.248-18.561-5.248
76
- c-6.913,0-10.497,2.688-10.497,7.04c0,4.096,3.072,6.4,12.672,8.832c15.105,3.841,21.889,8.193,21.889,19.842
77
- C487.397,114.393,479.077,121.561,463.332,121.561z"/>
78
- <path fill="#2E3338" d="M523.746,121.561c-16.385,0-28.417-11.393-28.417-31.746c0-20.865,12.8-31.873,28.673-31.873
79
- c8.96,0,15.36,2.304,19.968,5.632l-1.664,11.136c-5.632-4.608-11.392-6.784-18.432-6.784c-9.985,0-17.025,7.552-17.025,21.762
80
- c0,14.848,7.552,21.889,18.305,21.889c6.145,0,11.521-1.408,17.793-6.785l1.664,10.241
81
- C538.339,119.768,531.938,121.561,523.746,121.561z"/>
82
- <path fill="#2E3338" d="M580.834,121.561c-16.258,0-28.033-11.648-28.033-31.746c0-20.097,11.775-31.873,28.033-31.873
83
- c16.385,0,28.417,11.776,28.417,31.873C609.251,109.912,597.219,121.561,580.834,121.561z M580.834,67.542
84
- c-11.009,0-16.514,9.472-16.514,22.272c0,12.545,5.761,22.273,16.514,22.273c11.264,0,16.896-9.473,16.896-22.273
85
- C597.73,77.271,591.842,67.542,580.834,67.542z"/>
86
- <path fill="#CC342D" d="M632.545,84.183v36.098h-11.393V59.221h9.088l1.92,12.417c4.353-6.913,11.393-13.185,21.377-13.697
87
- l1.793,10.88C645.217,69.334,636.641,76.118,632.545,84.183z"/>
88
- <path fill="#CC342D" d="M688.224,121.049c-9.217,0-15.745-1.408-23.81-3.841V29.652l11.393-1.792v38.53
89
- c4.096-4.224,9.984-8.448,18.305-8.448c13.185,0,24.065,9.729,24.065,30.082C718.177,110.296,705.888,121.049,688.224,121.049z
90
- M692.447,68.054c-6.4,0-12.032,4.224-16.641,9.984v31.233c3.84,1.408,6.656,2.049,12.288,2.049
91
- c11.905,0,18.562-7.041,18.562-22.785C706.656,75.222,700.64,68.054,692.447,68.054z"/>
92
- </g>
93
- </g>
94
- </g>
95
- <g>
96
- </g>
97
- <g>
98
- </g>
99
- <g>
100
- </g>
101
- <g>
102
- </g>
103
- <g>
104
- </g>
105
- <g>
106
- </g>
107
- <g>
108
- </g>
109
- <g>
110
- </g>
111
- <g>
112
- </g>
113
- <g>
114
- </g>
115
- <g>
116
- </g>
117
- <g>
118
- </g>
119
- <g>
120
- </g>
121
- <g>
122
- </g>
123
- <g>
124
- </g>
125
- </svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
5
+ y="0px" width="1080px" height="150px" viewBox="0 0 1080 150" enable-background="new 0 0 1080 150" xml:space="preserve">
6
+ <rect x="0" fill="#FFFFFF" width="1080" height="150"/>
7
+ <g>
8
+ <g>
9
+ <defs>
10
+ <rect id="SVGID_1_" x="283.667" y="-12.667" width="343.333" height="201.333"/>
11
+ </defs>
12
+ <clipPath id="SVGID_2_">
13
+ <use xlink:href="#SVGID_1_" overflow="visible"/>
14
+ </clipPath>
15
+ <g clip-path="url(#SVGID_2_)">
16
+ <g>
17
+ <g>
18
+ <path fill="#2E3338" d="M370.532,119.061c-13.503,0-21.564-10.312-21.564-27.582c0-18.542,9.872-30.524,25.148-30.524
19
+ c5.187,0,10.446,0.915,14.433,2.509l3.429,1.372V31.79l6.393-1.006v86.997h-4.456l-1.936-12.146l-3.522,4.209
20
+ C383.265,116.045,377.402,119.061,370.532,119.061z M374.501,65.554c-9.191,0-19.014,6.676-19.014,25.413
21
+ c0,13.961,6.56,22.98,16.708,22.98c7.181,0,13.309-3.736,19.286-11.758l0.495-0.666V69.983l-1.358-0.697
22
+ C385.253,66.53,381.034,65.554,374.501,65.554z"/>
23
+ </g>
24
+ <g>
25
+ <path fill="#2E3338" d="M419.623,117.779V61.721h6.394v56.058H419.623z M422.884,44.433c-2.646,0-4.796-2.094-4.796-4.668
26
+ c0-2.6,2.195-4.796,4.796-4.796c2.573,0,4.668,2.152,4.668,4.796C427.552,42.338,425.457,44.433,422.884,44.433z"/>
27
+ </g>
28
+ <g>
29
+ <path fill="#2E3338" d="M463.332,119.061c-7.016,0-14.662-2.281-19.529-4.646l0.809-5.23
30
+ c4.905,2.795,11.627,5.405,19.616,5.405c9.34,0,14.917-3.948,14.917-10.563c0-8.188-6.482-10.383-16.372-12.797
31
+ c-13.937-3.485-18.19-7.314-18.19-16.389c0-8.611,7.639-14.397,19.006-14.397c6.173,0,11.984,1.055,17.305,3.139l-0.902,5.412
32
+ c-5.417-2.532-11.33-3.95-16.659-3.95c-12.06,0-12.997,7.302-12.997,9.54c0,6.303,5.57,8.979,14.56,11.256
33
+ c15.329,3.896,20.003,7.967,20.003,17.418C484.897,113.3,477.036,119.061,463.332,119.061z"/>
34
+ </g>
35
+ <g>
36
+ <path fill="#2E3338" d="M523.745,119.061c-15.985,0-25.917-11.205-25.917-29.246c0-17.842,10.273-29.373,26.174-29.373
37
+ c6.896,0,12.695,1.453,17.263,4.322l-0.821,5.493c-5.086-3.282-10.44-4.83-16.57-4.83c-12.043,0-19.524,9.296-19.524,24.262
38
+ c0,15.271,7.776,24.389,20.805,24.389c6.138,0,11.114-1.451,15.996-4.758l0.746,4.591
39
+ C536.669,117.51,531.15,119.061,523.745,119.061z"/>
40
+ </g>
41
+ <g>
42
+ <path fill="#2E3338" d="M580.834,119.061c-15.512,0-25.533-11.479-25.533-29.246c0-17.842,10.021-29.373,25.533-29.373
43
+ c15.743,0,25.916,11.53,25.916,29.373C606.75,107.581,596.577,119.061,580.834,119.061z M580.834,65.042
44
+ c-11.729,0-19.015,9.492-19.015,24.772c0,15.049,7.463,24.772,19.015,24.772c11.964,0,19.396-9.491,19.396-24.772
45
+ C600.23,74.766,592.616,65.042,580.834,65.042z"/>
46
+ </g>
47
+ <g>
48
+ <path d="M623.652,117.779V61.721h4.444l2.615,16.91l3.563-5.661c3.16-5.019,8.634-11.016,17.176-12.309l0.981,5.953
49
+ c-9.187,1.447-17.664,7.67-22.117,16.437l-0.271,0.533v34.195H623.652L623.652,117.779z"/>
50
+ </g>
51
+ <g>
52
+ <path d="M688.224,118.549c-8.271,0-14.268-1.167-21.311-3.208V31.79l6.394-1.006V72.56l4.295-4.43
53
+ c5.017-5.173,10.417-7.688,16.51-7.688c13.302,0,21.565,10.569,21.565,27.582C715.677,107.423,705.671,118.549,688.224,118.549
54
+ z M692.447,65.554c-6.539,0-12.794,3.675-18.593,10.922l-0.548,0.686v33.855l1.64,0.602c3.981,1.461,7.108,2.201,13.148,2.201
55
+ c9.607,0,21.062-4.387,21.062-25.284C709.156,74.575,702.598,65.554,692.447,65.554z"/>
56
+ </g>
57
+ </g>
58
+ </g>
59
+ </g>
60
+ </g>
61
+ <g>
62
+ <g>
63
+ <defs>
64
+ <rect id="SVGID_3_" x="610.334" y="8" width="268" height="246"/>
65
+ </defs>
66
+ <clipPath id="SVGID_4_">
67
+ <use xlink:href="#SVGID_3_" overflow="visible"/>
68
+ </clipPath>
69
+ <g clip-path="url(#SVGID_4_)">
70
+ <g>
71
+ <path fill="#2E3338" d="M391.781,120.279l-1.408-8.832c-4.607,5.505-10.88,10.113-19.841,10.113
72
+ c-13.185,0-24.064-9.602-24.064-30.082c0-22.272,12.8-33.025,27.648-33.025c6.018,0,11.521,1.152,15.361,2.688v-31.49
73
+ l11.393-1.792v92.42H391.781L391.781,120.279z M389.478,71.51c-4.736-2.432-8.448-3.456-14.977-3.456
74
+ c-9.602,0-16.514,7.809-16.514,22.913c0,13.441,6.017,20.48,14.208,20.48c7.041,0,12.417-4.225,17.281-10.752L389.478,71.51
75
+ L389.478,71.51z"/>
76
+ <path fill="#2E3338" d="M422.884,46.933c-3.968,0-7.296-3.2-7.296-7.168c0-3.968,3.328-7.296,7.296-7.296
77
+ s7.168,3.328,7.168,7.296C430.052,43.733,426.852,46.933,422.884,46.933z M417.123,120.279V59.221h11.394v61.058H417.123z"/>
78
+ <path fill="#2E3338" d="M463.332,121.561c-8.064,0-17.025-2.815-22.273-5.76l1.664-10.754c5.76,3.969,13.185,7.041,21.505,7.041
79
+ c7.808,0,12.417-2.943,12.417-8.064c0-5.633-3.456-7.68-14.465-10.367c-14.336-3.586-20.098-7.938-20.098-18.817
80
+ c0-9.729,8.192-16.897,21.506-16.897c7.552,0,14.336,1.536,20.097,4.096l-1.792,10.752c-5.376-3.072-12.161-5.248-18.561-5.248
81
+ c-6.913,0-10.498,2.688-10.498,7.04c0,4.096,3.072,6.4,12.673,8.832c15.104,3.841,21.889,8.193,21.889,19.842
82
+ C487.397,114.393,479.076,121.561,463.332,121.561z"/>
83
+ <path fill="#2E3338" d="M523.745,121.561c-16.385,0-28.417-11.393-28.417-31.746c0-20.864,12.801-31.873,28.674-31.873
84
+ c8.96,0,15.359,2.304,19.968,5.632l-1.664,11.136c-5.632-4.608-11.393-6.784-18.433-6.784c-9.984,0-17.024,7.552-17.024,21.761
85
+ c0,14.849,7.552,21.89,18.305,21.89c6.146,0,11.521-1.408,17.793-6.785l1.664,10.241
86
+ C538.339,119.768,531.938,121.561,523.745,121.561z"/>
87
+ <path fill="#2E3338" d="M580.834,121.561c-16.259,0-28.033-11.647-28.033-31.746c0-20.096,11.774-31.873,28.033-31.873
88
+ c16.385,0,28.416,11.776,28.416,31.873C609.25,109.912,597.219,121.561,580.834,121.561z M580.834,67.542
89
+ c-11.01,0-16.515,9.472-16.515,22.272c0,12.545,5.761,22.272,16.515,22.272c11.264,0,16.896-9.474,16.896-22.272
90
+ C597.73,77.271,591.842,67.542,580.834,67.542z"/>
91
+ <path fill="#CC342D" d="M632.545,84.184v36.098h-11.394v-61.06h9.088l1.92,12.417c4.354-6.913,11.394-13.185,21.377-13.697
92
+ l1.793,10.88C645.217,69.334,636.641,76.118,632.545,84.184z"/>
93
+ <path fill="#CC342D" d="M688.224,121.049c-9.217,0-15.745-1.408-23.811-3.841V29.652l11.394-1.792v38.53
94
+ c4.096-4.224,9.984-8.448,18.305-8.448c13.186,0,24.065,9.729,24.065,30.082C718.177,110.296,705.888,121.049,688.224,121.049z
95
+ M692.447,68.054c-6.399,0-12.032,4.224-16.641,9.984v31.233c3.84,1.408,6.656,2.049,12.288,2.049
96
+ c11.905,0,18.562-7.041,18.562-22.785C706.656,75.222,700.64,68.054,692.447,68.054z"/>
97
+ </g>
98
+ </g>
99
+ </g>
100
+ </g>
101
+ </svg>
data/docs/events.md CHANGED
@@ -22,7 +22,7 @@ Since v0.2.5, you can also register event handlers by adding a method to the cli
22
22
  client = Discorb::Client.new
23
23
 
24
24
  class << client
25
- def on_ready
25
+ def on_standby
26
26
  puts "Ready!"
27
27
  end
28
28
  end
@@ -43,7 +43,7 @@ end
43
43
  ```
44
44
 
45
45
  This example will print `Override!`, but not `This event handler is overrideable!`.
46
- This is useful for registering event handlers for default behaviour on errors.
46
+ This is useful for registering event handlers as default behaviour, such as error handlers.
47
47
 
48
48
  ```ruby
49
49
  # In the library...
@@ -55,7 +55,7 @@ end
55
55
  # In your code...
56
56
 
57
57
  client.on :command_error do |event, error|
58
- event.message.reply "An error occurred while executing that command!\n#{error.full_message}"
58
+ event.message.reply "An error occurred while executing the command!\n#{error.full_message}"
59
59
  end
60
60
  ```
61
61
 
@@ -73,7 +73,11 @@ Fires when a event is received.
73
73
 
74
74
  #### `ready()`
75
75
 
76
- Fires when the client is ready.
76
+ Fires when the client receives the `READY` event.
77
+
78
+ #### `standby()`
79
+
80
+ Fires when the client is standby. (When the client connects to Discord, and has cached guilds and members.)
77
81
 
78
82
  #### `resumed()`
79
83
 
data/docs/faq.md ADDED
@@ -0,0 +1,77 @@
1
+ # @title FAQ
2
+
3
+ # Fequently asked questions
4
+
5
+ ## What is `Async::Task`?
6
+
7
+ Async::Task is a object for asynchronous tasks.
8
+
9
+ https://socketry.github.io/async/ for more information.
10
+
11
+ ## How do I do something with sent messages?
12
+
13
+ Use `Async::Task#wait` method.
14
+
15
+ ```ruby
16
+ # NG
17
+ message = channel.post("Hello world!") # => Async::Task
18
+ message.pin # => NoMethodError
19
+
20
+ # OK
21
+ message = channel.post("Hello world!").wait # => Message
22
+ message.pin
23
+ ```
24
+
25
+ ## How can I send DM to a user?
26
+
27
+ Use {Discorb::User#post} method, {Discorb::User} includes {Discorb::Messageable}.
28
+
29
+ ## How can I edit status?
30
+
31
+ Use {Discorb::Client#update_presence} method.
32
+
33
+ ```ruby
34
+ %i[standby guild_join guild_leave].each do |event|
35
+ client.on event do
36
+ client.update_presence(
37
+ Discorb::Activity.new(
38
+ name: "#{client.guilds.length} Servers"
39
+ ),
40
+ status: :online
41
+ )
42
+ end
43
+ end
44
+
45
+ client.on :ready do
46
+ client.update_presence(status: :dnd)
47
+ end
48
+ ```
49
+
50
+ ## How can I send files?
51
+
52
+ Use {Discorb::File} class.
53
+
54
+ ```ruby
55
+ # Send a file
56
+ message.channel.post file: Discorb::File.new(File.open("./README.md"))
57
+
58
+ # Send some files with text
59
+ message.channel.post "File!", files: [Discorb::File.new(File.open("./README.md")), Discorb::File.new(File.open("./License.txt"))]
60
+
61
+ # Send a string as a file
62
+ message.channel.post file: Discorb::File.from_string("Hello world!", "hello.txt")
63
+ ```
64
+
65
+ # Not fequently asked questions
66
+
67
+ ## How can I pronounce `discorb`?
68
+
69
+ Discorb is pronounced `disco-R-B`.
70
+
71
+ ## Why did you make `discorb`?
72
+
73
+ There are many reasons -- One is I didn't like `discordrb`'s `bot.message` -- but the main reason is, "Just for Fun".
74
+
75
+ ## How was `discorb` named?
76
+
77
+ `discord` and `.rb`.
data/docs/license.md ADDED
@@ -0,0 +1,7 @@
1
+ # @title License
2
+
3
+ # License
4
+
5
+ discorb is licensed under the [MIT license](https://opensource.org/licenses/MIT).
6
+
7
+ {include:file:License.txt}
data/docs/tutorial.md CHANGED
@@ -101,7 +101,7 @@ Dotenv.load # Loads .env file
101
101
 
102
102
  client = Discorb::Client.new # Create client for connecting to Discord
103
103
 
104
- client.once :ready do
104
+ client.once :standby do
105
105
  puts "Logged in as #{client.user}" # Prints username of logged in user
106
106
  end
107
107
 
@@ -3,7 +3,7 @@ require "json"
3
3
 
4
4
  client = Discorb::Client.new
5
5
 
6
- client.once :ready do
6
+ client.once :standby do
7
7
  puts "Logged in as #{client.user}"
8
8
  end
9
9
 
@@ -2,7 +2,7 @@ require "discorb"
2
2
 
3
3
  client = Discorb::Client.new
4
4
 
5
- client.once :ready do
5
+ client.once :standby do
6
6
  puts "Logged in as #{client.user}"
7
7
  end
8
8
 
@@ -8,7 +8,7 @@ def convert_role(guild, string)
8
8
  end
9
9
  end
10
10
 
11
- client.once :ready do
11
+ client.once :standby do
12
12
  puts "Logged in as #{client.user}"
13
13
  end
14
14
 
@@ -32,7 +32,7 @@ SECTIONS = [
32
32
 
33
33
  WIKIPEDIA_CREDIT = "(From: [Wikipedia](https://en.wikipedia.org/wiki/Ruby_(programming_language)))"
34
34
 
35
- client.once :ready do
35
+ client.once :standby do
36
36
  puts "Logged in as #{client.user}"
37
37
  end
38
38
 
@@ -3,7 +3,7 @@ require_relative "message_expander"
3
3
 
4
4
  client = Discorb::Client.new
5
5
 
6
- client.once :ready do
6
+ client.once :standby do
7
7
  puts "Logged in as #{client.user}"
8
8
  end
9
9
 
@@ -2,7 +2,7 @@ require "discorb"
2
2
 
3
3
  client = Discorb::Client.new
4
4
 
5
- client.once :ready do
5
+ client.once :standby do
6
6
  puts "Logged in as #{client.user}"
7
7
  end
8
8
 
@@ -2,7 +2,7 @@ require "discorb"
2
2
 
3
3
  client = Discorb::Client.new
4
4
 
5
- client.once :ready do
5
+ client.once :standby do
6
6
  puts "Logged in as #{client.user}"
7
7
  end
8
8