roster.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. function RosterScope(scope)
  2. {
  3. function Roster(scope) { RosterHandlers(scope); }
  4. scope.Roster = Roster;
  5. }
  6. function RosterHandlers(scope) {
  7. scope.apiProvider.on("online_number", function(x) {
  8. var e = {detail: x.detail.json, raw: x.detail.bert};
  9. document.getElementById("Users-Online-Number").firstElementChild.textContent = e.detail.toString();
  10. });
  11. scope.apiProvider.on("online", function (x) {
  12. var e = {detail: x.detail.json, raw: x.detail.bert};
  13. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  14. if (null != document.getElementById(id)) removeOnlineUser(id);
  15. addOnlineUser(id,name+" "+surname,"insertTop");
  16. if (currentChat == null) showOnlineList();
  17. });
  18. scope.apiProvider.on("offline", function (x) {
  19. var e = {detail: x.detail.json, raw: x.detail.bert};
  20. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  21. if (null != document.getElementById(id)) removeOnlineUser(id);
  22. addOnlineUser(id,name+" "+surname,"appendChild");
  23. });
  24. scope.apiProvider.on("roster_item", function (x) {
  25. var e = {detail: x.detail.json, raw: x.detail.bert};
  26. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  27. addOnlineUser(id,name+" "+surname,"appendChild");
  28. });
  29. scope.apiProvider.on("roster_end", function (x) {
  30. var e = {detail: x.detail.json, raw: x.detail.bert};
  31. if (currentChat == null) showOnlineList();
  32. var now = new Date().getTime();
  33. var page_load_time = now - perfCounter.start;
  34. console.log(user_count + " users loaded in " + page_load_time + "ms");
  35. });
  36. scope.apiProvider.on("chat_message", function (x) {
  37. var e = {detail: x.detail.json, raw: x.detail.bert};
  38. var from = dec(e.raw).value[0][1].value[0][0].value,
  39. names = dec(e.raw).value[0][1].value[0][1].value,
  40. to = dec(e.raw).value[0][2].value,
  41. message = dec(e.raw).value[0][3].value;
  42. chatMessage("Chat+"+from,"1",from==document.user?"Self":from,utf8decode(message));
  43. if (null != currentChat) {
  44. onlineHover();
  45. mouseWheelHandler({'detail':-10000,'wheelDelta':-10000});
  46. onlineHoverOut();
  47. }
  48. });
  49. scope.apiProvider.on("chat_event", function(x) {
  50. var e = {detail: x.detail.json, raw: x.detail.bert};
  51. var gameId = dec(e.raw).value[0][1];
  52. var userId = dec(e.raw).value[0][2].value;
  53. var name = dec(e.raw).value[0][3].value;
  54. var message = dec(e.raw).value[0][4];
  55. if (userId != document.user)
  56. {
  57. chatMessage("Chat","1",userId==document.user?"Self":userId,name+":\n"+utf8decode(message));
  58. scroll_right = -10000;
  59. barHover();
  60. mouseWheelHandler({'detail':-10000,'wheelDelta':-10000});
  61. barHoverOut();
  62. }
  63. });
  64. scope.apiProvider.on("stats_event", function (x) {
  65. var e = {detail: x.detail.json, raw: x.detail.bert};
  66. document.getElementById('Player-Statistics').style.display = '';
  67. var games = dec(e.raw).value[0][2],
  68. reveals = dec(e.raw).value[0][3],
  69. protocol = dec(e.raw).value[0][4];
  70. removeChilds(document.getElementById('Stat-Left'));
  71. removeChilds(document.getElementById('Stat-Right'));
  72. // for (var i=0;i<games.length;i++) { statsRow(24, i,games); }
  73. for (var i=0;i<protocol.length;i++) { statsRow(24,i,protocol); }
  74. for (var i=0;i<reveals.length;i++) { statsRow(340,i,reveals); }
  75. });
  76. scope.apiProvider.on("roster_group", function (x) {
  77. var e = {detail: x.detail.json, raw: x.detail.bert};
  78. var list = dec(e.raw).value[0][1];
  79. for (var i=0;i<list.length;i++) {
  80. var item = list[i],
  81. id = item.value[0][0].value,
  82. names = item.value[0][1].value,
  83. surnames = item.value[0][2].value;
  84. addOnlineUser(id,names+" "+surnames+" "+user_count++,'appendChild');
  85. }
  86. });
  87. }