# Events
Some events will only be fired if you are logged in with an OAuth Token.
- Register a Event
- List of all Events
- Inspector
- InspectorReady
- Join
- Kick
- Motd
- NameReply
- Part
- Ping
- Privmsg
- TopicChange
- Welcome
- AnonGiftPaidUpgrade
- AnonSubGift
- AnonSubMysteryGift
- Cheer
- EmoteOnlyMode
- FollowersOnlyMode
- GiftPaidUpgrade
- Hosted
- Hosting
- Message
- Mods
- Notice
- PrimePaidUpgrade
- R9kMode
- Raid
- Resub
- Ritual
- RoomState
- SlowMode
- Sub
- SubGift
- SubMysteryGift
- SubsOnlyMode
- Unhost
- UserNotice
- Vips
# Register a Event
After our v2.0 release all events will be registered with their fully qualified class name. In comparison to v1.0 and tmi.js there is a type security and you can see directly from the object which properties are given.
use GhostZero\Tmi\Events\Twitch\MessageEvent;
$client->on(MessageEvent::class, function (MessageEvent $event) {
// handle your event
});
# List of all Events
You can find all events under the namespace GhostZero\Tmi\Events
.
# Inspector
Triggered when the inspector receives data from the server.
use GhostZero\Tmi\Events\Inspector\InspectorEvent;
$client->on(InspectorEvent::class, function (InspectorEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
payload | stdClass | Contains the session. |
Since:
# InspectorReady
Triggers when an inspector.tmi.dev session was recognized.
use GhostZero\Tmi\Events\Inspector\InspectorReadyEvent;
$client->on(InspectorReadyEvent::class, function (InspectorReadyEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
url | string | URL of the Inspector session. |
Since:
# Join
This event is triggered when a viewer enters the chat.
use GhostZero\Tmi\Events\Irc\JoinEvent;
$client->on(JoinEvent::class, function (JoinEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
tags | Tags | Twitch Tags object |
message | string | Message content |
user | string | Username of the viewer |
Since:
# Kick
This event is triggered when a viewer has been kicked by the channel moderator.
use GhostZero\Tmi\Events\Irc\KickEvent;
$client->on(KickEvent::class, function (KickEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
message | string | Message content |
Since:
# Motd
This event is triggered when the IRC client enters a IRC server.
use GhostZero\Tmi\Events\Irc\MotdEvent;
$client->on(MotdEvent::class, function (MotdEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
message | string | Message content |
Since:
# NameReply
use GhostZero\Tmi\Events\Irc\NameReplyEvent;
$client->on(NameReplyEvent::class, function (NameReplyEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
names | array | List of usernames that are visible |
Since:
# Part
This event is triggered when a viewer leaves the chat.
use GhostZero\Tmi\Events\Irc\PartEvent;
$client->on(PartEvent::class, function (PartEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
tags | Tags | Twitch Tags object |
message | string | Message content |
user | string | Username of the viewer |
Since:
# Ping
About once every five minutes, the IRC server will send a ping. To ensure that your connection to the server is not prematurely terminated, the TMI.php client will automatically reply with a ping. No further actions are required.
use GhostZero\Tmi\Events\Irc\PingEvent;
$client->on(PingEvent::class, function (PingEvent $event) {
// handle your event
});
Since:
# Privmsg
PRIVMSG is used to send private messages between users.
use GhostZero\Tmi\Events\Irc\PrivmsgEvent;
$client->on(PrivmsgEvent::class, function (PrivmsgEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
target | Channel|string | IRC Channel state object or username |
tags | Tags | Twitch Tags object |
user | string | Username of the viewer |
message | string | Message content |
self | bool | Indicates if the message is from ourselves. |
Since:
# TopicChange
This is an IRC event when the topic of the channel has changed. Not supported by Twitch.
use GhostZero\Tmi\Events\Irc\TopicChangeEvent;
$client->on(TopicChangeEvent::class, function (TopicChangeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
topic | string | The new topic of the channel. |
Since:
# Welcome
use GhostZero\Tmi\Events\Irc\WelcomeEvent;
$client->on(WelcomeEvent::class, function (WelcomeEvent $event) {
// handle your event
});
Since:
# AnonGiftPaidUpgrade
use GhostZero\Tmi\Events\Twitch\AnonGiftPaidUpgradeEvent;
$client->on(AnonGiftPaidUpgradeEvent::class, function (AnonGiftPaidUpgradeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
tags | Tags | Twitch Tags object |
Since:
# AnonSubGift
use GhostZero\Tmi\Events\Twitch\AnonSubGiftEvent;
$client->on(AnonSubGiftEvent::class, function (AnonSubGiftEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
streakMonths | int | The number of consecutive months the user has subscribed. |
recipient | string | Username of the recipient |
plan | Tags | Subscription Plan object |
tags | Tags | Twitch Tags object |
Since:
# AnonSubMysteryGift
use GhostZero\Tmi\Events\Twitch\AnonSubMysteryGiftEvent;
$client->on(AnonSubMysteryGiftEvent::class, function (AnonSubMysteryGiftEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
giftSubCount | int | Count of given gifts |
plan | Tags | Subscription Plan object |
tags | Tags | Twitch Tags object |
Since:
# Cheer
use GhostZero\Tmi\Events\Twitch\CheerEvent;
$client->on(CheerEvent::class, function (CheerEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
tags | Tags | Twitch Tags object |
user | string | Username of the viewer |
message | string | Message content |
self | bool | Indicates if the message is from ourselves. |
Since:
# EmoteOnlyMode
use GhostZero\Tmi\Events\Twitch\EmoteOnlyModeEvent;
$client->on(EmoteOnlyModeEvent::class, function (EmoteOnlyModeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
enabled | bool | Indicates whether the mode is active |
Since:
# FollowersOnlyMode
use GhostZero\Tmi\Events\Twitch\FollowersOnlyModeEvent;
$client->on(FollowersOnlyModeEvent::class, function (FollowersOnlyModeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
enabled | bool | Indicates whether the mode is active |
minutes | int | The number of seconds a chatter without moderator privileges must wait between sending messages |
Since:
# GiftPaidUpgrade
use GhostZero\Tmi\Events\Twitch\GiftPaidUpgradeEvent;
$client->on(GiftPaidUpgradeEvent::class, function (GiftPaidUpgradeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
sender | string | Username of the gifter |
tags | Tags | Twitch Tags object |
Since:
# Hosted
use GhostZero\Tmi\Events\Twitch\HostedEvent;
$client->on(HostedEvent::class, function (HostedEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the streamer |
viewers | int | Number of viewers |
autoHost | bool | Indicates whether the host is automatically |
Since:
# Hosting
use GhostZero\Tmi\Events\Twitch\HostingEvent;
$client->on(HostingEvent::class, function (HostingEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
target | string | Username of the steamer |
viewers | int | Number of viewers |
Since:
# Message
use GhostZero\Tmi\Events\Twitch\MessageEvent;
$client->on(MessageEvent::class, function (MessageEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
tags | Tags | Twitch Tags object |
user | string | Username of the viewer |
message | string | Message content |
self | bool | Indicates if the message is from ourselves. |
Since:
# Mods
use GhostZero\Tmi\Events\Twitch\ModsEvent;
$client->on(ModsEvent::class, function (ModsEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
users | mixed |
Since:
# Notice
use GhostZero\Tmi\Events\Twitch\NoticeEvent;
$client->on(NoticeEvent::class, function (NoticeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
messageId | string | Unique message identifier |
Since:
# PrimePaidUpgrade
use GhostZero\Tmi\Events\Twitch\PrimePaidUpgradeEvent;
$client->on(PrimePaidUpgradeEvent::class, function (PrimePaidUpgradeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
plan | Tags | Subscription Plan object |
tags | Tags | Twitch Tags object |
Since:
# R9kMode
use GhostZero\Tmi\Events\Twitch\R9kModeEvent;
$client->on(R9kModeEvent::class, function (R9kModeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
enabled | bool | Indicates whether the mode is active |
Since:
# Raid
use GhostZero\Tmi\Events\Twitch\RaidEvent;
$client->on(RaidEvent::class, function (RaidEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the streamer |
viewers | int | Number of viewers |
Since:
# Resub
use GhostZero\Tmi\Events\Twitch\ResubEvent;
$client->on(ResubEvent::class, function (ResubEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
streakMonths | int | The number of consecutive months the user has subscribed. |
message | string | Message content |
tags | Tags | Twitch Tags object |
plan | Tags | Subscription Plan object |
Since:
# Ritual
use GhostZero\Tmi\Events\Twitch\RitualEvent;
$client->on(RitualEvent::class, function (RitualEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
ritual | string | Name of the ritual |
user | string | Username of the viewer |
tags | Tags | Twitch Tags object |
message | string | Message content |
Since:
# RoomState
use GhostZero\Tmi\Events\Twitch\RoomStateEvent;
$client->on(RoomStateEvent::class, function (RoomStateEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
tags | Tags | Twitch Tags object |
Since:
# SlowMode
use GhostZero\Tmi\Events\Twitch\SlowModeEvent;
$client->on(SlowModeEvent::class, function (SlowModeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
enabled | bool | Indicates whether the mode is active |
minutes | int | The number of seconds a chatter without moderator privileges must wait between sending messages |
Since:
# Sub
use GhostZero\Tmi\Events\Twitch\SubEvent;
$client->on(SubEvent::class, function (SubEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
plan | Tags | Subscription Plan object |
message | string | Message content |
tags | Tags | Twitch Tags object |
Since:
# SubGift
use GhostZero\Tmi\Events\Twitch\SubGiftEvent;
$client->on(SubGiftEvent::class, function (SubGiftEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
streakMonths | int | The number of consecutive months the user has subscribed. |
recipient | string | Username of the recipient |
plan | Tags | Subscription Plan object |
tags | Tags | Twitch Tags object |
Since:
# SubMysteryGift
use GhostZero\Tmi\Events\Twitch\SubMysteryGiftEvent;
$client->on(SubMysteryGiftEvent::class, function (SubMysteryGiftEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
user | string | Username of the viewer |
giftSubCount | int | Count of given gifts |
plan | Tags | Subscription Plan object |
tags | Tags | Twitch Tags object |
Since:
# SubsOnlyMode
use GhostZero\Tmi\Events\Twitch\SubsOnlyModeEvent;
$client->on(SubsOnlyModeEvent::class, function (SubsOnlyModeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
enabled | bool | Indicates whether the mode is active |
Since:
# Unhost
use GhostZero\Tmi\Events\Twitch\UnhostEvent;
$client->on(UnhostEvent::class, function (UnhostEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
viewers | int | Number of viewers |
Since:
# UserNotice
use GhostZero\Tmi\Events\Twitch\UserNoticeEvent;
$client->on(UserNoticeEvent::class, function (UserNoticeEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
messageId | string | Unique message identifier |
Since:
# Vips
use GhostZero\Tmi\Events\Twitch\VipsEvent;
$client->on(VipsEvent::class, function (VipsEvent $event) {
// handle your event
});
Property | Type(s) | Description |
---|---|---|
channel | Channel | IRC Channel state object |
users | array | List of usernames |
Since: