A Discord API wrapper for Python and asyncio built on good intentions.
message_link
property to MessageReference
channel_link
property to MessageReference
(#1877)video_quality_mode
field to GuildStageChannel
(#1891)bytes
, rather than in str
to make good use of speedups (similar to RESTClient
) (#1898)Emoji.parse
typing to make it more explicit (#1870)PRIVATE_MESSAGES
with DM_MESSAGES
(#1874)Permissions.MANAGE_EMOJIS_AND_STICKERS
(#1762)CommandInteractionOption.value
typehint not including float
(#1805)Member.joined_at
is now nullable due to breaking API change
Permissions.MANAGE_EMOJIS_AND_STICKERS
in favour of Permissions.MANAGE_GUILD_EXPREASSIONS
(#1758)clear_x
methods to InteractionMessageBuilder
approximate_member_count
and approximate_presence_count
to OwnGuild
. (#1659)CacheSettings.only_my_member
to only cache the bot member. (#1679)Activity.state
type
set to ActivityType.CUSTOM
, it will show as the text for the custom status.
Syntactic sugar also exists to support simply using name
instead of state
.AuditLogEventType
(#1705)approximate_guild_count
field to own Application
(#1712)attachment
or attachments
is None
(#1702)hikari.impl.bot
module (#1612)User.discriminator
(#1631)global_name
User.__str__()
respects global_name
nowUser.default_avatar_url
returns correct URL for migrated accounts (#1631)TextInputBuilder.required
in favour of TextInputBuilder.is_required
.CommandChoices
instead of AutocompleteChoiceBuilders
when making autocomplete responses. (#1580)messages
argument typing for RESTClient.delete_messages
. (#1581)HTTPSettings.enable_cleanup_closed
to False
.
Guild.get_channel
, Guild.get_emoji
, Guild.get_sticker
and Guild.get_role
now only return entries from the relevant guild. (#1608)Refactors to the component builder interfaces which make them flatter:
add_to_container
from ButtonBuilder
, LinkButtonBuilder
, InteractiveButtonBuilder
, SelectMenuBuilder
, ChannelSelectMenuBuilder
, and TextInputBuilder
; these classes are no-longer generic and no-longer take container
in their inits.TextSelectMenuBuilder.add_to_container
with the TextSelectMenuBuilder.parent
property.
This new property doesn't "finalise" the addition but rather just returns the parent object, or raises if the select menu is an orphan. This change also involves replacing the container
parameter in TextSelectMenuBuilder.__init__
with an optional parent
parameter.SelectOptionBuilder.add_to_menu
; this class isn't generic anymore.TextSelectMenuBuilder.add_option
now takes all the option's configuration as parameters and returns Self
.MessageActionRowBuilder.add_button
into .add_interactive_button
and .add_link_button
.
These both now take all the button's configuration as parameters and return Self
.MessageActionRowBuilder.add_select_menu
now takes all the menu's configuration as parameters and returns Self
.
The new .add_channel_menu
and .add_text_menu
methods should be used for adding text and channel menus. Where .add_channel_menu
returns Self
and .add_text_menu
returns a text menu builder with a parent
property for getting back to the action row builder.ModalActionRowBuilder.add_text_input
now takes all the text input's configuration as parameters and returns Self
.min_length
and max_length
can no-longer be hikari.undefined.UNDEFINED
for the text input builder, and default to 0
and 4000
respectively. This change effects both the types accepted by ModalActionRowBuilder.__init__
and the return types of the relevant properties.emoji_id
and emoji_name
parameters from LinkButtonBuilder.__init__
, and InteractiveButtonBuilder.__init__
.style
and custom_id
parameters from LinkButtonBuilder.__init__
.url
parameter from InteractiveButtonBuilder.__init__
. (#1533)Remove previously deprecated functionality:
Intents.GUILD_BANS
(deprecated alias for Intents.GUILD_MODERATION
)ComponentType.SELECT_MENU
(deprecated alias for Intents.TEXT_SELECT_MENU
)type
argument explicitly to MessageActionRowBuilder.add_select_menu
(#1535)Renamed StickerPack.banner_hash
to StickerPack.banner_asset_id
. (#1572)
TextInputBuilder.required
property to TextInputBuilder.is_required
. (#1533)CommandChoice
s instead of AutocompleteChoiceBuilder
s when making autocomplete responses. (#1539)hikari.impl.bot
moved to hikari.impl.gateway_bot
. (#1576)Role.mention
now returns "@everyone"
for the @everyone
role. (#1528)
Refactors to the component builder interfaces which make them flatter:
hikari.undefined.UNDEFINED
can now be passed to TextInputBuilder.set_placeholder
and TextInputBuilder.set_value
.hikari.impl.special_endpoints.SelectOptionBuilder
. (#1533)CommandChoice.name_localizations
field and separate AutocompleteChoiceBuilder
for use when making autocomplete responses. (#1539)
Implement guild role subscriptions. (#1550)
Add Role.is_guild_linked_role
. (#1551)
hikari.iterators.LazyIterator.flatten
method for flattening a lazy iterator of synchronous iterables. (#1562)
Support sending stickers when creating a message. (#1571)
Added several set methods for required values to the builders:
CommandBuilder.set_name
SlashCommandBuilder.set_description
InteractiveButtonBuilder.set_custom_id
SelectOptionBuilder.set_label
SelectOptionBuilder.set_value
SelectMenuBuilder.set_custom_id
(#1574)emoji=
can now be passed to LinkButtonBuilder.__init__
and InteractiveButtonBuilder.__init__
alone without causing serialization issues (and Pyright will now let you pass it). (#1533)
Open banner.txt
s with utf-8
encoding explicitly. (#1545)
Pyright will now let you pass role_mentions
and user_mentions
to InteractionMessageBuilder.__init__
. (#1560)
Fixed forum channel applied tags not being a sequence of snowflakes. (#1564)
Switch to using https://github.com/discord/twemoji for emoji images. (#1568)
Fixed sticker pack handling and typing:
"banner_asset_id"
or "cover_sticker_id"
weren't included in the payload.StickerPack.banner_asset_id
is now correctly typed as Optional[Snowflake]
.StickerPack.banner_url
and StickerPack.make_banner_url
both now correctly return None
when StickerPack.banner_asset_id
is None
. (#1572)delete_message_days
parameter for ban
methods. (#1496)type
can no-longer be specified while initialise hikari.impl.special_endpoints.TextSelectMenuBuilder
and hikari.impl.special_endpoints.ChannelSelectMenuBuilder
.
hikari.api.special_endpoints.SelectOptionBuilder
no-longer inherits from hikari.api.special_endpoints.ComponentBuilder
(but it still has a build
method). (#1509)SUPPRESS_NOTIFICATIONS
message flag. (#1504)hikari.impl.special_endpoints.ChannelSelectMenuBuilder
and hikari.impl.special_endpoints.TextSelectMenuBuilder
are now both exported directly on hikari.impl
. (#1508)type
property to the component builders. (#1509)abc.abstractmethod
. This gives better type errors. (#1516)token_type
now defaults to "Bot"
when initialising RESTBot
with a string token. (#1527)RateLimitedError
in favour of always waiting on ratelimits. (#1441)sys.stdout
stream to bring more in-line with banner output. (#1485)ComponentType.SELECT_MENU
-> ComponentType.TEXT_SELECT_MENU
MessageActionRowBuilder.add_select_menu
's type
argument explicitly.InteractionChannel
and ResolvedOptionData
moved from hikari.interactions.command_interactions
to hikari.interactions.base_interactions
. (#1455)Intents.GUILD_BANS
to Intents.GUILD_MODERATION
. (#1471)fetch_self
, edit
, delete
, sync
, and create_guild
methods to hikari.templates.Template
. (#1457)suppress_optimization_warning=True
to the GatewayBot
or RESTBot
constructors. (#1459)RESTClient.edit_channnel
to support setting applied_tags
on forum threads. (#1474)reply_must_exist
in create message methods (#1475)logging.config.fileConfig
in init_logging
. (#1485)orjson
as an optional speedup and allow to pass custom json.dumps
and json.loads
functions to all components. (#1486)max_rate_limit
. (#1441)description_localizations
from PartialCommand
to SlashCommand
(removing it from ContextMenuCommand
). (#1470)GuildChannel.edit
. (#1474)hikari.webhooks.ChannelFollowWebhook
not including source in all cases.
source_channel
and source_guild
will be None
instead. (#1480)