miggor-StreamGraph/classes/deck/nodes/twitch/twitch_chat_received.gd
Eroax 2d5fcd25f6 Reworks Twitch Nodes to work with the new Triggers Workflow. (#82)
Closes #59 by reworking Twitch Nodes to use the new Trigger workflow that allows inputs that trigger through Ports with Port.UsageType.BOTH as well the functionality for Port.UsageType.VALUE_REQUEST and Port.UsageType.TRIGGER.

Co-authored-by: Eroax <eroaxebusiness@duck>
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/82
2024-02-26 11:36:19 +00:00

59 lines
1.3 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 username := ""
var message := ""
var channel := ""
var tags := {}
func _init():
name = "Twitch Chat Received"
node_type = "twitch_chat_received"
description = "Receives Twitch chat events from a Twitch connection."
add_output_port(DeckType.Types.STRING, "Username", "", Port.UsageType.TRIGGER)
add_output_port(DeckType.Types.STRING, "Message", "", Port.UsageType.TRIGGER)
add_output_port(DeckType.Types.STRING, "Channel", "", Port.UsageType.TRIGGER)
add_output_port(DeckType.Types.DICTIONARY, "Tags", "", Port.UsageType.TRIGGER)
add_output_port(
DeckType.Types.BOOL,
"On receive"
)
func _event_received(event_name : StringName, event_data : Dictionary = {}):
if event_name != &"twitch_chat":
return
username = event_data.username
message = event_data.message
channel = event_data.channel
tags = event_data
var id = UUID.v4()
send(0, username, id)
send(1, message, id)
send(2, channel, id)
send(3, tags, id)
send(4, true, id)
func _value_request(on_port: int) -> Variant:
match on_port:
0:
return username
1:
return message
2:
return channel
3:
return tags
_:
return null