summaryrefslogtreecommitdiff
path: root/GameCode/TwitchIrcExample.cs
blob: dc08227e3346774e1c9513e2a983c1f99dea0d64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using Irc;
using UnityEngine;
using UnityEngine.UI;

public class TwitchIrcExample : MonoBehaviour
{
	public InputField UsernameText;

	public InputField TokenText;

	public InputField ChannelText;

	public Text ChatText;

	public InputField MessageText;

	private void Start()
	{
		TwitchIrc instance = TwitchIrc.Instance;
		instance.OnChannelMessage = (ChannelMessage)Delegate.Combine(instance.OnChannelMessage, new ChannelMessage(OnChannelMessage));
		TwitchIrc instance2 = TwitchIrc.Instance;
		instance2.OnUserLeft = (UserLeft)Delegate.Combine(instance2.OnUserLeft, new UserLeft(OnUserLeft));
		TwitchIrc instance3 = TwitchIrc.Instance;
		instance3.OnUserJoined = (UserJoined)Delegate.Combine(instance3.OnUserJoined, new UserJoined(OnUserJoined));
		TwitchIrc instance4 = TwitchIrc.Instance;
		instance4.OnServerMessage = (ServerMessage)Delegate.Combine(instance4.OnServerMessage, new ServerMessage(OnServerMessage));
		TwitchIrc instance5 = TwitchIrc.Instance;
		instance5.OnExceptionThrown = (ExceptionThrown)Delegate.Combine(instance5.OnExceptionThrown, new ExceptionThrown(OnExceptionThrown));
	}

	public void Connect()
	{
		TwitchIrc.Instance.Username = UsernameText.text;
		TwitchIrc.Instance.OauthToken = TokenText.text;
		TwitchIrc.Instance.Channel = ChannelText.text;
		TwitchIrc.Instance.Connect();
	}

	public void MessageSend()
	{
		if (!string.IsNullOrEmpty(MessageText.text))
		{
			TwitchIrc.Instance.Message(MessageText.text);
			Text chatText = ChatText;
			chatText.text = chatText.text + "<b>" + TwitchIrc.Instance.Username + "</b>: " + MessageText.text + "\n";
			MessageText.text = "";
		}
	}

	public void GoUrl(string url)
	{
		Application.OpenURL(url);
	}

	private void OnServerMessage(string message)
	{
		Text chatText = ChatText;
		chatText.text = chatText.text + "<b>SERVER:</b> " + message + "\n";
		Debug.Log(message);
	}

	private void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
	{
		Text chatText = ChatText;
		chatText.text = chatText.text + "<b>" + channelMessageArgs.From + ":</b> " + channelMessageArgs.Message + "\n";
		Debug.Log("MESSAGE: " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
	}

	private void OnUserJoined(UserJoinedEventArgs userJoinedArgs)
	{
		Text chatText = ChatText;
		chatText.text = chatText.text + "<b>USER JOINED:</b> " + userJoinedArgs.User + "\n";
		Debug.Log("USER JOINED: " + userJoinedArgs.User);
	}

	private void OnUserLeft(UserLeftEventArgs userLeftArgs)
	{
		Text chatText = ChatText;
		chatText.text = chatText.text + "<b>USER JOINED:</b> " + userLeftArgs.User + "\n";
		Debug.Log("USER JOINED: " + userLeftArgs.User);
	}

	private void OnExceptionThrown(Exception exeption)
	{
		Debug.Log(exeption);
	}
}