miggor-StreamGraph/classes/deck/nodes/twitch/twitch_eventsub_event.gd
Eroax f98364f40e Add in General EventSub Nodes (#65)
Adds in these nodes:
- Twitch Add EventSub Subscription
- Twitch EventSub Event

Co-authored-by: Eroax <eroaxe.business@gmail.com>
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/65
Co-authored-by: Eroax <eroax@noreply.codeberg.org>
Co-committed-by: Eroax <eroax@noreply.codeberg.org>
2024-02-09 11:43:17 +00:00

54 lines
1.4 KiB
GDScript

# (c) 2023-present Eroax
# (c) 2023-present Yagich
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
extends DeckNode
var cached_event_data : Dictionary
func _init():
name = "Twitch EventSub Event"
node_type = name.to_snake_case()
description = "Listens for a specific Event from Twitch EventSub"
props_to_serialize = []
# Adds a port that allows specifying what type of event to listen for.
add_input_port(DeckType.Types.STRING, "Event Name", "field")
# Adds a port that outputs when the Event has been received
add_output_port(DeckType.Types.ANY, "Event Received")
# Adds a port that outputs the data received when the Event has been received.
add_output_port(DeckType.Types.DICTIONARY, "Event Data")
func _event_received(event_name: StringName, event_data: Dictionary = {}):
if event_name != &"twitch_eventsub":
return
var port_0 = await resolve_input_port_value_async(0)
print("Event Name ", event_data)
if port_0 == null or port_0 != event_data.payload.subscription.type:
return
# Sends to indicate that the specified event has happened.
send(0, null)
# Sends the data along as well as the fact that the event happened. While also caching the event data for later access
cached_event_data = event_data
send(1, event_data)
func _value_request(port):
if port != 1:
return
return cached_event_data