roster.js 4.8 KB

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