Ansolley

Plugin - Has PB Bans

Jun 28th, 2019
1,343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CSS 34.36 KB | None | 0 0
  1. /*
  2.     @name BF3/BF4/BFH Has PBBans
  3.     @author GreatApo & DarkThanos
  4.     @version 1.6.0
  5.     @release_date 20/06/2016
  6.     @url http://www.alites.com
  7.  
  8.     Licensed under CC BY-NC-ND 3.0
  9.     Link: http://creativecommons.org/licenses/by-nc-nd/3.0/deed.en
  10. */
  11. /* BetterBattlelog Plugin Setup */
  12. BBLog.handle("add.plugin", {
  13.     /* Plugin Infos */
  14.     id : "has-pbbans-plugin",
  15.     name : "Has PBBans",
  16.     version : '1.6.0',
  17.     build : '20160620',
  18.  
  19.     /* Plugin load on ... */
  20.     init : function (instance) {
  21.         // Check if is BF4
  22.         if (BBLog.cache("mode") === "bf4") {
  23.             // Attack page load event
  24.             instance.events.onPageLoad(instance, {
  25.                 page : "^/bf4/(" + BBLog.cache("language") + "/)*(servers|serverbrowserwarsaw)/(playnow/|favourites/|history/)*(pc/|ps3/|ps4/|xbox360/|xboxone/)*[^/]*$",
  26.                 callback : instance.hasPBBans.bf4.serverlist.init
  27.             });
  28.             instance.events.onPageLoad(instance, {
  29.                 page : "^/bf4/(" + BBLog.cache("language") + "/)*servers/show/(pc/|ps3/|ps4/|xbox360/|xboxone/)+[0-9a-zA-Z-]+/[^/]+/$",
  30.                 callback : instance.hasPBBans.bf4.serverinfo.init
  31.             });
  32.             // Load Bf4 CSS
  33.             instance.loadCSS.bf4(instance);
  34.            
  35.         // Check if is BFH
  36.         } else if (BBLog.cache("mode") === "bfh") {
  37.             // Attack page load event
  38.             instance.events.onPageLoad(instance, {
  39.                 page : "^/bfh/(" + BBLog.cache("language") + "/)*(servers|serverbrowserwarsaw)/(playnow/|favourites/|history/)*(pc/|ps3/|ps4/|xbox360/|xboxone/)*[^/]*$",
  40.                 callback : instance.hasPBBans.bfh.serverlist.init
  41.             });
  42.             instance.events.onPageLoad(instance, {
  43.                 page : "^/bfh/(" + BBLog.cache("language") + "/)*servers/show/(pc/|ps3/|ps4/|xbox360/|xboxone/)+[0-9a-zA-Z-]+/[^/]+/$",
  44.                 callback : instance.hasPBBans.bfh.serverinfo.init
  45.             });
  46.             // Load BfH CSS
  47.             instance.loadCSS.bfh(instance);
  48.        
  49.         // Check if is BF3
  50.         } else if (BBLog.cache("mode") === "bf3") {
  51.             // Attack page load event
  52.             instance.events.onPageLoad(instance, {
  53.                 page : "^/bf3/(" + BBLog.cache("language") + "/)*servers/(playnow/|favourites/|history/)*(pc/|ps3/|ps4/|xbox360/|xboxone/)*[^/]*$",
  54.                 callback : instance.hasPBBans.bf3.serverlist.init
  55.             });
  56.             instance.events.onPageLoad(instance, {
  57.                 page : "^/bf3/(" + BBLog.cache("language") + "/)*servers/show/(pc/|ps3/|xbox360/)+[0-9a-zA-Z-]+/[^/]+/$",
  58.                 callback : instance.hasPBBans.bf3.serverinfo.init
  59.             });
  60.             // Load Bf3 CSS
  61.             instance.loadCSS.bf3(instance);
  62.         }
  63.     },
  64.     domchange : function (instance) {
  65.         instance.eventsFire.onPageLoad(instance);
  66.     },
  67.  
  68.     /* Events Functions */
  69.     events : {
  70.         onPageLoad : function (instance, page_info) {
  71.             if (!page_info.page || !page_info.callback) {
  72.                 return;
  73.             }
  74.             instance.eventsData.onPageLoad.push(page_info);
  75.         }
  76.     },
  77.     eventsFire : {
  78.         onPageLoad : function (instance) {
  79.             var page;
  80.             for (page = 0; page < instance.eventsData.onPageLoad.length; page++) {
  81.                 if (document.location.pathname.match(new RegExp(instance.eventsData.onPageLoad[page].page,'i'))) {
  82.                     instance.eventsData.onPageLoad[page].callback(instance);
  83.                 }
  84.             }
  85.         }
  86.     },
  87.     eventsData : {
  88.         onPageLoad : []
  89.     },
  90.  
  91.     /* Load StyleSheets */
  92.     loadCSS : {
  93.         css : {
  94.             // All BF3/BF4/BFH css
  95.             any : "",
  96.  
  97.             // BF4 css
  98.             bf4 : ".icon-pbbans[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QAViiF1/MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsVJyjLbEmLAAABeUlEQVQoz2WPPWsUURiFn/fuzOzsRzZRWQmCIgQU09jEIoWIiK1gYRFUROzs/C8WNmptaSGWmy5NsBBUxI9KjCS6uNn5uDN37n0t4gQxpzzn4YGD/hefvTntX6k2/t+22owKPG0SujBYfCwOlGkQW/ciFiQhXI4ercXDA0x4ePfCA6WMpQaRetVrsZzeXrhDr5ToyQukNeqJQKAKoBg5+YESx0hwlC4qVxoU/esMlLr7vj7vKPjpjEg32FF3JGkS5VhmweVImqRx6b9uXst01aE6XF+q6ouyEa5m/TnyRS372+uXIHyWFadGQDEYwvTdCNvp0FMKjb59qiJeg459IljywtSVSZJjaXx8+cdW1Vekmu+9PDxSj8N2c6Ymv+Lmzbn05tItTFacGrR7dPgYxwyFSVzGA5ihFP7++PnewW5asMHym1/Zx7Wd6zs3dp/mvsAPNu4dMdZY5tA/O5HaWtNpyKne5sMjYM4+UyJpFiEHAmbCs9n3dv8DdJvKVwnBs2MAAAAASUVORK5CYII=) repeat scroll 0% 0% transparent;}" +
  99.                 ".icon-ggcstream[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QAViiF1/MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsVMidsZrIOAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAcpJREFUKM8tkD1rU2EYhu/nfc9JkzYcc9pooCmig7gYP/ADLBaldBAcnPQPqODcxR+g9CcU1EUcXMSl4CK4KG4qfqAOOmipiU3SnOScnI+8X49DM95wcXFx4/d68s0yMzNre+7vo38221/s9jqr21sxO2Zm9ubXS00DBgCJG7VVEgITAABEtYVLJWgwAK/adFCZLeDBR6UaOihjMoCJ/lSWRWhZZZYJcJzo7Lj28xkWyWUeJdy5B3BZzSZn9CvNvTaX4kbS8DT0+647tIbbseA3BXGUvd252b/ltOhKI+GekcIu4OUwn3Q4eUCnmVxuIH+pWXnXv+LAu+MPnpXP94O9BHKsbHqQBMEuEPm2aNGyJAeaK3ywMFNwCBMaKka6biqwAigXH73PcUuVpTASKKfTCyL0zhc7M5vD1wMecMT9xUE8t5G86A0jGYuYthtT4wDq6JfmysONn8euSghrguTAtZd32hcvzB9hkIiu3/8RkAM9ZoNhnPdFVD/rb4kVG473ksLKoF7TeIe1XA070oG87ne1pAIdEDT8r6WTJpwsaDgYjNNK20CVJocBQJ5aGtUmiwoaKfRT5ccnctLQKJCl9CRqxE1DihT9B/uB/nxN9/xiAAAAAElFTkSuQmCC) repeat scroll 0% 0% transparent;}" +
  100.                 ".icon-anticheatinc[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsVNwMtEqKaAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAVdJREFUKM9Vzj1LHFEUh/Hn3B3N6koaRWFLtTHGDeIIdtHW0sLWF/Bb2IsEUgS0zhexsdBS1ErBlwQCwRXEde7szsydcyxcd/HpDvz+cADQS8st1xMAKBb0SB/1NKwCaGa5dgBo1qw0M9P25QBk09q0wsyCPhcxmJmZAZAvWLdsBvSX9dLffeig8pVulTngO4DuArBCLwfSg64BTAKUh9a0R3wfRlA2BHJKN0QDZARg8Ek3ELIPMPnm4A+F+2LzkAICtM8oQwEFggDRzUQy7sBJJFj9djTpwvRAAi12fPeONPYi2JTgEOfiJBAJfyf9mmApO+/DqLOUIVQeBB0XPi0VD9RhcC8guDtIkLcf0/k2wud9s+SnUMacZ3UhXQehevYGBYheZjOg+h/1QJitbfplqZo4k07lRx+61phXr/l1uPKaamt08bi2Fe7bWfg3vB1fgA9ekwCv/9K82CYzBU4AAAAASUVORK5CYII=) repeat scroll 0% 0% transparent;}" +
  101.                 "#serverbrowser-show .settings li.highlight{color: white!important;}",
  102.  
  103.             // BFH css
  104.             bfh : ".icon-pbbans[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEw05BNBiAAABd0lEQVQoz2WPv2sUURSFv/vmvTc/3mZH1l2xUIsEFGIRBC1SRPEvEAsLUVG08R+xE2zE0lYsLSSVbMoUqSxMoYWVCQoadzeb2ZnMuxa6QeM93T0f53BA/5WZXDpr3qJJ+/fXb9iChPnVzCD8fK4NCL2olc8PGUuNWbPPLjed35jy4t72IyF3WoOKX060OF3dGd8lz8U+fo3ME+WkwZBGEKJ83eaAhq7iyBubL1nkD6sYcj31wV9wFPSbKJqaapSOpPI2kFFGt49UvnJ5u7jxbiLLDtHJ6t7Mr+htc71TLCCLmtHd2rwC8kmXnEYBIRIx3y92qdqEXCjUnvmYWtaBgfFKRpjGOjW1/5E1vd3d1dlUkXQ8eHM0xA3Mlj3nCdfc2J6vbu7dwnSmO2Hu26PFOEoEhs1BE6BEKNong4ffjoGWjBPYSf/qKKPf3th/QJKEV/d5egz0ZCxA8XmodVbFxBJI34fOf9WBLj0OxZYQAEMc8rL8Mvd/AbeliI+/Vj/hAAAAAElFTkSuQmCC) repeat scroll 0% 0% transparent;opacity: 0.7;}" +
  105.                 ".icon-ggcstream[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEwqnYEXBAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAcVJREFUKM8tzb1rFFEYxeHz3vvO3TubmXFnP7Ihq4lioU2CYkwREEUiCBZ2ljamsLYRxDL4JwgmvU2wMJBGsDGENCqKaIoIIshKQtZs1v2cmTuvxVo+8OMczD4KviqBQJCqhem1uvPHEmpN3TyzGQoJBKLzjeS8AoPBpNvJnVElHwt65PaG9xNfj91tKJi+HoLhwe/GCibjPkAkPwdLeazF9LUIQBKk/gX2bAEquI6TQKYeA7BeMbjMb1iqTZiwHtTZg/d+Mj9cxkqk6J0lOi5uN+6NHqg0P3SZg3qJ5O8BwD74kxcXVuUSkRow3HdTdA/TGwp0EHzInNsAAIBDuK5xEzVRAl0RSp2dkyVHCjJhPUietcZhCRwz2ROvyj5cDlj7MfsczRnrFGtg2Bsvqhi1q/bX6HnpbVnKEkt1utzpPQtf1dqxjlREM/X/12WYc/ON7RdP9vdvO+SOo/DU1tZ6c3fxz1mCqPju070OKdCKMEod/yg/PrqSbubXdBy0wqHWnWo7xQ6W/aT02+UgnvxmTpvIiwQe0i/JPMeFigcFRtAbNBnGFGYAgKuv7S1ZIAgijH4ku4VZRQCBgKy9E1w0i44A4B9ftK87RJhYowAAAABJRU5ErkJggg==) repeat scroll 0% 0% transparent;opacity: 0.7;}" +
  106.                 ".icon-anticheatinc[class*=\" icon-\"]{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEwU331hQAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAVpJREFUKM9V0D1LW2EchvHr/+TJ23lOXQwWMqYu9SVFzOBWXTt2cPUF/BbuIgUHQWe/iIuDXVqkdWqX1kEoviCmRJOTc57bodHQa7vhN90A2DkZmZ0CgF+0Y7uxz6UPADYgsz4AjUCBkD3OlaEybdcMEbnd+w4ghAAoL46GKm/B9p8XsqMxdFDMMaqYB94DuG0AVnjJgV5gbAMtgNKhXdsNvTH0UGoLMopYpw1KAYZ3toYx+A+m7yJcMIwztvCXBBCP1M8o/LBLGSEKfOt1NhXByQtrNiZ7I5gcKKfLVgDEPd51ggl7IyJysZPmeFFruY/CHm630mdYW6oiiivhpsRgqXxFE7Idj4i/IB2d6JOFOqK7a0r3RKnDt2pTJKsg+mf/oAD/arYK9P8QA+Bne+thWTWzKPWLT2PoJhohhlj56X+EmMSJyS8nvQ3/uz7wlw+bX79DyENMc3gCcIOXaJ//CxgAAAAASUVORK5CYII=) repeat scroll 0% 0% transparent;opacity: 0.7;}" +
  107.                 "#serverbrowser-show .settings li.highlight{color: white!important;}",
  108.  
  109.             // BF3 Css
  110.             bf3 : ".selected-server-setting-pbbans{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEw05BNBiAAABd0lEQVQoz2WPv2sUURSFv/vmvTc/3mZH1l2xUIsEFGIRBC1SRPEvEAsLUVG08R+xE2zE0lYsLSSVbMoUqSxMoYWVCQoadzeb2ZnMuxa6QeM93T0f53BA/5WZXDpr3qJJ+/fXb9iChPnVzCD8fK4NCL2olc8PGUuNWbPPLjed35jy4t72IyF3WoOKX060OF3dGd8lz8U+fo3ME+WkwZBGEKJ83eaAhq7iyBubL1nkD6sYcj31wV9wFPSbKJqaapSOpPI2kFFGt49UvnJ5u7jxbiLLDtHJ6t7Mr+htc71TLCCLmtHd2rwC8kmXnEYBIRIx3y92qdqEXCjUnvmYWtaBgfFKRpjGOjW1/5E1vd3d1dlUkXQ8eHM0xA3Mlj3nCdfc2J6vbu7dwnSmO2Hu26PFOEoEhs1BE6BEKNong4ffjoGWjBPYSf/qKKPf3th/QJKEV/d5egz0ZCxA8XmodVbFxBJI34fOf9WBLj0OxZYQAEMc8rL8Mvd/AbeliI+/Vj/hAAAAAElFTkSuQmCC) no-repeat scroll 0% 0% transparent!important;}" +
  111.                 ".selected-server-setting-ggcstream{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEwqnYEXBAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAcVJREFUKM8tzb1rFFEYxeHz3vvO3TubmXFnP7Ihq4lioU2CYkwREEUiCBZ2ljamsLYRxDL4JwgmvU2wMJBGsDGENCqKaIoIIshKQtZs1v2cmTuvxVo+8OMczD4KviqBQJCqhem1uvPHEmpN3TyzGQoJBKLzjeS8AoPBpNvJnVElHwt65PaG9xNfj91tKJi+HoLhwe/GCibjPkAkPwdLeazF9LUIQBKk/gX2bAEquI6TQKYeA7BeMbjMb1iqTZiwHtTZg/d+Mj9cxkqk6J0lOi5uN+6NHqg0P3SZg3qJ5O8BwD74kxcXVuUSkRow3HdTdA/TGwp0EHzInNsAAIBDuK5xEzVRAl0RSp2dkyVHCjJhPUietcZhCRwz2ROvyj5cDlj7MfsczRnrFGtg2Bsvqhi1q/bX6HnpbVnKEkt1utzpPQtf1dqxjlREM/X/12WYc/ON7RdP9vdvO+SOo/DU1tZ6c3fxz1mCqPju070OKdCKMEod/yg/PrqSbubXdBy0wqHWnWo7xQ6W/aT02+UgnvxmTpvIiwQe0i/JPMeFigcFRtAbNBnGFGYAgKuv7S1ZIAgijH4ku4VZRQCBgKy9E1w0i44A4B9ftK87RJhYowAAAABJRU5ErkJggg==) no-repeat scroll 0% 0% transparent!important;}" +
  112.                 ".selected-server-setting-anticheatinc{width: 20px;margin-right: -2px;margin-left: -2px;height: 13px;vertical-align: middle;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAQAAAADWYbVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCQsWEwU331hQAAAADWlUWHRDb21tZW50AAAAAAAqgNajCQAAAVpJREFUKM9V0D1LW2EchvHr/+TJ23lOXQwWMqYu9SVFzOBWXTt2cPUF/BbuIgUHQWe/iIuDXVqkdWqX1kEoviCmRJOTc57bodHQa7vhN90A2DkZmZ0CgF+0Y7uxz6UPADYgsz4AjUCBkD3OlaEybdcMEbnd+w4ghAAoL46GKm/B9p8XsqMxdFDMMaqYB94DuG0AVnjJgV5gbAMtgNKhXdsNvTH0UGoLMopYpw1KAYZ3toYx+A+m7yJcMIwztvCXBBCP1M8o/LBLGSEKfOt1NhXByQtrNiZ7I5gcKKfLVgDEPd51ggl7IyJysZPmeFFruY/CHm630mdYW6oiiivhpsRgqXxFE7Idj4i/IB2d6JOFOqK7a0r3RKnDt2pTJKsg+mf/oAD/arYK9P8QA+Bne+thWTWzKPWLT2PoJhohhlj56X+EmMSJyS8nvQ3/uz7wlw+bX79DyENMc3gCcIOXaJ//CxgAAAAASUVORK5CYII=) no-repeat scroll 0% 0% transparent!important;}" +
  113.                 "#server-header .has-pbbans .selected-server-setting-pbbans, #server-header .has-pbbans .selected-server-setting-ggcstream, #server-header .has-pbbans .selected-server-setting-anticheatinc{margin-left: 0px:margin-right:0px;display: block;background-repeat: no-repeat;padding-left:25px;width:40px;}" +
  114.                 "#server-header .has-pbbans{float:left;margin-left: 20px;margin-top: 5px;}" +
  115.                 "#server-header .has-pbbans li{float:left;}"
  116.         },
  117.         bf4 : function (instance) {
  118.             instance.loadCSS.add(instance.loadCSS.css.any);
  119.             instance.loadCSS.add(instance.loadCSS.css.bf4);
  120.         },
  121.         bfh : function (instance) {
  122.             instance.loadCSS.add(instance.loadCSS.css.any);
  123.             instance.loadCSS.add(instance.loadCSS.css.bfh);
  124.         },
  125.         bf3 : function (instance) {
  126.             instance.loadCSS.add(instance.loadCSS.css.any);
  127.             instance.loadCSS.add(instance.loadCSS.css.bf3);
  128.         },
  129.         add : function (css) {
  130.             var style = $('<style></style>');
  131.             style.html(css);
  132.             $('head').append(style);
  133.         }
  134.     },
  135.  
  136.     /* Main Addon code */
  137.     hasPBBans : {
  138.         // Active ajax variable (like mutex)
  139.         ajax : null,
  140.  
  141.         // BF4 functions
  142.         bf4 : {
  143.  
  144.             // Server browser functions
  145.             serverlist : {
  146.                 // Initiate
  147.                 init : function (instance) {
  148.                     // Check for an incorrect page load
  149.                     if ($("#serverbrowser-show").length === 0) {
  150.                         return;
  151.                     }
  152.                     // Check for already loaded extension
  153.                     if ($("#serverbrowser-results").data(instance.id)) {
  154.                         return;
  155.                     }
  156.                     $("#serverbrowser-results").data(instance.id, true);
  157.  
  158.                     // Add New Sever Click Event
  159.                     $("#serverbrowser-show")[0].addEventListener('DOMNodeInserted', function (event) {
  160.                         // Check if DOM ready
  161.                         if (!event || !event.target || event.target.className !== "box") {
  162.                             return;
  163.                         }
  164.                         // Check if server-info-hasPBBans exist already
  165.                         if ($("#serverbrowser-show .server-info .hasPBBans").length > 0 || $('#serverbrowser-show .action-buttons-container .join').length === 0) {
  166.                             return;
  167.                         }
  168.                         // Get Server Streams
  169.                         instance.hasPBBans.bf4.serverlist.updateServerInfo(instance);
  170.                     }, true);
  171.  
  172.                     // Get Server Streams
  173.                     if($('#serverbrowser-show .action-buttons-container .join').length > 0) {
  174.                         instance.hasPBBans.bf4.serverlist.updateServerInfo(instance);
  175.                     }
  176.                 },
  177.  
  178.                 // Update server's info on server browser
  179.                updateServerInfo : function (instance) {
  180.                    // Set as active
  181.                    $('#serverbrowser-show .server-info .settings').addClass('hasPBBans');
  182.  
  183.                    // Check for an active ajax
  184.                    if (instance.hasPBBans.ajax !== null) {
  185.                        // Kill active ajax
  186.                        instance.hasPBBans.ajax.abort();
  187.                    }
  188.  
  189.                    // Server ip
  190.                    var ip = $('#serverbrowser-show .action-buttons-container .join').data('ip').trim(),
  191.                    // Server port
  192.                        port = $('#serverbrowser-show .action-buttons-container .join').data("port"),
  193.  
  194.                    // Get Fairfight's row element
  195.                         fairfight = $('#serverbrowser-show .server-info .settings .icon-fairfight').parent().parent(),
  196.                     // Create PBBans row
  197.                         pbbans = $('<li class="highlight">PBBans<b><span class="icon icon-pbbans"></span> <span class="status">...</span></b></li>').insertAfter(fairfight),
  198.                     // Create GGC-Stream row
  199.                         ggcstream = $('<li class="highlight">GGC-Stream<b><span class="icon icon-ggcstream"></span> <span class="status">...</span></b></li>').insertAfter(pbbans),
  200.                     // Create Anticheat Inc row
  201.                         anticheatinc = $('<li class="highlight">Anticheat Inc<b><span class="icon icon-anticheatinc"></span> <span class="status">...</span></b></li>').insertAfter(ggcstream);
  202.  
  203.                     // Make an ajax call
  204.                     instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=4&json", pbbans, ggcstream, anticheatinc, '.status');
  205.                 }
  206.             },
  207.  
  208.             // Server page functions
  209.             serverinfo : {
  210.                 // Initiate
  211.                 init : function (instance) {
  212.                     // Check for an incorrect page load
  213.                     if ($("#server-page").length === 0) {
  214.                         return;
  215.                     }
  216.  
  217.                     // Check for already loaded extension
  218.                     if ($("#server-page").data(instance.id)) {
  219.                         return;
  220.                     }
  221.                     $("#server-page").data(instance.id, true);
  222.  
  223.                     // Check for an active ajax
  224.                     if (instance.hasPBBans.ajax !== null) {
  225.                         // Kill active ajax
  226.                         instance.hasPBBans.ajax.abort();
  227.                     }
  228.  
  229.                     // Server ip
  230.                     var ip = $("#server-page-join-buttons").data("ip").trim(),
  231.                     // Server port
  232.                         port = $("#server-page-join-buttons").data("port"),
  233.  
  234.                     // Get Fairfight's row element
  235.                        fairfight = $('#server-page-settings .box .icon-fairfight').parent().parent(),
  236.                    // Create PBBans row
  237.                        pbbans = $('<dl><dt>PBBANS</dt><dd><span class="icon icon-pbbans"></span> <span class="status">...</span></dd></dl>').insertAfter(fairfight),
  238.                    // Create GGC-Stream row
  239.                        ggcstream = $('<dl><dt>GGC-STREAM</dt><dd><span class="icon icon-ggcstream"></span> <span class="status">...</span></dd></dl>').insertAfter(pbbans),
  240.                    // Create Anticheat Inc row
  241.                        anticheatinc = $('<dl><dt>ANTICHEAT INC</dt><dd><span class="icon icon-anticheatinc"></span> <span class="status">...</span></dd></dl>').insertAfter(ggcstream);
  242.  
  243.                    // Make an ajax call
  244.                    instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=4&json", pbbans, ggcstream, anticheatinc, '.status');
  245.                }
  246.            }
  247.        },
  248.        
  249.        // BFH functions
  250.        bfh : {
  251.  
  252.            // Server browser functions
  253.            serverlist : {
  254.                // Initiate
  255.                init : function (instance) {
  256.                    // Check for an incorrect page load
  257.                    if ($("#serverbrowser-show").length === 0) {
  258.                        return;
  259.                    }
  260.                    // Check for already loaded extension
  261.                    if ($("#serverbrowser-results").data(instance.id)) {
  262.                        return;
  263.                    }
  264.                    $("#serverbrowser-results").data(instance.id, true);
  265.  
  266.                    // Add New Sever Click Event
  267.                    $("#serverbrowser-show")[0].addEventListener('DOMNodeInserted', function (event) {
  268.                        // Check if DOM ready
  269.                        if (!event || !event.target || event.target.className !== "box") {
  270.                            return;
  271.                        }
  272.                        // Check if server-info-hasPBBans exist already
  273.                        if ($("#serverbrowser-show .server-info .hasPBBans").length > 0 || $('#serverbrowser-show .action-buttons-container .join').length === 0) {
  274.                            return;
  275.                        }
  276.                        // Get Server Streams
  277.                        instance.hasPBBans.bfh.serverlist.updateServerInfo(instance);
  278.                    }, true);
  279.  
  280.                    // Get Server Streams
  281.                    if($('#serverbrowser-show .action-buttons-container .join').length > 0) {
  282.                        instance.hasPBBans.bfh.serverlist.updateServerInfo(instance);
  283.                    }
  284.                },
  285.  
  286.                // Update server's info on server browser
  287.                 updateServerInfo : function (instance) {
  288.                     // Set as active
  289.                     $('#serverbrowser-show .server-info .settings').addClass('hasPBBans');
  290.  
  291.                     // Check for an active ajax
  292.                     if (instance.hasPBBans.ajax !== null) {
  293.                         // Kill active ajax
  294.                         instance.hasPBBans.ajax.abort();
  295.                     }
  296.  
  297.                     // Server ip
  298.                     var ip = $('#serverbrowser-show .action-buttons-container .join').data('ip').trim(),
  299.                     // Server port
  300.                         port = $('#serverbrowser-show .action-buttons-container .join').data("port"),
  301.  
  302.                     // Get Fairfight's row element
  303.                        fairfight = $('#serverbrowser-show .server-info .settings .icon-fairfight').parent().parent(),
  304.                    // Create PBBans row
  305.                        pbbans = $('<li>PBBans<b><span class="icon icon-pbbans"></span> <span class="status">...</span></b></li>').insertAfter(fairfight),
  306.                    // Create GGC-Stream row
  307.                        ggcstream = $('<li>GGC-Stream<b><span class="icon icon-ggcstream"></span> <span class="status">...</span></b></li>').insertAfter(pbbans),
  308.                    // Create Anticheat Inc row
  309.                        anticheatinc = $('<li>Anticheat Inc<b><span class="icon icon-anticheatinc"></span> <span class="status">...</span></b></li>').insertAfter(ggcstream);
  310.  
  311.                    // Make an ajax call
  312.                    instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=h&json", pbbans, ggcstream, anticheatinc, '.status');
  313.                }
  314.            },
  315.  
  316.            // Server page functions
  317.            serverinfo : {
  318.                // Initiate
  319.                init : function (instance) {
  320.                    // Check for an incorrect page load
  321.                    if ($("#server-page").length === 0) {
  322.                        return;
  323.                    }
  324.  
  325.                    // Check for already loaded extension
  326.                    if ($("#server-page").data(instance.id)) {
  327.                        return;
  328.                    }
  329.                    $("#server-page").data(instance.id, true);
  330.  
  331.                    // Check for an active ajax
  332.                    if (instance.hasPBBans.ajax !== null) {
  333.                        // Kill active ajax
  334.                        instance.hasPBBans.ajax.abort();
  335.                    }
  336.  
  337.                    // Server ip
  338.                    var ip = $("#server-page-join-buttons").data("ip").trim(),
  339.                    // Server port
  340.                        port = $("#server-page-join-buttons").data("port"),
  341.  
  342.                    // Get Fairfight's row element
  343.                         fairfight = $('#server-page-settings .box .icon-fairfight').parent().parent(),
  344.                     // Create PBBans row
  345.                         pbbans = $('<dl><dt>PBBANS</dt><dd><span class="icon icon-pbbans"></span> <span class="status">...</span></dd></dl>').insertAfter(fairfight),
  346.                     // Create GGC-Stream row
  347.                         ggcstream = $('<dl><dt>GGC-STREAM</dt><dd><span class="icon icon-ggcstream"></span> <span class="status">...</span></dd></dl>').insertAfter(pbbans),
  348.                     // Create Anticheat Inc row
  349.                         anticheatinc = $('<dl><dt>ANTICHEAT INC</dt><dd><span class="icon icon-anticheatinc"></span> <span class="status">...</span></dd></dl>').insertAfter(ggcstream);
  350.  
  351.                     // Make an ajax call
  352.                     instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=h&json", pbbans, ggcstream, anticheatinc, '.status');
  353.                 }
  354.             }
  355.         },
  356.  
  357.         // BF3 functions
  358.         bf3 : {
  359.  
  360.             // Server browser functions
  361.             serverlist : {
  362.                 // Initiate
  363.                 init : function (instance) {
  364.                     // Check for an incorrect page load
  365.                     if ($(".serverguide-list").length === 0 || $("#serverguide-show").length === 0) {
  366.                         return;
  367.                     }
  368.                     // Check for already loaded extension
  369.                     if ($("#serverguide-server-list").data(instance.id)) {
  370.                         return;
  371.                     }
  372.                     $("#serverguide-server-list").data(instance.id, true);
  373.  
  374.                     // Add New Sever Click Event
  375.                     $("#serverguide-show")[0].addEventListener('DOMNodeInserted', function (event) {
  376.                         // Check if DOM ready
  377.                         if (!event || !event.target || event.target.className !== "base-box-push") {
  378.                             return;
  379.                         }
  380.                         // Check if server-info-hasPBBans exist already
  381.                         if ($("#selected-server-settings .hasPBBans").length > 0) {
  382.                             return;
  383.                         }
  384.                         // Get Server Streams
  385.                         instance.hasPBBans.bf3.serverlist.updateServerInfo(instance);
  386.                     }, true);
  387.  
  388.                     // Get Server Streams
  389.                     if($('#serverguide-show-serverjoin .base-button-arrow-almost-gigantic').length > 0) {
  390.                         instance.hasPBBans.bf3.serverlist.updateServerInfo(instance);
  391.                     }
  392.                 },
  393.  
  394.                 // Update server's info on server browser
  395.                updateServerInfo : function (instance) {
  396.                    // Set as active
  397.                    $('#server-settings').addClass('hasPBBans');
  398.  
  399.                    // Check for an active ajax
  400.                    if (instance.hasPBBans.ajax !== null) {
  401.                        // Kill active ajax
  402.                        instance.hasPBBans.ajax.abort();
  403.                    }
  404.  
  405.                    // Server ip
  406.                    var ip = $('#serverguide-show-serverjoin .base-button-arrow-almost-gigantic').data('ip').trim(),
  407.                    // Server port
  408.                        port = $('#serverguide-show-serverjoin .base-button-arrow-almost-gigantic').data("port"),
  409.  
  410.                    // Get Fairfight's row element
  411.                         fairfight = $('#server-settings .selected-server-setting-pb').parent(),
  412.                     // Create PBBans row
  413.                         pbbans = $('<li>PBBans<span class="selected-server-setting selected-server-setting-pbbans">...</span></li>').insertAfter(fairfight),
  414.                     // Create GGC-Stream row
  415.                         ggcstream = $('<li>GGC-Stream<span class="selected-server-setting selected-server-setting-ggcstream">...</span></li>').insertAfter(pbbans),
  416.                     // Create Anticheat Inc row
  417.                         anticheatinc = $('<li>Anticheat Inc<span class="selected-server-setting selected-server-setting-anticheatinc">...</span></li>').insertAfter(ggcstream);
  418.  
  419.                     // Make an ajax call
  420.                     instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=3&json", pbbans, ggcstream, anticheatinc, '.selected-server-setting');
  421.                 }
  422.             },
  423.  
  424.             // Server page functions
  425.             serverinfo : {
  426.                 // Initiate
  427.                 init : function (instance) {
  428.                     // Check for an incorrect page load
  429.                     if ($("#server-page").length === 0) {
  430.                         return;
  431.                     }
  432.                     // Check for already loaded extension
  433.                     if ($("#server-page").data(instance.id)) {
  434.                         return;
  435.                     }
  436.                     $("#server-page").data(instance.id, true);
  437.  
  438.                     // Check for an active ajax
  439.                     if (instance.hasPBBans.ajax !== null) {
  440.                         // Kill active ajax
  441.                         instance.hasPBBans.ajax.abort();
  442.                     }
  443.  
  444.                     // Server ip
  445.                     var ip = $("#server-header .base-button-arrow-almost-gigantic").data("ip").trim(),
  446.                     // Server port
  447.                         port = $("#server-header .base-button-arrow-almost-gigantic").data("port"),
  448.  
  449.                     // Create PBBans row
  450.                         pbbans = $('<li><span title="PBBans" class="status selected-server-setting-pbbans">...</span></li>'),
  451.                     // Create GGC-Stream row
  452.                         ggcstream = $('<li><span title="GGC-Stream" class="status selected-server-setting-ggcstream">...</span></li>'),
  453.                     // Create Anticheat Inc row
  454.                         anticheatinc = $('<li><span title="Anticheat Inc" class="status selected-server-setting-anticheatinc">...</span></li>');
  455.  
  456.                     // Insert icons on the page
  457.                     $('#server-header').append($('<ul class="has-pbbans"></ul>').append(pbbans).append(ggcstream).append(anticheatinc));
  458.  
  459.                     // Make an ajax call
  460.                     instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, "http://alites.tk/battlelog-plugins/has-pbbans/chupachups.php?ip=" + ip + "&port=" + port + "&bf=3&json", pbbans, ggcstream, anticheatinc, '.status');
  461.                 }
  462.             }
  463.         },
  464.  
  465.         // Get info from a server
  466.         request : function (instance, ip, port, url, pbbans, ggcstream, anticheatinc, find) {
  467.             // Return ajax object
  468.             return $.getJSON(url, function (json) {
  469.                 // Request completed
  470.                 instance.hasPBBans.ajax = null;
  471.                 // Show Server Info
  472.                 if (json.update) {
  473.                     // Show updating status
  474.                     pbbans.find(find).html('Updating');
  475.                     ggcstream.find(find).html('Updating');
  476.                     anticheatinc.find(find).html('Updating');
  477.                     // Set ajax variable to 'timer'
  478.                     instance.hasPBBans.ajax = 'timer';
  479.                     // Make a new request in 2 sec
  480.                     setTimeout(function () {
  481.                         // Check if no ajax was executed
  482.                         if (instance.hasPBBans.ajax === 'timer') {
  483.                             // Make a new ajax (due to update status)
  484.                             instance.hasPBBans.ajax = instance.hasPBBans.request(instance, ip, port, url, pbbans, ggcstream, anticheatinc, find);
  485.                         }
  486.                     }, 2000);
  487.                 } else {
  488.                     // Report PBBans protection status
  489.                     pbbans.find(find).html((json.pbbans && json.pbbans !== 'Unknown') ? '<a style="color:green;" href="http://www.pbbans.com/msi-server-' + ip.replace(/\./g, "-") + '-' + port + '.html" target="_blank">On</a>' : (json.pbbans !== 'Unknown') ? '<span style="color:red;">Off</span>' : '<a href="http://www.pbbans.com/msi-server-' + ip.replace(/\./g, "-") + '-' + port + '.html" target="_blank">n/a</a>');
  490.                     if (json.pbbans && json.pbbans !== 'Unknown') {
  491.                         pbbans.attr('data-tooltip', 'Server protected by PBBans<br>Cross Game : ' + (json.pbbans[0] ? 'On' : 'Off') + '<br>ΜΒi Bans : ' + (json.pbbans[1] ? 'On' : 'Off') + '<br>UMBi Bans : ' + (json.pbbans[0] ? 'On' : 'Off'));
  492.                     }
  493.                     if (json.pbbans === 'Unknown') {
  494.                         pbbans.attr('data-tooltip', 'Unknown if server is protected by PBBans.<br>Click the "n/a" to see server\'s status.');
  495.                    }
  496.                    // Report GGC-Stream protection status
  497.                     ggcstream.find(find).html((json.ggc) ? ((json.ggc!='Unknown')?'<a style="color:green;" href="https://www.ggc-stream.net/search/server/wwo" target="_blank">On</a>':'n/a') : '<span style="color:red;">Off</span>');
  498.                    if (json.ggc === 'Unknown') {
  499.                        ggcstream.attr('data-tooltip', 'Unknown if server is protected by GGC-Stream.');
  500.                    }else if (json.ggc) {
  501.                        ggcstream.attr('data-tooltip', 'Server protected by GGC-Stream');
  502.                    }
  503.                    // Report Anticheat Inc protection status
  504.                    anticheatinc.find(find).html((json.aci) ? ((json.aci!='Unknown')?'<a style="color:green;" href="http://www.anticheatinc.net/forums/streaming.php?address=' + ip + '%3A' + port + '" target="_blank">On</a>':'<a href="http://www.anticheatinc.net/forums/streaming.php?address=' + ip + '%3A' + port + '" target="_blank">n/a</a>') : '<span style="color:red;">Off</span>');
  505.                    if (json.aci === 'Unknown') {
  506.                        anticheatinc.attr('data-tooltip', 'Unknown if server is protected by Anticheat Inc.<br>Click the "n/a" to see server\'s status.');
  507.                     }else if (json.aci) {
  508.                         anticheatinc.attr('data-tooltip', 'Server protected by Anticheat Inc<br>LiveSecure : ' + (json.aci[0] ? 'On' : 'Off'));
  509.                     }
  510.                 }
  511.  
  512.             }).fail(function () {
  513.                 // If ajax fail, report error
  514.                 // Request completed
  515.                 instance.hasPBBans.ajax = null;
  516.                 // Show Server Info
  517.                 pbbans.find(find).html('Error');
  518.                 ggcstream.find(find).html('Error');
  519.                 anticheatinc.find(find).html('Error');
  520.             });
  521.         }
  522.  
  523.     }
  524.  
  525. });
Add Comment
Please, Sign In to add comment