--pavetr.top/ds if not MENU_DLL then return end; local a = vgui.Create("DFrame") a:SetSize(428, 250) a:Center() a:SetTitle("") a:MakePopup() a.Paint = function(b, c, d) draw.RoundedBox(10, 0, 0, c, d, Color(35, 35, 35)) draw.SimpleText("MULTIPLAYER HISTORY", "efont_20", 5, 2.5, Color(255, 255, 255)) end; local e = vgui.Create("DScrollPanel", a) e:Dock(FILL) local f = {} local function g(h, i, j, k, l, m) for n, o in ipairs(f) do if o.name == h and o.ip == i then return end end; local p = vgui.Create("DPanel", e) p:SetTall(50) p:Dock(TOP) p:DockMargin(0, 0, 0, 5) p.defaultColor = Color(60, 60, 60) p.hoverColor = Color(80, 80, 80) p.currentColor = p.defaultColor; p.Paint = function(self, q, r) draw.RoundedBox(6, 0, 0, q, r, self.currentColor) end; p.OnCursorEntered = function(self) self.currentColor = self.hoverColor end; p.OnCursorExited = function(self) self.currentColor = self.defaultColor end; p.OnMousePressed = function(self, s) if s == MOUSE_RIGHT then local t = DermaMenu() for n, o in ipairs(f) do if o.name == h and o.ip == i then t:AddOption(o.name, function() SetClipboardText(o.name) exec_notification("Host name copied") end) t:AddOption(o.ip, function() SetClipboardText(o.ip) exec_notification("IP copied") end) t:AddOption('url: '..o.serverurl, function() SetClipboardText(o.serverurl) exec_notification("Server loading screen URL copied") end) t:AddOption('map: '..o.mapname, function() SetClipboardText(o.mapname) exec_notification("Map name copied") end) t:AddOption('maxplayers: '..o.maxplayers, function() SetClipboardText(o.maxplayers) exec_notification("Amount of max players copied") end) t:AddOption('gamemode: '..o.gamemode, function() SetClipboardText(o.gamemode) exec_notification("Gamemode name copied") end) end end; t:Open() elseif s == MOUSE_LEFT then for n, o in ipairs(f) do if o.name == h and o.ip == i then permissions.Connect(o.ip) end end end end; local u = vgui.Create("DLabel", p) u:SetText(h) u:SetFont("efont_20") u:SetTextColor(Color(255, 255, 255)) u:Dock(TOP) local v = vgui.Create("DLabel", p) v:SetText(i) v:SetFont("efont_18") v:SetTextColor(Color(255, 255, 255)) v:Dock(TOP) table.insert(f, { name = h, ip = i, serverurl = j, mapname = k, maxplayers = l, gamemode = m }) end; addon.HTML:QueueJavascript([[function ControllerServers($scope,$element,$rootScope,$location){Scope=$rootScope,Scope.ShowTab="internet",Scope.GMCats=["rp","pvp","pve","other","none"],Scope.SVFilterHasPly=!1,Scope.SVFilterNotFull=!1,Scope.SVFilterHidePass=!1,Scope.SVFilterMaxPing=2e3,Scope.SVFilterPlyMin=0,Scope.SVFilterPlyMax=128,Scope.GMSort="-(order)",Scope.GMFilterTags={},Scope.GMHasFilterTags=!1,Scope.ServersPerPage=128,Scope.CurrentGamemode||(Scope.CurrentGamemode=null),Scope.Refreshing||(Scope.Refreshing={}),Scope.ServerCount||(Scope.ServerCount={}),$scope.DoStopRefresh=function(){Scope.ServerType&&lua.Run("DoStopServers( %s )",Scope.ServerType)},$scope.$on("$destroy",(function(){$scope.DoStopRefresh()})),$scope.Refresh=function(){Scope.ServerType&&(RequestNum[Scope.ServerType]?RequestNum[Scope.ServerType]++:RequestNum[Scope.ServerType]=1,ServerTypes[Scope.ServerType].gamemodes={},ServerTypes[Scope.ServerType].list.length=0,IN_ENGINE||TestUpdateServers(Scope.ServerType,RequestNum[Scope.ServerType]),lua.Run("GetServers( %s, %s )",Scope.ServerType,String(RequestNum[Scope.ServerType])),Scope.Refreshing[Scope.ServerType]="true",Scope.ServerCount[Scope.ServerType]=0,UpdateDigest(Scope,50))},$scope.SelectServer=function(server,event){if(event&&1!=event.which){var txt=server.address;return lua.Run("SetClipboardText( %s )",txt),void event.preventDefault()}Scope.CurrentGamemode.Selected=server,IN_ENGINE||SetPlayerList(server.address,{1:{time:3037.74,score:5,name:"Sethxi"},2:{time:2029.34,score:0,name:"RedDragon124"},3:{time:1405.02,score:0,name:"Joke (0_0)"},4:{time:462.15,score:0,name:"TheAimBot"},5:{time:301.32,score:0,name:"DesanPL"}}),lua.Run("GetPlayerList( %s )",server.address),server.DoubleClick?$scope.JoinServer(server):(server.DoubleClick=!0,setTimeout((function(){server.DoubleClick=!1}),500))},$scope.SelectGamemode=function(gm){Scope.CurrentGamemode=gm,gm&&(gm.server_offset=0),UpdateDigest(Scope,50)},$scope.ServerClass=function(sv){var tags="";return sv.hasmap||(tags+=" missingmap "),0==sv.players&&(tags+=" empty "),tags},$scope.ServerRank=function(sv){return sv.recommended<50?"rank5":sv.recommended<100?"rank4":sv.recommended<200?"rank3":sv.recommended<300?"rank2":"rank1"},$scope.ChangeOrder=function(gm,order){gm.OrderByMain!=order?(gm.OrderByMain=order,gm.OrderBy=[order,"recommended","ping","address"],gm.OrderReverse=!1):gm.OrderReverse=!gm.OrderReverse},$scope.GamemodeName=function(gm){return gm?gm.info&&gm.info.title?gm.info.title:gm.name:"Unknown Gamemode"},$scope.JoinServer=function(srv){srv.password&&lua.Run('RunConsoleCommand( "password", %s )',srv.password),lua.Run("JoinServer( %s , %s )",srv.address,srv.name),$scope.DoStopRefresh()},$scope.SwitchType=function(type){if(Scope.ServerType!=type){$scope.DoStopRefresh();var FirstTime=!1;ServerTypes[type]||(ServerTypes[type]={gamemodes:{},list:[]},FirstTime=!0),Scope.ServerType=type,Scope.Gamemodes=ServerTypes[type].gamemodes,Scope.GamemodeList=ServerTypes[type].list,Scope.CurrentGamemode=null,FirstTime&&$scope.Refresh()}},$scope.InstallGamemode=function(gm){lua.Run("steamworks.Subscribe( %s )",String(gm.info.workshopid))},$scope.ToggleFavorite=function(server){server.favorite?(server.favorite=!1,lua.Run("serverlist.RemoveServerFromFavorites( %s )",String(server.address))):(server.favorite=!0,lua.Run("serverlist.AddServerToFavorites( %s )",String(server.address)))},$scope.ShouldShowInstall=function(gm){return!!gm&&(!!gm.info&&(!!gm.info.workshopid&&(""!=gm.info.workshopid&&!subscriptions.Contains(String(gm.info.workshopid)))))},$scope.FilterFlag=function(flag){$scope.CurrentGamemode&&(0==$scope.CurrentGamemode.FilterFlags[flag]?$scope.CurrentGamemode.FilterFlags[flag]=void 0:$scope.CurrentGamemode.FilterFlags[flag]=!$scope.CurrentGamemode.FilterFlags[flag],$scope.CurrentGamemode.HasPreferFlags=Object.keys($scope.CurrentGamemode.FilterFlags).filter((function(key){return!0===$scope.CurrentGamemode.FilterFlags[key]})).length>0)},$scope.FilterFlagClass=function(flag){return null==$scope.CurrentGamemode.FilterFlags[flag]?"":1==$scope.CurrentGamemode.FilterFlags[flag]?"prefer":"avoid"},$scope.serverFilter=function(server){return(!$scope.CurrentGamemode.Search||-1!=server.name.toLowerCase().indexOf($scope.CurrentGamemode.Search.toLowerCase())||-1!=server.address.indexOf($scope.CurrentGamemode.Search)||-1!=server.map.toLowerCase().indexOf($scope.CurrentGamemode.Search.toLowerCase()))&&(!(server.players<1&&$scope.SVFilterHasPly)&&(!(server.players>=server.maxplayers&&$scope.SVFilterNotFull)&&((!server.pass||!$scope.SVFilterHidePass)&&(!(server.ping>$scope.SVFilterMaxPing)&&(!(server.players<$scope.SVFilterPlyMin)&&(!(server.players>$scope.SVFilterPlyMax)&&((!server.flag||0!=$scope.CurrentGamemode.FilterFlags[server.flag])&&(!$scope.CurrentGamemode.HasPreferFlags||1==$scope.CurrentGamemode.FilterFlags[server.flag]))))))))},$scope.gamemodeFilter=function(gm){if($scope.GMSearch){var found=!1;if(-1!=gm.name.toLowerCase().indexOf($scope.GMSearch.toLowerCase())&&(found=!0),!found&&gm.info&&-1!=gm.info.title.toLowerCase().indexOf($scope.GMSearch.toLowerCase())&&(found=!0),!found)return!1}return!(Scope.GMHasFilterTags&&gm.info&&!$scope.GMFilterTags[gm.info.tag?gm.info.tag:"none"])},$rootScope.ShowBack=!0,FirstTime&&(FirstTime=!1,$scope.SwitchType("internet"))}]]) local w; local x = JoinServer; JoinServer = function(y, y2) w = y; return x(y, y2) end; function GameDetails(h, j, k, l, z, m) print(h, j, k, l, z, m) g(h, w, j, k, l, m) end