Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.76 KB | None | 0 0
  1. // ==UserScript==
  2. // @name STREAM - TagPro NewJerseys
  3. // @version 1.5.0
  4. // @description Set and change ball jerseys directly from the group page
  5. // @author zeeres
  6. // @include http://tagpro-*.koalabeast.com*
  7. // @grant GM_setValue
  8. // @grant GM_getValue
  9. // @grant GM_deleteValue
  10. // @grant GM_log
  11. // @updateURL https://github.com/zeeres/TagPro-NewJerseys/raw/master/TagPro-NewJerseys.user.js
  12. // @downloadURL https://github.com/zeeres/TagPro-NewJerseys/raw/master/TagPro-NewJerseys.user.js
  13. // ==/UserScript==
  14.  
  15. //== This script is based on Some Ball -1's "TagPro Jerseys" script ==\\
  16.  
  17. var spinJerseys = true; // true or false
  18.  
  19. // Add your own imgur album links here inside quotes with commas between quoted album links
  20. // For example: var customAlbums = ["http://imgur.com/a/0zBNw", "http://imgur.com/a/1abcD"]; (do not include comma if only 1 album)
  21. // Images should have titles that match team names and a single digit numerical description that matches team color (0 for either/both, 1 for red, 2 for blue)
  22. var Albums = ["https://imgur.com/a/tE24G", "https://imgur.com/a/fSicG", "https://imgur.com/a/yIgYZ", "https://imgur.com/a/rX0GE", "https://imgur.com/a/ndsKa", "https://imgur.com/a/V9xXX", "https://imgur.com/a/AAFfC", "https://imgur.com/a/CyZtM", "https://imgur.com/a/km3NJ", "https://imgur.com/a/8YPj6"];
  23.  
  24. // Add your own imgur image links here inside quotes with commas between quoted image links, it must links to the png file
  25. // For example: var customImages = ["http://i.imgur.com/17aAwABc.png", "http://i.imgur.com/abc123DEF.png"]; (do not include comma if only 1 image)
  26. // Images should have titles that match team names and a single digit numerical description that matches team color (0 for either/both, 1 for red, 2 for blue)
  27. // var Images = []; // not implemented atm
  28.  
  29. var client_id = 'c638f51525edea6'; // don't steal my client-id. get your own very quickly from here: https://api.imgur.com/oauth2/addclient
  30.  
  31. var default_data = {stored: true, active: true, isPrivate: false, lastRedTeam: false, lastRedTeamName: 'Red', lastBlueTeam: false, lastBlueTeamName: 'Blue', leagues: [], showLeagues: [], known_teams: {}}; // default data
  32.  
  33. var debug = false;
  34.  
  35. function logd(message) {
  36. if (debug) console.log(message);
  37. }
  38.  
  39. class Settings {
  40. constructor(data) {
  41. this.prefix = 'TPNJ_';
  42. if (GM_getValue(this.prefix+'stored') === undefined) { // never stored values yet
  43. this.data = data;
  44. this.store_all();
  45. } else {
  46. this.data = {};
  47. for (var d in default_data) {
  48. this.data[d] = GM_getValue(this.prefix+d);
  49. }
  50. }
  51. }
  52. set(variable, value) {
  53. this.data[variable] = value;
  54. GM_setValue(this.prefix+variable, value);
  55. logd('have set ' + variable + ' to ' + value);
  56. logd('check ' + this.prefix + variable + ' was set to ' + GM_getValue(this.prefix+variable));
  57. }
  58. delete(variable) {
  59. delete this.data[variable];
  60. GM_deleteValue(this.prefix+variable);
  61. }
  62. get(variable, share_prefix) {
  63. share_prefix = share_prefix || false;
  64. var value = (share_prefix)?(JSON.parse(window.localStorage.getItem(share_prefix+variable))):GM_getValue(this.prefix+variable);
  65. logd((share_prefix)?(variable + ' (from localStorage) is:'):(variable + ' is:'));
  66. logd(value);
  67. var keys = Object.keys(default_data);
  68. var found = false;
  69. for(var i = 0; i < keys.length; i++) {
  70. if (keys[i] === variable) found = true;
  71. }
  72. if (value === undefined && !found) {
  73. this.set(variable, default_data[variable]);
  74. return default_data[variable];
  75. } else return value;
  76. }
  77. share(variable) {
  78. window.localStorage.setItem(this.prefix+variable, JSON.stringify(this.data[variable]));
  79. }
  80. store_all() {
  81. for (var d in this.data) {
  82. GM_setValue(this.prefix+d, this.data[d]);
  83. }
  84. }
  85. log_all() {
  86. for (var d in this.data) {
  87. console.log(d + ': ' + this.data[d]);
  88. }
  89. }
  90. delete_all() {
  91. for (var d in this.data) {
  92. GM_deleteValue(this.prefix+d);
  93. }
  94. }
  95. }
  96.  
  97. function ObjectIndexOf(myArray, property, searchTerm) { // searches for a property in a {}-object
  98. for(var i = 0, len = myArray.length; i < len; i++) {
  99. if (myArray[i][property] === searchTerm) return i;
  100. }
  101. return -1;
  102. }
  103.  
  104.  
  105. function ajax_read_albums() {
  106. for (var a = 0; a < Albums.length; a++) {
  107. var match = /([A-Za-z0-9_]+)\|([0-9])/; // imgur description will be matched for this
  108. logd('Albums['+a+']: ' + Albums[a]);
  109. var id = Albums[a].match(/http[s]?:\/\/imgur\.com\/a\/(.+)[\/]?/)[1]; // [0] is the whole string, [1] only the matched group (.+);
  110. logd('id: ' + id);
  111. $.ajax({
  112. url: 'https://api.imgur.com/3/album/'+id+'/images',
  113. headers: {
  114. 'Authorization': 'Client-ID '+client_id // don't steal my client-id. get your own very quickly from here: https://api.imgur.com/oauth2/addclient
  115. },
  116. type: 'GET',
  117. success: function(ajax) {
  118. var data = settings.get('leagues');
  119. ajax.data.forEach(function(curr) {
  120. if(curr.description && curr.title)
  121. {
  122. var descriptor = curr.description.match(match);
  123. logd('description: ' + curr.description);
  124. logd('description.match: ' + curr.description.match(match));
  125. var league_index = ObjectIndexOf(data, "league", descriptor[1]);
  126. if (league_index === -1) // new league
  127. {
  128. data.push({"league": descriptor[1], "teams": []});
  129. league_index = data.length-1;
  130. }
  131. var team_index = ObjectIndexOf(data[league_index].teams, "team", curr.title);
  132. var jersey_type = parseInt(descriptor[2]);
  133. var jersey = (jersey_type === 1)?'red':((jersey_type === 2)?'blue':'neutral');
  134. if(team_index === -1) // new team
  135. {
  136. data[league_index].teams.push({"team": curr.title, "jerseys": {}});
  137. team_index = data[league_index].teams.length-1;
  138. }
  139. //logd('data:');
  140. //logd(data);
  141. //logd('league_index:');
  142. //logd(league_index);
  143. //logd('team_index:');
  144. //logd(team_index);
  145. data[league_index].teams[team_index].jerseys[jersey] = curr.id;
  146. }
  147. });
  148. logd('ajax2 data: ');
  149. logd(data);
  150. settings.set('leagues', data);
  151. }
  152. });
  153. }
  154. }
  155.  
  156. function inactive_hide() {
  157. $("#tpnj-ul").hide();
  158. $("#tpnj-header").css('background', '#54752d');
  159. $("label#tpnj-league").hide();
  160. }
  161.  
  162. function create_html() {
  163. var data = settings.get('leagues');
  164. var $spectators = $('#spectators');
  165. $('<div id="tpnj" class="col-md-12 private-game"><div id="tpnj_group" class="player-group"><div id="tpnj-header" class="player-group-header" style="background: #8bc34a; color: #fff;"><div class="team-name">TagPro NewJerseys</div><div class="pull-right"><label class="btn btn-default" id="tpnj_switch"><input type="checkbox" name="tpnj_active"> active</label></div><div class="clearfix"></div></div><ul id="tpnj-ul" style="background: #353535; border-radius: 0 0 3px 3px; border: 1px solid #404040; border-top: 1px solid #2b2b2b; padding: 10px; overflow-y: auto;"><div id="redselect" class="col-md-6 private-game"></div><div id="blueselect" class="col-md-6 private-game"></div></ul></div></div>').insertBefore('#spectators');
  166. $('input[name="tpnj_active"]').prop('checked', settings.get('active'));
  167. $('input[name="tpnj_active"]').change(function() {
  168. settings.set('active', this.checked);
  169. if (this.checked) {
  170. settings.set('active', true);
  171. $("#tpnj-ul").show();
  172. $("#tpnj-header").css('background', '#8bc34a');
  173. $("label#tpnj-league").show();
  174. html_data();
  175. } else {
  176. settings.set('active', false);
  177. inactive_hide();
  178. }
  179. });
  180.  
  181. var $playerGroup = $('#tpnj_group');
  182. var showLeagues = settings.get('showLeagues');
  183. logd('showLeagues:');
  184. logd(showLeagues);
  185. logd('data.length: ' + data.length);
  186. var ord = sort_data(),
  187. order = ord[0],
  188. order_teams = ord[1];
  189. //order = [0, 1, 2, 3, 4, 5];
  190. logd('ord:');
  191. logd(ord);
  192. for (var league = 0; league < order.length; league++) { // button for each league
  193. $playerGroup.append('<label class="btn btn-default" id="tpnj-league"><input type="checkbox" name="tpnj_league_' + order[league] + '"> ' + data[order[league]].league + '</label>');
  194. if (showLeagues.indexOf(order[league]) !== -1) {
  195. $('input[name="tpnj_league_' + order[league] + '"]').prop('checked', true);
  196. }
  197. $('input[name="tpnj_league_' + order[league] + '"]').change(function() {
  198. var id = parseInt(this.name.match(/tpnj_league_([0-9]*)/)[1]);
  199. logd('change_id:' + id);
  200. var index = showLeagues.indexOf(id);
  201. logd('index: ' + index);
  202. if (this.checked) {
  203. if (index === -1) {
  204. showLeagues.push(id);
  205. settings.set('showLeagues', showLeagues);
  206. }
  207. } else {
  208. if (index !== -1) {
  209. showLeagues.splice(index, 1);
  210. settings.set('showLeagues', showLeagues);
  211. }
  212. }
  213. html_data();
  214. });
  215. }
  216.  
  217. var $redselect = $('#redselect');
  218. $redselect.append('<select id="redTeamJerseys" class="form-control" style="width: 100%"><option value="none">Choose Jersey</option></select></br><div class="player-group small" style="text-align: center;"><img id="redjersey-preview" src=""></div>');
  219. $("#redjersey-preview").hide();
  220. $('#redTeamJerseys').on('change', function() {
  221. var val = $('option:selected', this).attr('value');
  222. settings.set('lastRedTeam', val, true);
  223. if (val !== 'none') {
  224. var d = val.split('.');
  225. var img = data[d[0]].teams[d[1]].jerseys[d[2]];
  226. $("#redjersey-preview").attr("src", "http://i.imgur.com/" + img + ".png").show();
  227. update_known_teams(val, 'red');
  228. html_data();
  229. } else $("#redjersey-preview").hide();
  230. });
  231.  
  232. var $blueselect = $('#blueselect');
  233. $blueselect.append('<select id="blueTeamJerseys" class="form-control" style="width: 100%"><option value="none">Choose Jersey</option></select></br><div class="player-group small" style="text-align: center;"><img id="bluejersey-preview" src=""></div>');
  234. $("#bluejersey-preview").hide();
  235. $('#blueTeamJerseys').on('change', function() {
  236. var val = $('option:selected', this).attr('value');
  237. settings.set('lastBlueTeam', val, true);
  238. if (val !== 'none') {
  239. var d = val.split('.');
  240. var img = data[d[0]].teams[d[1]].jerseys[d[2]];
  241. $("#bluejersey-preview").attr("src", "http://i.imgur.com/" + img + ".png").show();
  242. update_known_teams(val, 'blue');
  243. } else $("#bluejersey-preview").hide();
  244. });
  245. if (!settings.get('active')) inactive_hide();
  246. }
  247.  
  248. function update_known_teams(val, teamcolor) {
  249. var known_teams = settings.get('known_teams');
  250. var teamName = (teamcolor === 'red')?settings.get('redTeamName'):settings.get('blueTeamName');
  251. if (teamName !== 'Red' && teamName !== 'Blue') {
  252. known_teams[teamName] = val;
  253. }
  254. settings.set('known_teams', known_teams, true);
  255. }
  256.  
  257. function convert_known_team(team_name, teamcolor) { // convert known_team (teamname, not "ltj") to appropriate teamcolor ltj
  258. var ltj = settings.get('known_teams')[team_name];
  259. if (ltj === undefined) return false; // if not found
  260. var d = ltj.split('.');
  261. var color = d[3];
  262. if (d[2] !== 'neutral') color = teamcolor;
  263. return d[0]+'.'+d[1]+'.'+color;
  264. // TODO: check if new ltj is available
  265. }
  266.  
  267. function convert_ltj(ltj, teamcolor) { // convert ltj to appropriate teamcolor ltj
  268. var d = ltj.split('.');
  269. var color = d[3];
  270. if (d[2] !== 'neutral') color = teamcolor;
  271. return d[0]+'.'+d[1]+'.'+color;
  272. // TODO: check if new ltj is available
  273. }
  274.  
  275. function html_data() {
  276. var data = settings.get('leagues');
  277. $('#redTeamJerseys').children().remove(); // remove all teams from select box
  278. $('#blueTeamJerseys').children().remove(); // remove all teams from select box
  279. // add teams to select box again
  280. var showLeagues = settings.get('showLeagues');
  281. logd('showLeagues: ' + showLeagues);
  282. for (var l in showLeagues) {
  283. var li = showLeagues[l];
  284. var $groupRed = $('<optgroup label="'+data[li].league+'">');
  285. var $groupBlue = $('<optgroup label="'+data[li].league+'">');
  286. for(var t = 0; t < data[li].teams.length; t++)
  287. {
  288. var team = data[li].teams[t].team;
  289. var jerseys = data[li].teams[t].jerseys;
  290. var option = '';
  291. if (jerseys.red) $groupRed.append('<option value="'+li+'.'+t+'.red">'+team+'</option>'); // value format: "league_index.team_index.jersey_type
  292. if (jerseys.blue) $groupBlue.append('<option value="'+li+'.'+t+'.blue">'+team+'</option>'); // value format: "league_index.team_index.jersey_type
  293. if (jerseys.neutral) {
  294. $groupRed.append('<option value="'+li+'.'+t+'.neutral">'+team+' (n)</option>'); // value format: "league_index.team_index.jersey_type
  295. $groupBlue.append('<option value="'+li+'.'+t+'.neutral">'+team+' (n)</option>'); // value format: "league_index.team_index.jersey_type
  296. }
  297. }
  298. $('#redTeamJerseys')[0].add($groupRed[0]);
  299. $('#blueTeamJerseys')[0].add($groupBlue[0]);
  300. }
  301.  
  302. var lastRedTeam = settings.get('lastRedTeam');
  303. var d, img;
  304. var known_teams = settings.get('known_teams');
  305. if(lastRedTeam) {
  306. $('#redTeamJerseys').val(lastRedTeam);
  307. d = lastRedTeam.split('.');
  308. } else {
  309. $('#redTeamJerseys').val(known_teams[settings.get('redTeamName')]);
  310. }
  311. if (d !== undefined) { // if lastRedTeam is not of the format "league.team.jersey"
  312. img = data[d[0]].teams[d[1]].jerseys[d[2]];
  313. $("#redjersey-preview").attr("src", "http://i.imgur.com/" + img + ".png").show();
  314. }
  315.  
  316. var db, imgb;
  317. var lastBlueTeam = settings.get('lastBlueTeam');
  318. if(lastBlueTeam) {
  319. $('#blueTeamJerseys').val(lastBlueTeam);
  320. db = lastBlueTeam.split('.');
  321. } else {
  322. $('#blueTeamJerseys').val(known_teams[settings.get('blueTeamName')]);
  323. }
  324. if (db !== undefined) {
  325. imgb = data[db[0]].teams[db[1]].jerseys[db[2]];
  326. $("#bluejersey-preview").attr("src", "http://i.imgur.com/" + imgb + ".png").show();
  327. }
  328. }
  329.  
  330. function sort_data() {
  331. // sort data
  332. var data = settings.get('leagues');
  333. data.sort(function(a, b) { // sort data by league name:
  334. var nameA = a.league.toUpperCase();
  335. var nameB = b.league.toUpperCase();
  336. return nameA.localeCompare(nameB);
  337. });
  338. for (var l = 0; l < data.length; l++) { // sort teams in each league
  339. data[l].teams.sort(function(a, b) {
  340. var nameA = a.team.toUpperCase();
  341. var nameB = b.team.toUpperCase();
  342. return nameA.localeCompare(nameB);
  343. });
  344. }
  345. var sorted = data,
  346. order = [],
  347. order_teams = [];
  348. logd('sorted: ');
  349. logd(sorted);
  350. data = settings.get('leagues');
  351. for (var i = 0; i < sorted.length; i++) {
  352. var index = ObjectIndexOf(data, "league", sorted[i].league);
  353. logd('index:');
  354. logd(index);
  355. order.push(index);
  356. var order_team = [];
  357. for (var t = 0; t < sorted[i].teams.length; t++) {
  358. var index2 = ObjectIndexOf(data[index].teams, "team", sorted[i].teams[t]);
  359. order_team.push(index2);
  360. }
  361. order_teams.push(order_team);
  362. }
  363. logd('order:');
  364. logd(order);
  365. logd('order_teams:');
  366. logd(order_teams);
  367. return [order, order_teams];
  368. }
  369.  
  370. var WhereAmI = function(){
  371. if (window.location.port) {
  372. return('game');
  373. } else if (window.location.pathname.startsWith('/groups/')) {
  374. return('group');
  375. } else {
  376. return('elsewhere');
  377. }
  378. };
  379.  
  380. var IAmIn = WhereAmI();
  381. var settings = new Settings(default_data);
  382. //settings.delete_all();
  383. //settings = new Settings();
  384.  
  385. if(IAmIn === 'group') // group page
  386. {
  387. var init = false;
  388. tagpro.group.socket.on('private',function(priv) {
  389. if (!priv.isPrivate) settings.set('isPrivate', false);
  390. if (priv.isPrivate && !init)
  391. {
  392. ajax_read_albums();
  393. settings.store_all();
  394. logd('asdf: ' + settings.get('leagues'));
  395. create_html();
  396. html_data();
  397. settings.set('isPrivate', true);
  398. init = true;
  399. tagpro.group.socket.on('setting',function(setting) {
  400. var data = settings.get('leagues');
  401. var known_teams = settings.get('known_teams');
  402. for (var t in known_teams) {
  403. logd('t: ' + t);
  404. if (known_teams.hasOwnProperty(t)) {
  405. logd('known_teams[' + t + ']: ' + known_teams[t]);
  406. }
  407. }
  408. var known_teams_ltj;
  409. if (setting.name === 'redTeamName') {
  410. known_teams_ltj = known_teams[setting.value];
  411. logd('known_teams_ltj red: ' + known_teams_ltj);
  412. settings.set('redTeamName', setting.value);
  413. if (setting.value !== 'Red' && known_teams_ltj) {
  414. var ltjr = convert_known_team(setting.value, 'red');
  415. if (ltjr) {
  416. logd('convert_known_team red: ' + convert_known_team(setting.value, 'red'));
  417. $('#redTeamJerseys').val(convert_known_team(setting.value, 'red'));
  418. var d = ltjr.split('.');
  419. if (d !== undefined) { // if ltjr is not of the format "league.team.jersey"
  420. var img = data[d[0]].teams[d[1]].jerseys[d[2]];
  421. $("#redjersey-preview").attr("src", "http://i.imgur.com/" + img + ".png").show();
  422. settings.set('lastRedTeam', ltjr, true);
  423. }
  424. }
  425. }
  426. } else if (setting.name === 'blueTeamName') {
  427. var redTeamName = settings.get('redTeamName'),
  428. blueTeamName = settings.get('blueTeamName');
  429. known_teams_ltj = settings.get('known_teams')[setting.value];
  430. logd('known_teams_ltj blue: ' + known_teams_ltj);
  431. settings.set('blueTeamName', setting.value);
  432. if (setting.value !== 'Blue' && known_teams_ltj) {
  433. var ltjb = convert_known_team(setting.value, 'blue');
  434. if (ltjb) {
  435. logd('convert_known_team blue: ' + ltjb);
  436. $('#blueTeamJerseys').val(ltjb);
  437. var db = ltjb.split('.');
  438. if (db !== undefined) { // if ltjb is not of the format "league.team.jersey"
  439. var imgb = data[db[0]].teams[db[1]].jerseys[db[2]];
  440. $("#bluejersey-preview").attr("src", "http://i.imgur.com/" + imgb + ".png").show();
  441. settings.set('lastBlueTeam', ltjb, true);
  442. }
  443. }
  444. } /* else if (setting.value === 'Blue' && blueTeamName === 'Blue') { // if teams are switched (without custom names being set)
  445. var ltj1 = convert_ltj($('#redTeamJerseys').val(), 'blue'),
  446. ltj2 = convert_ltj($('#blueTeamJerseys').val(), 'red');
  447. $('#redTeamJerseys').val(ltj2);
  448. $('#blueTeamJerseys').val(ltj1);
  449. var d2 = ltj2.split('.');
  450. if (d2 !== undefined) {
  451. var img2 = data[d2[0]].teams[d2[1]].jerseys[d2[2]];
  452. $("#redjersey-preview").attr("src", "http://i.imgur.com/" + img2 + ".png").show();
  453. settings.set('lastRedTeam', ltj2, true);
  454. }
  455. var d1 = ltj1.split('.');
  456. if (d1 !== undefined) {
  457. var img1 = data[d1[0]].teams[d1[1]].jerseys[d1[2]];
  458. $("#bluejersey-preview").attr("src", "http://i.imgur.com/" + img1 + ".png").show();
  459. settings.set('lastBlueTeam', ltj1, true);
  460. }
  461. }*/ // TODO: also triggers when refreshing/coming back from game, workaround?
  462. }
  463. });
  464. }
  465. });
  466. }
  467. else if (IAmIn === 'game') { // ingame, draw jersey if there is one
  468. settings.share('leagues');
  469. settings.share('known_teams');
  470. settings.share('lastRedTeam');
  471. settings.share('lastBlueTeam');
  472. tagpro.ready(function() {
  473. if (tagpro.group.socket && settings.get('isPrivate') && settings.get('active')) // if script is activated and group is private
  474. {
  475. var ltjr = settings.get('lastRedTeam');
  476. var ltjb = settings.get('lastBlueTeam');
  477. if ((ltjr && ltjr !== undefined) || (ltjb && ltjb !== undefined)) { // one of red or blue is not false => at least one jersey was set
  478. var leagues = settings.get('leagues');
  479. var dr = ltjr.split('.'), db = ltjb.split('.');
  480. var imgr = leagues[dr[0]].teams[dr[1]].jerseys[dr[2]], imgb = leagues[db[0]].teams[db[1]].jerseys[db[2]];
  481. logd('dr:' + dr);
  482. logd('db:' + db);
  483.  
  484. var tr = tagpro.renderer,
  485. oldUPSP = tr.updatePlayerSpritePosition;
  486.  
  487. tr.createJersey = function(player) {
  488. var img = (player.team === 1)?imgr:imgb;
  489. if(!img) // make empty container if one team doesn't have a jersey
  490. {
  491. if(player.sprites.jersey) player.sprites.ball.removeChild(player.sprites.jersey);
  492. player.sprites.jersey = new PIXI.DisplayObjectContainer();
  493. player.sprites.jersey.team = player.team;
  494. player.sprites.ball.addChildAt(player.sprites.jersey,1);
  495. }
  496. else
  497. {
  498. if(player.sprites.jersey) player.sprites.ball.removeChild(player.sprites.jersey);
  499. player.sprites.jersey = new PIXI.Sprite(PIXI.Texture.fromImage('http://i.imgur.com/' + img + '.png'));
  500. player.sprites.jersey.team = player.team;
  501. player.sprites.ball.addChildAt(player.sprites.jersey, 1); // add on top of ball, below other stuff
  502. player.sprites.jersey.anchor.x = 0.5;
  503. player.sprites.jersey.anchor.y = 0.5;
  504. player.sprites.jersey.x = 20;
  505. player.sprites.jersey.y = 20;
  506. }
  507. };
  508. tr.updatePlayerSpritePosition = function(player) {
  509. if(!player.sprites.jersey) tr.createJersey(player);
  510. if(player.sprites.jersey.team!==player.team) tr.createJersey(player);
  511. var index = player.sprites.ball.getChildIndex(player.sprites.actualBall)+1;
  512. if(index!==player.sprites.ball.getChildIndex(player.sprites.jersey)) player.sprites.ball.setChildIndex(player.sprites.jersey,index);
  513. if(spinJerseys) player.sprites.jersey.rotation = player.angle;
  514. oldUPSP(player);
  515. };
  516. }
  517. } else { // if not in group, reset the last teams
  518. settings.set('lastRedTeam', false, true);
  519. settings.set('lastBlueTeam', false, true);
  520. settings.set('isPrivate', false);
  521. }
  522. });
  523. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement