· 6 years ago · Mar 18, 2020, 07:08 PM
1var livechatid = "";
2var APIKey = "" //YOUTUBE API V3 KEY
3var refreshTime = 10 //How often do you want to refresh chat, IN SECONDS!
4
5
6//DON'T CHANGE ANYTHING BELOW UNLESS YOU KNOW WHAT YOU'RE DOING!
7
8var lastMessage;
9var gamesLost;
10var gamesWon;
11
12var jq = document.createElement('script');
13jq.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js";
14document.getElementsByTagName('head')[0].appendChild(jq);
15
16var element = document.querySelector(".game-explanation")
17element.innerHTML = '<h2>Games Won: <span class="games-won">0</span></h2>' + element.innerHTML;
18element.innerHTML = '<h2>Games Lost: <span class="games-lost">0</span></h2>' + element.innerHTML;
19
20function gameLost() {
21 var gameMessage = document.getElementsByClassName('game-message')[0];
22 return gameMessage.className.indexOf('game-over') >= 0;
23}
24
25
26function tryAgain() {
27 var retryButton = document.getElementsByClassName('retry-button')[0];
28 retryButton.click();
29}
30
31function gameWon() {
32 var gameMessage = document.getElementsByClassName('game-message')[0];
33 return gameMessage.className.indexOf('game-won') >= 0;
34}
35
36
37var MOVE_UP = {
38 drow: -1,
39 dcol: 0,
40 dir: 0,
41 keyCode: 38,
42 key: 'Up'
43};
44var MOVE_DOWN = {
45 drow: 1,
46 dcol: 0,
47 dir: 1,
48 keyCode: 40,
49 key: 'Down'
50};
51var MOVE_LEFT = {
52 drow: 0,
53 dcol: -1,
54 dir: 0,
55 keyCode: 37,
56 key: 'Left'
57};
58var MOVE_RIGHT = {
59 drow: 0,
60 dcol: 1,
61 dir: 1,
62 keyCode: 39,
63 key: 'Right'
64};
65
66function pressKey(move) {
67 var event = new Event('keydown', {
68 bubbles: true,
69 cancelable: true
70 });
71 event.altKey = false;
72 event.char = '';
73 event.charCode = 0;
74 event.ctrlKey = false;
75 event.defaultPrevented = false;
76 event.eventPhase = 3;
77 event.isTrusted = true;
78 event.key = move.key;
79 event.keyCode = move.keyCode;
80 event.locale = 'en-CA';
81 event.location = 0;
82 event.metaKey = false;
83 event.repeat = false;
84 event.shiftKey = false;
85 event.which = move.keyCode;
86
87 document.body.dispatchEvent(event);
88}
89
90setInterval(function() {
91 if (gameLost()) {
92 if (!gamesLost) gamesLost = 1
93 else gamesLost = gamesLost + 1
94 document.querySelector(".games-lost").innerText = gamesLost;
95 tryAgain();
96 }
97
98 if (gameWon()) {
99 if (!gamesWon) gamesWon = 1
100 else gamesWon = gamesWon + 1
101 document.querySelector(".games-won").innerText = gamesWon;
102 tryAgain();
103 }
104}, 5000)
105
106setInterval(function() {
107
108 $.getJSON('https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=' + livechatid + '&part=snippet&maxResults=200&key='+APIKey, function(data) {
109 var index = data.items.length - 1
110
111 if (lastMessage != data.items[index].id) {
112
113 if (data.items[index].snippet.displayMessage.toLowerCase() == "up") {
114 pressKey(MOVE_UP)
115 lastMessage = data.items[index].id
116 }
117
118 if (data.items[index].snippet.displayMessage.toLowerCase() == "down") {
119 pressKey(MOVE_DOWN)
120 lastMessage = data.items[index].id
121 }
122
123 if (data.items[index].snippet.displayMessage.toLowerCase() == "left") {
124 pressKey(MOVE_LEFT)
125 lastMessage = data.items[index].id
126 }
127
128 if (data.items[index].snippet.displayMessage.toLowerCase() == "right") {
129 pressKey(MOVE_RIGHT)
130 lastMessage = data.items[index].id
131 }
132 }
133 }).fail(function() {
134 console.log("Error, API Quota might be")
135 })
136}, refreshTime * 1000)