Template:PlayerInfoBox: Difference between revisions

From Crafters
imported>Sek
No edit summary
No edit summary
 
(39 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:
<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>
  url=https://crafters.one/api/v1/stats/players?player={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}
__FORCETOC__
}}
 
{{#get_web_data:
  url=https://crafters.one/api/v1/data/player_role?uuid={{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}
}}
 
<!-- 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">
<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}}}}; text-color: black; margin: 0px 0.5em 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">
{{ucfirst: {{#external_value:role}}}}
{{ucfirst:{{#iferror:{{#external_value:role}}|}}}}
</div>}}
 
<!-- Player Image (uses the page's uuid, so it works even when the stats API is down) -->
<div style="object-fit:contain">
https://visage.surgeplay.com/full/500/{{{uuid|1f61bbf9-a919-4b91-9f36-d082f7bfbf31}}}.png
</div>
</div>


{{#if:{{#iferror:{{#external_value:username}}|}}|
<!-- Player Details Header -->
<div style="text-align:center; background-color:#9abed6; color:black; margin:0px 0.5em">Player Details</div>
<!-- Player Numbers and Wheel -->
{{#if:{{#iferror:{{#external_value:number}}|}}|<div style="padding:0px">
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#iferror:{{#external_value:number}}|}}|R}}-1}}}}|<span style="font-size:24px; vertical-align:center">←</span>]]
[[PlayerNumber:{{formatnum:{{#iferror:{{#external_value:number}}|}}}}|'''Player:''' # {{formatnum:{{#iferror:{{#external_value:number}}|}}}}]]
[[PlayerNumber:{{formatnum:{{#expr:{{formatnum:{{#iferror:{{#external_value:number}}|}}|R}}+1}}}}|<span style="font-size:24px; vertical-align:center">→</span>]]
</div>}}


<!-- Player Image -->
<!-- Join Date -->
<div>
<span style="font-weight:bold">Join Date:</span>
{{#if:{{#iferror:{{#external_value:join_date}}|}}|{{#time:F j, Y | @{{#expr:{{#iferror:{{#external_value:join_date}}|}}/1000 round 0}} }}|Unknown}}
</div>
 
<!-- Last Seen -->
<div>
<div>
[[File:{{{image|{{#external_value:uuid|?}}}}}.png|frameless]]
<span style="font-weight:bold">Last Seen:</span>
{{#if:{{#iferror:{{#external_value:last_seen}}|}}|{{#time:F j, Y | @{{#expr:{{#iferror:{{#external_value:last_seen}}|}}/1000 round 0}} }}|Unknown}}
</div>
</div>


<!-- Player Details Header -->
<!-- Statistics Header -->
<div style="text-align: center; background-color:#9abed6;color: black; margin: 0px 0.5em 0px 0.5em">Player Details</div>
<div style="text-align:center; background-color:#9c887b; color:black; margin:0px 0.5em">Statistics</div>
 
<!-- Time Played -->
<div>
<span style="font-weight:bold">Time Played:</span>
{{#if:{{#iferror:{{#external_value:play_time}}|}}|{{formatnum:{{#expr:ceil({{#iferror:{{#external_value:play_time}}|}}/60/60)}}}} Hours|Unknown}}
</div>


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


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


<!-- Last Seen -->
<!-- Lifetime Score -->
<div>  
<div>
<span style="font-weight: bold">Last Seen:</span>  
<span style="font-weight:bold">Lifetime Score:</span>
{{#time:F j, Y | @{{#expr:{{#external_value:last_seen}} / 1000}} }}  
{{#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>


<!-- Categories -->
<!-- Categories -->
[[Category:Players]]
[[Category:Players]]
[[Category:{{#time:Y | @{{#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}} }}]]}}
{{#ifeq:{{#iferror:{{#external_value:role}}|}}|volunteer|[[Category:Volunteers]]|}}
{{#ifeq:{{#iferror:{{#external_value:role}}|}}|glow-person|[[Category:Glow Person]]|}}

Latest revision as of 08:35, 11 October 2026

?


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

Player stats are unavailable right now.