Module: Discordrb::API::Server

Defined in:
lib/discordrb/api/server.rb

Overview

API calls for Server

Class Method Summary collapse

Class Method Details

.add_emoji(token, server_id, image, name) ⇒ Object

Adds a custom emoji



359
360
361
362
363
364
365
366
367
368
369
# File 'lib/discordrb/api/server.rb', line 359

def add_emoji(token, server_id, image, name)
  Discordrb::API.request(
    :guilds_sid_emojis,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/emojis",
    { image: image, name: name }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.ban_user(token, server_id, user_id, message_days) ⇒ Object

Ban a user from a server and delete their messages from the last message_days days https://discordapp.com/developers/docs/resources/guild#create-guild-ban



180
181
182
183
184
185
186
187
188
189
# File 'lib/discordrb/api/server.rb', line 180

def ban_user(token, server_id, user_id, message_days)
  Discordrb::API.request(
    :guilds_sid_bans_uid,
    server_id,
    :put,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/bans/#{user_id}?delete-message-days=#{message_days}",
    nil,
    Authorization: token
  )
end

.bans(token, server_id) ⇒ Object



168
169
170
171
172
173
174
175
176
# File 'lib/discordrb/api/server.rb', line 168

def bans(token, server_id)
  Discordrb::API.request(
    :guilds_sid_bans,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/bans",
    Authorization: token
  )
end

.begin_prune(token, server_id, days) ⇒ Object



271
272
273
274
275
276
277
278
279
280
# File 'lib/discordrb/api/server.rb', line 271

def begin_prune(token, server_id, days)
  Discordrb::API.request(
    :guilds_sid_prune,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/prune",
    { days: days },
    Authorization: token
  )
end

.channels(token, server_id) ⇒ Object



72
73
74
75
76
77
78
79
80
# File 'lib/discordrb/api/server.rb', line 72

def channels(token, server_id)
  Discordrb::API.request(
    :guilds_sid_channels,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/channels",
    Authorization: token
  )
end

.create(token, name, region = :london) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/discordrb/api/server.rb', line 7

def create(token, name, region = :london)
  Discordrb::API.request(
    :guilds,
    nil,
    :post,
    "#{Discordrb::API.api_base}/guilds",
    { name: name, region: region.to_s }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.create_channel(token, server_id, name, type) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/discordrb/api/server.rb', line 84

def create_channel(token, server_id, name, type)
  Discordrb::API.request(
    :guilds_sid_channels,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/channels",
    { name: name, type: type }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.create_integration(token, server_id, type, id) ⇒ Object



308
309
310
311
312
313
314
315
316
317
# File 'lib/discordrb/api/server.rb', line 308

def create_integration(token, server_id, type, id)
  Discordrb::API.request(
    :guilds_sid_integrations,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/integrations",
    { type: type, id: id },
    Authorization: token
  )
end

.create_role(token, server_id) ⇒ Object

Create a role (parameters such as name and colour will have to be set by update_role afterwards) https://discordapp.com/developers/docs/resources/guild#get-guild-roles



217
218
219
220
221
222
223
224
225
226
# File 'lib/discordrb/api/server.rb', line 217

def create_role(token, server_id)
  Discordrb::API.request(
    :guilds_sid_roles,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/roles",
    nil,
    Authorization: token
  )
end

.delete(token, server_id) ⇒ Object



60
61
62
63
64
65
66
67
68
# File 'lib/discordrb/api/server.rb', line 60

def delete(token, server_id)
  Discordrb::API.request(
    :guilds_sid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}",
    Authorization: token
  )
end

.delete_emoji(token, server_id, emoji_id) ⇒ Object

Deletes a custom emoji



385
386
387
388
389
390
391
392
393
# File 'lib/discordrb/api/server.rb', line 385

def delete_emoji(token, server_id, emoji_id)
  Discordrb::API.request(
    :guilds_sid_emojis_eid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/emojis/#{emoji_id}",
    Authorization: token
  )
end

.delete_integration(token, server_id, integration_id) ⇒ Object



335
336
337
338
339
340
341
342
343
# File 'lib/discordrb/api/server.rb', line 335

def delete_integration(token, server_id, integration_id)
  Discordrb::API.request(
    :guilds_sid_integrations_iid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/integrations/#{integration_id}",
    Authorization: token
  )
end

.delete_role(token, server_id, role_id) ⇒ Object



247
248
249
250
251
252
253
254
255
# File 'lib/discordrb/api/server.rb', line 247

def delete_role(token, server_id, role_id)
  Discordrb::API.request(
    :guilds_sid_roles_rid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/roles/#{role_id}",
    Authorization: token
  )
end

.edit_emoji(token, server_id, emoji_id, name) ⇒ Object

Changes an emoji name



372
373
374
375
376
377
378
379
380
381
382
# File 'lib/discordrb/api/server.rb', line 372

def edit_emoji(token, server_id, emoji_id, name)
  Discordrb::API.request(
    :guilds_sid_emojis_eid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/emojis/#{emoji_id}",
    { name: name }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.integrations(token, server_id) ⇒ Object



296
297
298
299
300
301
302
303
304
# File 'lib/discordrb/api/server.rb', line 296

def integrations(token, server_id)
  Discordrb::API.request(
    :guilds_sid_integrations,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/integrations",
    Authorization: token
  )
end

.invites(token, server_id) ⇒ Object



284
285
286
287
288
289
290
291
292
# File 'lib/discordrb/api/server.rb', line 284

def invites(token, server_id)
  Discordrb::API.request(
    :guilds_sid_invites,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/invites",
    Authorization: token
  )
end

.prune_count(token, server_id) ⇒ Object



259
260
261
262
263
264
265
266
267
# File 'lib/discordrb/api/server.rb', line 259

def prune_count(token, server_id)
  Discordrb::API.request(
    :guilds_sid_prune,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/prune",
    Authorization: token
  )
end

.remove_member(token, server_id, user_id) ⇒ Object



155
156
157
158
159
160
161
162
163
164
# File 'lib/discordrb/api/server.rb', line 155

def remove_member(token, server_id, user_id)
  Discordrb::API.request(
    :guilds_sid_members_uid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/members/#{user_id}",
    Authorization: token,
    content_type: :json
  )
end

.resolve(token, server_id) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/discordrb/api/server.rb', line 21

def resolve(token, server_id)
  Discordrb::API.request(
    :guilds_sid,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}",
    Authorization: token
  )
end

.resolve_member(token, server_id, user_id) ⇒ Object



112
113
114
115
116
117
118
119
120
# File 'lib/discordrb/api/server.rb', line 112

def resolve_member(token, server_id, user_id)
  Discordrb::API.request(
    :guilds_sid_members_uid,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/members/#{user_id}",
    Authorization: token
  )
end

.resolve_members(token, server_id, limit, after = nil) ⇒ Object



124
125
126
127
128
129
130
131
132
# File 'lib/discordrb/api/server.rb', line 124

def resolve_members(token, server_id, limit, after = nil)
  Discordrb::API.request(
    :guilds_sid_members,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/members?limit=#{limit}#{"&after=#{after}" if after}",
    Authorization: token
  )
end

.roles(token, server_id) ⇒ Object



205
206
207
208
209
210
211
212
213
# File 'lib/discordrb/api/server.rb', line 205

def roles(token, server_id)
  Discordrb::API.request(
    :guilds_sid_roles,
    server_id,
    :get,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/roles",
    Authorization: token
  )
end

.sync_integration(token, server_id, integration_id) ⇒ Object



347
348
349
350
351
352
353
354
355
356
# File 'lib/discordrb/api/server.rb', line 347

def sync_integration(token, server_id, integration_id)
  Discordrb::API.request(
    :guilds_sid_integrations_iid_sync,
    server_id,
    :post,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/integrations/#{integration_id}/sync",
    nil,
    Authorization: token
  )
end

.transfer_ownership(token, server_id, user_id) ⇒ Object

Transfer server ownership



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/discordrb/api/server.rb', line 46

def transfer_ownership(token, server_id, user_id)
  Discordrb::API.request(
    :guilds_sid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}",
    { owner_id: user_id }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.unban_user(token, server_id, user_id) ⇒ Object



193
194
195
196
197
198
199
200
201
# File 'lib/discordrb/api/server.rb', line 193

def unban_user(token, server_id, user_id)
  Discordrb::API.request(
    :guilds_sid_bans_uid,
    server_id,
    :delete,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/bans/#{user_id}",
    Authorization: token
  )
end

.update(token, server_id, name, region, icon, afk_channel_id, afk_timeout) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/discordrb/api/server.rb', line 33

def update(token, server_id, name, region, icon, afk_channel_id, afk_timeout)
  Discordrb::API.request(
    :guilds_sid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}",
    { name: name, region: region, icon: icon, afk_channel_id: afk_channel_id, afk_timeout: afk_timeout }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.update_channel(token, server_id, channel_id, position) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
# File 'lib/discordrb/api/server.rb', line 98

def update_channel(token, server_id, channel_id, position)
  Discordrb::API.request(
    :guilds_sid_channels,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/channels",
    { id: channel_id, position: position }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.update_integration(token, server_id, integration_id, expire_behavior, expire_grace_period, enable_emoticons) ⇒ Object



321
322
323
324
325
326
327
328
329
330
331
# File 'lib/discordrb/api/server.rb', line 321

def update_integration(token, server_id, integration_id, expire_behavior, expire_grace_period, enable_emoticons)
  Discordrb::API.request(
    :guilds_sid_integrations_iid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/integrations/#{integration_id}",
    { expire_behavior: expire_behavior, expire_grace_period: expire_grace_period, enable_emoticons: enable_emoticons }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.update_member(token, server_id, user_id, nick: nil, roles: nil, mute: nil, deaf: nil, channel_id: nil) ⇒ Object



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/discordrb/api/server.rb', line 136

def update_member(token, server_id, user_id, nick: nil, roles: nil, mute: nil, deaf: nil, channel_id: nil)
  Discordrb::API.request(
    :guilds_sid_members_uid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/members/#{user_id}", {
      roles: roles,
      nick: nick,
      mute: mute,
      deaf: deaf,
      channel_id: channel_id
    }.reject { |_, v| v.nil? }.to_json,
    Authorization: token,
    content_type: :json
  )
end

.update_role(token, server_id, role_id, name, colour, hoist = false, mentionable = false, packed_permissions = 36_953_089) ⇒ Object

Update a role Permissions are the Discord defaults; allowed: invite creation, reading/sending messages, sending TTS messages, embedding links, sending files, reading the history, mentioning everybody, connecting to voice, speaking and voice activity (push-to-talk isn't mandatory) https://discordapp.com/developers/docs/resources/guild#batch-modify-guild-role



233
234
235
236
237
238
239
240
241
242
243
# File 'lib/discordrb/api/server.rb', line 233

def update_role(token, server_id, role_id, name, colour, hoist = false, mentionable = false, packed_permissions = 36_953_089)
  Discordrb::API.request(
    :guilds_sid_roles_rid,
    server_id,
    :patch,
    "#{Discordrb::API.api_base}/guilds/#{server_id}/roles/#{role_id}",
    { color: colour, name: name, hoist: hoist, mentionable: mentionable, permissions: packed_permissions }.to_json,
    Authorization: token,
    content_type: :json
  )
end