hikari.events.role_events
Events pertaining to manipulation of roles within guilds.
View Source
# -*- coding: utf-8 -*- # cython: language_level=3 # Copyright (c) 2020 Nekokatt # Copyright (c) 2021-present davfsa # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. """Events pertaining to manipulation of roles within guilds.""" from __future__ import annotations __all__: typing.Sequence[str] = ("RoleEvent", "RoleCreateEvent", "RoleUpdateEvent", "RoleDeleteEvent") import abc import typing import attr from hikari import intents from hikari.events import base_events from hikari.events import shard_events from hikari.internal import attr_extensions if typing.TYPE_CHECKING: from hikari import guilds from hikari import snowflakes from hikari import traits from hikari.api import shard as gateway_shard @base_events.requires_intents(intents.Intents.GUILDS) class RoleEvent(shard_events.ShardEvent, abc.ABC): """Event base for any event that involves guild roles.""" __slots__: typing.Sequence[str] = () @property @abc.abstractmethod def guild_id(self) -> snowflakes.Snowflake: """ID of the guild that this event relates to.""" @property @abc.abstractmethod def role_id(self) -> snowflakes.Snowflake: """ID of the role that this event relates to.""" @attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleCreateEvent(RoleEvent): """Event fired when a role is created.""" shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. role: guilds.Role = attr.field() """Role that was created.""" @property def app(self) -> traits.RESTAware: # <<inherited docstring from Event>>. return self.role.app @property def guild_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.guild_id @property def role_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.id @attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleUpdateEvent(RoleEvent): """Event fired when a role is updated.""" shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. old_role: typing.Optional[guilds.Role] = attr.field() """The old role object. This will be `None` if the role missing from the cache. """ role: guilds.Role = attr.field() """Role that was updated.""" @property def app(self) -> traits.RESTAware: # <<inherited docstring from Event>>. return self.role.app @property def guild_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.guild_id @property def role_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.id @attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleDeleteEvent(RoleEvent): """Event fired when a role is deleted.""" app: traits.RESTAware = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from Event>>. shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. guild_id: snowflakes.Snowflake = attr.field() # <<inherited docstring from RoleEvent>>. role_id: snowflakes.Snowflake = attr.field() # <<inherited docstring from RoleEvent>>. old_role: typing.Optional[guilds.Role] = attr.field() """The old role object. This will be `None` if the role was missing from the cache. """
View Source
@attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleCreateEvent(RoleEvent): """Event fired when a role is created.""" shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. role: guilds.Role = attr.field() """Role that was created.""" @property def app(self) -> traits.RESTAware: # <<inherited docstring from Event>>. return self.role.app @property def guild_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.guild_id @property def role_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.id
Event fired when a role is created.
This requires one of the following combinations of intents in order to be dispatched:
Variables and properties
App instance for this application.
ID of the guild that this event relates to.
Role that was created.
ID of the role that this event relates to.
Methods
View Source
def __init__(self, *, shard, role): self.shard = shard self.role = role
Method generated by attrs for class RoleCreateEvent.
View Source
@classmethod def bitmask(cls) -> int: """Bitmask for this event.""" return cls.__bitmask
Bitmask for this event.
View Source
@classmethod def dispatches(cls) -> typing.Sequence[typing.Type[Event]]: """Sequence of the event classes this event is dispatched as.""" return cls.__dispatches
Sequence of the event classes this event is dispatched as.
View Source
@attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleDeleteEvent(RoleEvent): """Event fired when a role is deleted.""" app: traits.RESTAware = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from Event>>. shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. guild_id: snowflakes.Snowflake = attr.field() # <<inherited docstring from RoleEvent>>. role_id: snowflakes.Snowflake = attr.field() # <<inherited docstring from RoleEvent>>. old_role: typing.Optional[guilds.Role] = attr.field() """The old role object. This will be `None` if the role was missing from the cache. """
Event fired when a role is deleted.
This requires one of the following combinations of intents in order to be dispatched:
Variables and properties
The old role object.
This will be None
if the role was missing from the cache.
Methods
self,
*,
app: hikari.traits.RESTAware,
shard: hikari.api.shard.GatewayShard,
guild_id: hikari.snowflakes.Snowflake,
role_id: hikari.snowflakes.Snowflake,
old_role: Optional[hikari.guilds.Role]
):
View Source
def __init__(self, *, app, shard, guild_id, role_id, old_role): self.app = app self.shard = shard self.guild_id = guild_id self.role_id = role_id self.old_role = old_role
Method generated by attrs for class RoleDeleteEvent.
View Source
@classmethod def bitmask(cls) -> int: """Bitmask for this event.""" return cls.__bitmask
Bitmask for this event.
View Source
@classmethod def dispatches(cls) -> typing.Sequence[typing.Type[Event]]: """Sequence of the event classes this event is dispatched as.""" return cls.__dispatches
Sequence of the event classes this event is dispatched as.
View Source
@base_events.requires_intents(intents.Intents.GUILDS) class RoleEvent(shard_events.ShardEvent, abc.ABC): """Event base for any event that involves guild roles.""" __slots__: typing.Sequence[str] = () @property @abc.abstractmethod def guild_id(self) -> snowflakes.Snowflake: """ID of the guild that this event relates to.""" @property @abc.abstractmethod def role_id(self) -> snowflakes.Snowflake: """ID of the role that this event relates to."""
Event base for any event that involves guild roles.
This requires one of the following combinations of intents in order to be dispatched:
Variables and properties
App instance for this application.
ID of the guild that this event relates to.
ID of the role that this event relates to.
Shard that received this event.
Methods
View Source
@classmethod def bitmask(cls) -> int: """Bitmask for this event.""" return cls.__bitmask
Bitmask for this event.
View Source
@classmethod def dispatches(cls) -> typing.Sequence[typing.Type[Event]]: """Sequence of the event classes this event is dispatched as.""" return cls.__dispatches
Sequence of the event classes this event is dispatched as.
View Source
@attr_extensions.with_copy @attr.define(kw_only=True, weakref_slot=False) @base_events.requires_intents(intents.Intents.GUILDS) class RoleUpdateEvent(RoleEvent): """Event fired when a role is updated.""" shard: gateway_shard.GatewayShard = attr.field(metadata={attr_extensions.SKIP_DEEP_COPY: True}) # <<inherited docstring from ShardEvent>>. old_role: typing.Optional[guilds.Role] = attr.field() """The old role object. This will be `None` if the role missing from the cache. """ role: guilds.Role = attr.field() """Role that was updated.""" @property def app(self) -> traits.RESTAware: # <<inherited docstring from Event>>. return self.role.app @property def guild_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.guild_id @property def role_id(self) -> snowflakes.Snowflake: # <<inherited docstring from RoleEvent>>. return self.role.id
Event fired when a role is updated.
This requires one of the following combinations of intents in order to be dispatched:
Variables and properties
App instance for this application.
ID of the guild that this event relates to.
The old role object.
This will be None
if the role missing from the cache.
Role that was updated.
ID of the role that this event relates to.
Methods
self,
*,
shard: hikari.api.shard.GatewayShard,
old_role: Optional[hikari.guilds.Role],
role: hikari.guilds.Role
):
View Source
def __init__(self, *, shard, old_role, role): self.shard = shard self.old_role = old_role self.role = role
Method generated by attrs for class RoleUpdateEvent.
View Source
@classmethod def bitmask(cls) -> int: """Bitmask for this event.""" return cls.__bitmask
Bitmask for this event.
View Source
@classmethod def dispatches(cls) -> typing.Sequence[typing.Type[Event]]: """Sequence of the event classes this event is dispatched as.""" return cls.__dispatches
Sequence of the event classes this event is dispatched as.