roster.js 4.6 KB

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