discorb 0.7.3 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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