- Fixed updating and creating parts.
- Fixed repository saving.
- Removed debugging statement.
- Removed
bind_right
statement that was left over. - Fixed setting overwrites.
- Removed option for
bot = false
. This option wouldn't have worked anyway so I am not classing it as a breaking change. - Converted all getter and setter functions in parts to protected. Again, shouldn't be a breaking change as these function aren't meant to be used outside of the library.
- Webhooks:
- Added phpdoc to webhook part.
- Added webhook type constants
- Guilds:
- Added new guild attributes.
- Removed unused attributes cache from part.
- Removed
password
attribute fromClient
. - Added new user attributes and flags.
- Voice client now handles websocket closes better.
- Client will now load online users regardless of
loadAllMembers
option. This option will now cause the client to initiate guild member chunking offline members.
First release for many years. Contains many bug fixes and stability patches so this is the most important update since.
- PHP 7.0 is now required. PHP 5.x is no longer supported.
- Package versions:
- illuminate/support: now supports Laravel 6.x and 7.x
- nesbot/carbon: was ^1.18, now ^2.38
- symfony/options-resolver: was ^3.0, now ^5.1.3
- monolog/monolog: was ^1.19, now ^2.1
- Cache adapters such as apc, memcache and redis are no longer supported. There is no longer a
cachePool
option. - ext-libevent is no longer supported as it only applies for PHP 5.x.
- The
Collection
class no longer extends Laravel collections.- As such, some functions are no longer present.
- Feel free to add an issue if you would like to see a function added.
- Channels:
Channel::setPermissions()
function now takes a role or member as well as two arrays: one array of allow permissions and one array of deny permissions.Channel::createInvite()
now takes an array of options. See the Discord developer docs for a list of valid options.- Messages can no longer be created using the message repository as part of the channel. Use
Channel::sendMessage()
instead.
- Overwrites:
- The
allow
anddeny
parameters of an overwrite are an instance ofChannelPermission
instead ofint
.
- The
- Guilds:
- Removed old region constants. Added the
Guild::getVoiceRegions()
function to get an array of valid regions. Guild::validateRegion()
now has to perform an async HTTP request to validate the region. Only use this if nessasary.
- Removed old region constants. Added the
- Removed the
Game
class. Renamed toActivity
and new attributes added. Discord::updatePresence()
now takes anActivity
object as well as optionsidle
,status
andafk
.
- Added
getLoop()
andgetLogger()
functions to theDiscord
client. - Collectors:
- Channels now have message collectors. See the phpdoc of
Channel::createMessageColletor()
for more information. - Messages now have reaction collectors. See the phpdoc of
Message::createReactionCollector()
for more information.
- Channels now have message collectors. See the phpdoc of
- Added the
Reaction
class. - Added the
Webhook
class. - Implemented gateway intents:
- See the
Intents
class for constants. - User can specify an
intents
field in the options array, containing either an array of intents or an integer corresponding to the intents.
- See the
- WebSocket:
- Added new events:
GUILD_INTEGRATIONS_UPDATE
,INVITE_CREATE
,INVITE_DELETE
,MESSAGE_REACTION_REMOVE_EMOJI
. - Client will not retrieve guild bans by default anymore. Set
retrieveBans
totrue
in options to retrieve on guild availability.
- Added new events:
- Command client:
- Help command now prints a rich embed (#305 thanks @oliverschloebe)
- Commands have a short and long description.
- Commands have a cooldown option.
- Factory now has a
part()
andrepository()
function to bypassstrpos
functions. - Channels:
- Added new attributes.
- Added new channel types.
- Added webhook classes and repositories.
Channel::setOverwrite()
has been added to perform the action ofsetPermissions()
from the previous version.
- Messages:
- Added new attributes.
- Added new message types.
- Added
Message::delayedReply()
to perform a reply after a specified duration. Message::react()
andMessage::deleteReaction()
now takes anEmoji
object or a string emoji.- Added
Message::delete()
to delete a message without using the repository. - Added
Message::addEmbed()
to add an embed to the message. - Added the
MessageReaction
class to represent a reaction to a message.
- Embeds:
- Added the
type
parameter.
- Added the
- Emojis:
- Added the
animated
parameter. - Added the
Emoji::toReactionString()
function to convert to a format to put in aReaction
object. - Added the
Emoji::__toString()
object for sending emojis in messages.
- Added the
- Guilds:
- Guild region is no longer checked before saving. Make sure to handle any exceptions from Discord servers and do not spam.
- Roles can now update their
mentionable
attribute.
- Permissions:
- Members:
- Added new attributes.
- The
game
attribute now returns anActivity
part.
- Presence updates:
- Typing updates:
- Voice state updates:
- Improved memory usage by removing
resolve
andreject
functions fromPart
s.- Memory leak has been improved but is still preset.
AbstractRepository::freshen()
now actually freshens the part, rather than being cached.- Voice client has been updated to use the correct UDP server given by the web socket.
- Events should update their corresponding repositories more consistently.
- Improved the processing speed of
GUILD_CREATE
andGUILD_MEMBERS_CHUNK
events. - Added new gateway operation and close codes.
- Client will not attempt to reconnect to Discord servers if it receives a "critical" opcode (one that cannot be resolved by the bot).