51 Commits

Author SHA1 Message Date
Rapptz
59a0df5f98 Rename try_insert_user to store_user 2017-01-03 09:51:56 -05:00
Rapptz
5cb3ad14e8 Make emojis and members stateful. 2017-01-03 09:51:55 -05:00
Rapptz
d1d54a468a Rename Server to Guild everywhere. 2017-01-03 09:51:54 -05:00
Rapptz
53ab263125 Split channel types.
This splits them into the following:

* DMChannel
* GroupChannel
* VoiceChannel
* TextChannel

This also makes the channels "stateful".
2017-01-03 09:51:52 -05:00
Rapptz
e4b16851bf Slots use tuples instead now. 2017-01-03 09:51:50 -05:00
Rapptz
45c729b167 Switch IDs to use int instead of str 2017-01-03 09:51:49 -05:00
Rapptz
044b0824e6 Begin working on the rewrite. 2017-01-03 09:51:47 -05:00
Rapptz
c7946606f4 Add Channel.overwrites to get a channel's permission overwrites.
Fixes #414.
2016-12-17 14:00:34 -05:00
Rapptz
26f5bcd725 Fix bug when permission overwrites could be applied out of order.
The bug was due to the fact that the way overwrites work is by doing
a loop of all the values and then applying deny first and then allow.
That way the overwrite is defined if role A and role B deny a
permission but role C allows it (and said member has A, B, C roles)
then the resolution should allow it rather than deny it regardless of
the order of the data it is received in.
2016-09-10 16:11:52 -04:00
Rapptz
18bdd3e7dd Make PrivateChannel.__str__ more useful for groups.
Also demote is_private to a property instead of a slot.
2016-07-15 21:45:23 -04:00
Rapptz
a128249b63 Add support for different message types and call message. 2016-07-13 20:11:18 -04:00
Rapptz
69c506d7ae Handle CHANNEL_UPDATE for group direct messages. 2016-07-13 17:23:35 -04:00
Rapptz
ddd3fd0a3d Begin working on gateway v6 changes.
The first batch of changes are related to channel types and group
direct messages. Support these first so READY begins parsing.
2016-07-13 00:10:16 -04:00
Rapptz
0eccd85711 Add implicit cases to permission resolution in Channel.permissions_for 2016-06-28 20:34:03 -04:00
Rapptz
8b3617111a Support for v5 Gateway. 2016-06-22 05:00:08 -04:00
Rapptz
08674f115b Make Channel.overwrites_for return PermissionOverwrite 2016-06-14 22:26:15 -04:00
Rapptz
9a6234961f Make Channel.changed_roles into an on-the-fly property instead. 2016-06-01 20:33:38 -04:00
Rapptz
e3c4daf717 Add __slots__ for discord.Channel.
Not sure why this was missing.
2016-05-20 18:11:58 -04:00
Rapptz
fe1b5b2941 Add support for voice channel user limits. 2016-05-20 18:11:58 -04:00
Rapptz
9176caa355 Fix Channel.permissions_for to work with the new permission system. 2016-05-12 21:25:18 -04:00
Rapptz
03041bdb0a Add Channel.overwrites_for function to get allow/deny pairs. 2016-04-12 13:10:43 -04:00
Rapptz
1a98e9235a Clarify Channel.position documentation. 2016-03-25 22:51:03 -04:00
Rapptz
2ef38107d8 Add missing created_at properties for other objects.
Such as Channel, PrivateChannel, Object and Role.
2016-03-25 18:30:42 -04:00
Rapptz
13f8b972e6 Fix bug where the everyone role was not being properly resolved.
The permissions_for assumed that the everyone role would be the first
element of the permission overwrites but this is not guaranteed so we
have to guarantee it ourselves.
2016-02-24 15:13:20 -05:00
Rapptz
91ac96daef Add channel specific bitrates. 2016-02-18 19:09:11 -05:00
Rapptz
2d413756b0 Fix PrivateChannel.permissions_for not having self parameter. 2016-01-22 01:16:36 -05:00
Rapptz
855fa7e553 Documentation fixes for Permissions related code. 2016-01-14 12:24:59 -05:00
Rapptz
8974dffc4e Change internal update functions to have a leading underscore. 2016-01-11 14:44:13 -05:00
Rapptz
db4cc791dd Update license of files to 2016. 2016-01-04 22:28:29 -05:00
Rapptz
5a1d7a2d94 Change permissions to remove the can_ prefix. 2016-01-03 21:45:28 -05:00
Rapptz
f1f0e169e4 Add __slots__ where appropriate to data classes. 2015-12-19 06:18:12 -05:00
Rapptz
5f4e13df96 Fix Channel.permissions_for attribute error. 2015-12-17 01:29:20 -05:00
Rapptz
51d91c2a82 Most data classes now support hashing. 2015-12-17 00:32:54 -05:00
Rapptz
f484a5c023 Channel.is_default_channel is now a property named is_default. 2015-12-16 19:54:26 -05:00
Rapptz
9137d92f67 All data classes now support !=, == and str(obj). 2015-12-13 22:53:48 -05:00
Rapptz
ab46afee1d Changed functions that return a constant value into properties. 2015-12-13 20:05:58 -05:00
Rapptz
79bdf2a721 Add enumerators instead of strings.
Changes channel type, status and server region into 3.4 enums.
2015-12-04 22:13:17 -05:00
Rapptz
38e83f0999 "An array" -> "A list" for documentation purposes. 2015-11-28 19:51:32 -05:00
Rapptz
df3cb831a9 Member.roles array now has the default role as the first element. 2015-11-28 19:26:25 -05:00
Rapptz
054cf2e1e0 Channel.permissions_for now correctly handles everyone overwrites. 2015-11-09 00:32:38 -05:00
Rapptz
72674b4c2d Add Channel.mention to mention a channel. 2015-10-23 21:04:52 -04:00
Rapptz
b94dffaf87 Change Permissions constants to be class method factories instead. 2015-10-22 22:20:34 -04:00
Rapptz
9188184e85 Fix permission resolution in Channel.permissions_for 2015-10-22 22:20:33 -04:00
Rapptz
61f62c1468 Add Channel.permissions_for and PrivateChannel.permissions_for.
These functions handle permission resolution for a specific member.

Aids with #18.
2015-10-17 06:21:51 -04:00
Rapptz
be14fd1dcc Add Channel.voice_members
This allows you to see which members are currently in a voice
channel.
2015-10-16 15:52:11 -04:00
Rapptz
120b9cd3b2 Listen to CHANNEL_UPDATE events and add on_channel_update 2015-09-25 16:09:10 -04:00
Rapptz
773fc0ad97 Add support for channel topics. 2015-09-25 15:54:04 -04:00
Rapptz
a9a030cdb2 Move permission overwrite construction to the Channel constructor. 2015-09-25 15:53:45 -04:00
Rapptz
b00ad4ad79 Use kwargs if the number of arguments needed is too many. 2015-09-04 21:16:27 -04:00
Rapptz
0e4ccad32a Parse permission_overwrites in every Channel instance. 2015-08-26 21:20:18 -04:00