@@ -13,11 +13,15 @@ declare class RestClient {
13
13
fetchPromotions ( ) : Promise < any [ ] > ;
14
14
fetchUser ( user : string ) : Promise < any > ;
15
15
fetchRooms ( ) : Promise < any > ;
16
+ fetchRoom ( id : string ) : Promise < any > ;
17
+ fetchPlayers ( roomId : string ) : Promise < any > ;
16
18
switchBlob ( newBlob : string ) : Promise < any > ;
17
19
redeemDailyBonus ( ) : Promise < any > ;
18
20
ping ( ) : Promise < number > ;
19
21
static extractSessionID ( ) : string ;
20
22
}
23
+ // functions.js
24
+ declare function modeToString ( mode : number ) : string ;
21
25
22
26
const rest : RestClient = new RestClient ( RestClient . extractSessionID ( ) , "Session" ) ;
23
27
@@ -64,7 +68,7 @@ function getRelativeCoordinates(x: number, y: number, ownBlob: {x: number, y: nu
64
68
} ;
65
69
}
66
70
67
- const useSecureWS : boolean = ! document . location . href . startsWith ( "http://localhost " ) ;
71
+ const useSecureWS : boolean = ! document . location . href . startsWith ( "http://" ) ;
68
72
69
73
// Phone controls
70
74
if ( [ "Android" , "iOS" ] . some ( v => window . navigator . userAgent . includes ( v ) ) ) {
@@ -117,7 +121,7 @@ if (["Android", "iOS"].some(v => window.navigator.userAgent.includes(v))) {
117
121
admin : createImage ( "../../assets/emblems/emblem_admin.png" )
118
122
} ;
119
123
const details : any = {
120
- mode : getParameterByName ( "mode" ) ,
124
+ mode : parseInt ( getParameterByName ( "mode" ) , 10 ) ,
121
125
id : getParameterByName ( "id" ) ,
122
126
singleplayer : false
123
127
} ;
@@ -555,6 +559,10 @@ if (["Android", "iOS"].some(v => window.navigator.userAgent.includes(v))) {
555
559
FFA : "ffa" ,
556
560
ELIMINATION : "elimination"
557
561
} ;
562
+ static TypeID : any = {
563
+ FFA : 0 ,
564
+ ELIMINATION : 1
565
+ } ;
558
566
public type : string ;
559
567
public blobs : BlobObject [ ] ;
560
568
public createdAt : number ;
@@ -636,9 +644,9 @@ if (["Android", "iOS"].some(v => window.navigator.userAgent.includes(v))) {
636
644
}
637
645
}
638
646
639
- if ( ! details . mode )
647
+ if ( isNaN ( details . mode ) )
640
648
details . mode = Room . Type . FFA ;
641
- if ( ! details . id )
649
+ if ( details . id . length === 0 )
642
650
details . id = "ffa1" ;
643
651
let room : EliminationRoom | Room ;
644
652
@@ -1570,34 +1578,43 @@ if (["Android", "iOS"].some(v => window.navigator.userAgent.includes(v))) {
1570
1578
}
1571
1579
1572
1580
1573
- function modeToString ( mode : string ) : string {
1574
- if ( mode === "ffa" ) return "Free For All" ;
1575
- else if ( mode === "elimination" ) return "Elimination" ;
1576
- return "" ;
1581
+ function modeToFullString ( mode : number ) : string {
1582
+ switch ( mode ) {
1583
+ case Room . TypeID . FFA :
1584
+ return "Free For All" ;
1585
+ break ;
1586
+ case Room . TypeID . ELIMINATION :
1587
+ return "Elimination" ;
1588
+ break ;
1589
+ default :
1590
+ return "" ;
1591
+ break ;
1592
+ }
1577
1593
}
1578
1594
// Last part
1579
1595
console . log ( "%c You know JavaScript / TypeScript? Contribute to blobs! https://github.com/blobs-io/blobs.live" , "color: green" ) ;
1580
1596
( async ( ) : Promise < any > => {
1581
1597
{
1582
1598
const headingElement : HTMLCollection = document . getElementsByClassName ( "heading" ) ;
1583
1599
if ( headingElement && headingElement [ 1 ] ) {
1584
- headingElement [ 1 ] . innerHTML = modeToString ( details . mode ) || "Unknown Gamemode" ;
1600
+ headingElement [ 1 ] . innerHTML = modeToFullString ( details . mode ) || "Unknown Gamemode" ;
1585
1601
}
1586
1602
}
1587
1603
const bar = document . getElementById ( "bar-inside" ) ;
1588
1604
if ( ! bar ) return ;
1589
- fetch ( "/api/players/" + details . id ) . then ( async res => {
1590
- const data : any = await res . json ( ) ;
1591
- for ( const player of data ) {
1592
- const tier : any = getTier ( player . br || 0 ) ;
1593
- const spanElement : HTMLElement = document . createElement ( "span" ) ;
1594
- spanElement . className = "player" ;
1595
- spanElement . innerHTML = `<img src="../assets/emblems/${ tier . emblemFile } " class="tier-image" width="20" height="20" alt="Tier" /><span class="player-name" style="color: #${ tier . colorCode } ;">${ player . owner } </span> (${ player . br } BR)</span>` ;
1596
- const playersElement : HTMLElement | null = document . getElementById ( "players" ) ;
1597
- if ( playersElement )
1598
- playersElement . appendChild ( spanElement ) ;
1599
- }
1600
- } ) ;
1605
+
1606
+ const data = await rest . fetchPlayers ( details . id ) . then ( v => v . json ( ) ) ;
1607
+
1608
+ for ( const player of data ) {
1609
+ const tier : any = getTier ( player . br || 0 ) ;
1610
+ const spanElement : HTMLElement = document . createElement ( "span" ) ;
1611
+ spanElement . className = "player" ;
1612
+ spanElement . innerHTML = `<img src="../assets/emblems/${ tier . emblemFile } " class="tier-image" width="20" height="20" alt="Tier" /><span class="player-name" style="color: #${ tier . colorCode } ;">${ player . owner } </span> (${ player . br } BR)</span>` ;
1613
+ const playersElement : HTMLElement | null = document . getElementById ( "players" ) ;
1614
+ if ( playersElement )
1615
+ playersElement . appendChild ( spanElement ) ;
1616
+ }
1617
+
1601
1618
let lastTick : number = Date . now ( ) ;
1602
1619
let itr : number = 0 , val : number = 0 ;
1603
1620
const interval : number = window . setInterval ( ( ) => {
0 commit comments