Template:PlayerInfoBox: Difference between revisions

From Crafters
imported>Sek
No edit summary
No edit summary
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
<!-- API CALLS FOR DATA -->
<!-- API CALLS FOR DATA. "suppress error" hides failures, and every value below falls back cleanly when the API is unavailable. -->
{{#get_web_data:url=https://crafters.one/api/v1/stats/players?player={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}}}
<span style="display:none">{{#get_web_data:url=https://crafters.one/api/v1/stats/players?player={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}|suppress error}}{{#get_web_data:url=https://crafters.one/api/v1/data/player_role?uuid={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}|suppress error}}{{#if:{{#iferror:{{#external_value:username}}|}}|{{DISPLAYTITLE:{{#iferror:{{#external_value:username}}|}}}}}}</span>
{{#get_web_data:url=https://crafters.one/api/v1/data/player_role?uuid={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}}}
__FORCETOC__
 
<!-- Main container for info box -->
<!-- Main container for info box -->
<div class="detail-box" style="float:right; border-style:solid; border-width:4px; border-color:{{{border-color|#647c8c}}}; text-align:center; width:25%; max-width:400px; min-width:308px">
<div style="float:right; border-style:solid; border-width:4px; border-color:{{{border-color|#647c8c}}}; text-align:center; width:25%; max-width:400px; min-width:308px; display: flex; flex-direction: column; gap:0px">


<!-- Username -->
<!-- Username -->
<div style="text-align:center; font-size:20px; font-weight:bold">
<div style="text-align:center; font-size:20px; font-weight:bold; vertical-align:center">
{{#external_value:username|?}}
{{#if:{{#iferror:{{#external_value:username}}|}}|{{#iferror:{{#external_value:username}}|}}|{{{name|?}}}}}
</div>
</div>


<!-- Role -->
<!-- Role -->
<div style="text-align:center; background-color:{{RoleColor|role={{#external_value:role}}|uuid={{#external_value:uuid}}}}; color:black; margin:0px 0.5em">
{{#if:{{#iferror:{{#external_value:role}}|}}|<div style="display: flex; align-items: center; justify-content: center; text-align: center; background-color:{{RoleColor|role={{#iferror:{{#external_value:role}}|}}|uuid={{{uuid|}}}}}; color:black; margin:4px 4px; height: 26px; font-weight:bold">
<span style="font-weight:bold">{{ucfirst:{{#external_value:role}}}}</span>
{{ucfirst:{{#iferror:{{#external_value:role}}|}}}}
</div>
</div>}}


<!-- Player Image -->
<!-- Player Image (uses the page's uuid, so it works even when the stats API is down) -->
<div style="text-align:center; object-fit:contain">
<div style="object-fit:contain">
https://visage.surgeplay.com/full/500/{{#external_value:uuid}}.png
https://visage.surgeplay.com/full/500/{{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}.png
</div>
</div>


{{#if:{{#iferror:{{#external_value:username}}|}}|
<!-- Player Details Header -->
<!-- Player Details Header -->
<div style="text-align:center; background-color:#9abed6; color:black; margin:0px 0.5em">Player Details</div>
<div style="text-align:center; background-color:#9abed6; color:black; margin:0px 0.5em">Player Details</div>


<!-- Player Numbers and Wheel -->
<!-- Player Numbers and Wheel -->
<div style="padding:0px">
{{#if:{{#iferror:{{#external_value:number}}|}}|<div style="padding:0px">
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#external_value:number|1}}|R}}-1}}}}|<span style="font-size:24px; vertical-align:center">←</span>]]
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#iferror:{{#external_value:number}}|}}|R}}-1}}}}|<span style="font-size:24px; vertical-align:center">←</span>]]
[[PlayerNumber:{{#external_value:number|0}}|'''Player:''' # {{#external_value:number|?}}]]
[[PlayerNumber:{{formatnum:{{#iferror:{{#external_value:number}}|}}}}|'''Player:''' # {{formatnum:{{#iferror:{{#external_value:number}}|}}}}]]
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#external_value:number|1}}|R}}+1}}}}|<span style="font-size:24px; vertical-align:center">→</span>]]
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#iferror:{{#external_value:number}}|}}|R}}+1}}}}|<span style="font-size:24px; vertical-align:center">→</span>]]
</div>
</div>}}


<!-- Join Date -->
<!-- Join Date -->
<div>
<div>
<span style="font-weight:bold">Join Date:</span>
<span style="font-weight:bold">Join Date:</span>
{{#time:F j, Y | @{{#expr:{{#external_value:join_date}}/1000}} }}
{{#if:{{#iferror:{{#external_value:join_date}}|}}|{{#time:F j, Y | @{{#expr:{{#iferror:{{#external_value:join_date}}|}}/1000 round 0}} }}|Unknown}}
</div>
</div>


Line 40: Line 40:
<div>
<div>
<span style="font-weight:bold">Last Seen:</span>
<span style="font-weight:bold">Last Seen:</span>
{{#time:F j, Y | @{{#expr:{{#external_value:last_seen}}/1000}} }}
{{#if:{{#iferror:{{#external_value:last_seen}}|}}|{{#time:F j, Y | @{{#expr:{{#iferror:{{#external_value:last_seen}}|}}/1000 round 0}} }}|Unknown}}
</div>
</div>


Line 49: Line 49:
<div>
<div>
<span style="font-weight:bold">Time Played:</span>
<span style="font-weight:bold">Time Played:</span>
{{formatnum:{{#expr:ceil({{#external_value:play_time}}/60/60)}}}} Hours
{{#if:{{#iferror:{{#external_value:play_time}}|}}|{{formatnum:{{#expr:ceil({{#iferror:{{#external_value:play_time}}|}}/60/60)}}}} Hours|Unknown}}
</div>
</div>


Line 55: Line 55:
<div>
<div>
<span style="font-weight:bold">Deaths:</span>
<span style="font-weight:bold">Deaths:</span>
{{formatnum:{{#external_value:deaths}}}}
{{#if:{{#iferror:{{#external_value:deaths}}|}}|{{formatnum:{{#iferror:{{#external_value:deaths}}|}}}}|0}}
</div>
</div>


Line 61: Line 61:
<div>
<div>
<span style="font-weight:bold">Mob Kills:</span>
<span style="font-weight:bold">Mob Kills:</span>
{{formatnum:{{#external_value:mob_kills}}}}
{{#if:{{#iferror:{{#external_value:mob_kills}}|}}|{{formatnum:{{#iferror:{{#external_value:mob_kills}}|}}}}|0}}
</div>
</div>


Line 67: Line 67:
<div>
<div>
<span style="font-weight:bold">Lifetime Score:</span>
<span style="font-weight:bold">Lifetime Score:</span>
{{formatnum:{{#external_value:lifetime_xp}}}}
{{#if:{{#iferror:{{#external_value:lifetime_xp}}|}}|{{formatnum:{{#iferror:{{#external_value:lifetime_xp}}|}}}}|0}}
</div>
</div>
|<div style="margin:6px 8px 8px; color:#54595d; font-size:90%">Player stats are unavailable right now.</div>}}


</div>
</div>
Line 74: Line 75:
<!-- Categories -->
<!-- Categories -->
[[Category:Players]]
[[Category:Players]]
[[Category:{{#time:F | @{{#expr:{{#external_value:join_date}}/1000}} }}]]
{{#if:{{#iferror:{{#external_value:join_date}}|}}|[[Category:{{#time:F | @{{#expr:{{#iferror:{{#external_value:join_date}}|}}/1000 round 0}} }}]] [[Category:{{#time:Y | @{{#expr:{{#iferror:{{#external_value:join_date}}|}}/1000 round 0}} }}]]}}
[[Category:{{#time:Y | @{{#expr:{{#external_value:join_date}}/1000}} }}]]
{{#ifeq:{{#iferror:{{#external_value:role}}|}}|volunteer|[[Category:Volunteers]]|}}
{{#ifeq:{{#external_value:role}}|volunteer|[[Category:Volunteers]]|}}
{{#ifeq:{{#iferror:{{#external_value:role}}|}}|glow-person|[[Category:Glow Person]]|}}
{{#ifeq:{{#external_value:role}}|glow-person|[[Category:Glow Person]]|}}
{{DISPLAYTITLE:{{#external_value:username}}}}
 
aaaaa

Latest revision as of 08:35, 11 October 2026

?


1f61bbf9-a919-4b91-9f36-d082f7bfbf31.png

Player stats are unavailable right now.