<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.betamc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RobertWesner</id>
	<title>BetaMC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.betamc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RobertWesner"/>
	<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php/Special:Contributions/RobertWesner"/>
	<updated>2026-10-30T12:00:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki_talk:ClamComponent.js&amp;diff=3399</id>
		<title>MediaWiki talk:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki_talk:ClamComponent.js&amp;diff=3399"/>
		<updated>2026-10-26T19:01:58Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;TODO: - allow embedding outside of your own page and passing a different players name, since not all valid MC names are apparently valid wiki names (underscores)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO:&lt;br /&gt;
- allow embedding outside of your own page and passing a different players name, since not all valid MC names are apparently valid wiki names (underscores)&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3388</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3388"/>
		<updated>2026-10-15T08:48:01Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Remove now obsolete 7AM UTC status.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(() =&amp;gt; {&lt;br /&gt;
    /**&lt;br /&gt;
     * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
     * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
     *&lt;br /&gt;
     * Example:&lt;br /&gt;
     *  $builder(&#039;div&#039;)&lt;br /&gt;
     *      .id(&#039;foo&#039;)&lt;br /&gt;
     *      .className(&#039;a b c&#039;)&lt;br /&gt;
     *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
     *      .build()&lt;br /&gt;
     *&lt;br /&gt;
     * Result:&lt;br /&gt;
     *  ```&lt;br /&gt;
     *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
     *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
     *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
     *  ```&lt;br /&gt;
     *&lt;br /&gt;
     * @license MIT&lt;br /&gt;
     * @author Robert Wesner&lt;br /&gt;
     * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
     */&lt;br /&gt;
    const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
    const $bold = text =&amp;gt; $builder(&#039;b&#039;).onBuildText(text).build();&lt;br /&gt;
&lt;br /&gt;
    $style(&#039;clam-components&#039;, `&lt;br /&gt;
        .clam-component---online-badge {&lt;br /&gt;
            border: 1px solid #2c303624;&lt;br /&gt;
            background-color: white;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
            font-weight: bold;&lt;br /&gt;
        &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;]::after {&lt;br /&gt;
                color: #11cc0e;&lt;br /&gt;
                content: &#039;● online&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;]::after {&lt;br /&gt;
                color: #cc140e;&lt;br /&gt;
                content: &#039;● offline&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---server-status {&lt;br /&gt;
            font-weight: bold;&lt;br /&gt;
        &lt;br /&gt;
            &amp;amp;[data-status=&amp;quot;online&amp;quot;]::after {&lt;br /&gt;
                color: #11cc0e;&lt;br /&gt;
                content: &#039;● online&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-status=&amp;quot;offline&amp;quot;]::after {&lt;br /&gt;
                color: #cc140e;&lt;br /&gt;
                content: &#039;● offline&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---mc-text &amp;gt; .cc-mc-text {&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;0&amp;quot;] { color: #000000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;1&amp;quot;] { color: #0000AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;2&amp;quot;] { color: #00AA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;3&amp;quot;] { color: #00AAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;4&amp;quot;] { color: #AA0000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;5&amp;quot;] { color: #AA00AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;6&amp;quot;] { color: #FFAA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;7&amp;quot;] { color: #AAAAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;8&amp;quot;] { color: #555555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;9&amp;quot;] { color: #5555FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;a&amp;quot;] { color: #55FF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;b&amp;quot;] { color: #55FFFF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;c&amp;quot;] { color: #FF5555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;d&amp;quot;] { color: #FF55FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;e&amp;quot;] { color: #FFFF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;f&amp;quot;] { color: #FFFFFF }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---stats {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            flex-direction: column;&lt;br /&gt;
            align-items: center;&lt;br /&gt;
            gap: 0.6em;&lt;br /&gt;
            float: right;&lt;br /&gt;
            padding: 0.6em;&lt;br /&gt;
            background-color: #69696912;&lt;br /&gt;
            border: 1px solid #80808080;&lt;br /&gt;
            border-radius: 1em;&lt;br /&gt;
        }&lt;br /&gt;
    `);&lt;br /&gt;
&lt;br /&gt;
    const mcText = raw =&amp;gt; $builder(&#039;span.clam-component---mc-text&#039;)&lt;br /&gt;
        .onBuildAppend(&lt;br /&gt;
            ...raw&lt;br /&gt;
                .split(&#039;§&#039;)&lt;br /&gt;
                .map(part =&amp;gt;&lt;br /&gt;
                    $builder(&#039;span.cc-mc-text&#039;)&lt;br /&gt;
                        .data_color(part.charAt(0))&lt;br /&gt;
                        .onBuildText(part.slice(1))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ),&lt;br /&gt;
        )&lt;br /&gt;
        .build();&lt;br /&gt;
&lt;br /&gt;
    const date = timestamp =&amp;gt; new Date(timestamp)&lt;br /&gt;
        .toISOString()&lt;br /&gt;
        .replace(&#039;T&#039;, &#039; &#039;)&lt;br /&gt;
        .slice(0, 16);&lt;br /&gt;
&lt;br /&gt;
    const time = seconds =&amp;gt; {&lt;br /&gt;
        const days = Math.floor(seconds / 86400000);&lt;br /&gt;
        const hours = Math.floor((seconds % 86400000) / 3600000);&lt;br /&gt;
        const minutes = Math.floor((seconds % 3600000) / 60000);&lt;br /&gt;
&lt;br /&gt;
        let result = &#039;&#039;;&lt;br /&gt;
        if (days) result += days + &#039;d &#039;;&lt;br /&gt;
        if (hours) result += hours + &#039;h &#039;;&lt;br /&gt;
        if (minutes) result += minutes + &#039;m&#039;;&lt;br /&gt;
&lt;br /&gt;
        return result.trim();&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    const route = (path, callable) =&amp;gt; {&lt;br /&gt;
        const matches = location.pathname.match(path);&lt;br /&gt;
        if (matches) callable(...matches.slice(1));&lt;br /&gt;
    };&lt;br /&gt;
    const component = (selector, callable) =&amp;gt;&lt;br /&gt;
        document.querySelectorAll(selector)&lt;br /&gt;
            .forEach(element =&amp;gt; {&lt;br /&gt;
                const argsMatches = element.className.match(/\(([^()]+?)\)/);&lt;br /&gt;
                const args = argsMatches&lt;br /&gt;
                    ? Object.fromEntries(&lt;br /&gt;
                        argsMatches[1]&lt;br /&gt;
                            .split(&#039;,&#039;)&lt;br /&gt;
                            .map(arg =&amp;gt; {&lt;br /&gt;
                                const parts = arg.trim().split(&#039;=&#039;, 2);&lt;br /&gt;
&lt;br /&gt;
                                return [parts[0], parts[1] ?? true];&lt;br /&gt;
                            }),&lt;br /&gt;
                    ) : {};&lt;br /&gt;
&lt;br /&gt;
                element.replaceWith(callable(args));&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
    route(/^\/index.php\/Main_Page$/, async () =&amp;gt; {&lt;br /&gt;
        let status = &#039;offline&#039;;&lt;br /&gt;
        try {&lt;br /&gt;
            if ((await statsClient.server()).unique_players) status = &#039;online&#039;;&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-server-status&#039;, () =&amp;gt;&lt;br /&gt;
            $builder(&#039;span.clam-component---server-status&#039;)&lt;br /&gt;
                .data_status(status)&lt;br /&gt;
                .build(),&lt;br /&gt;
        );&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    route(/^\/index.php\/User:([^\/]+)/, async username =&amp;gt; {&lt;br /&gt;
        const stats = await statsClient.player(username);&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-online&#039;, () =&amp;gt;&lt;br /&gt;
            $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                .data_online(stats.online)&lt;br /&gt;
                .build(),&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-stats&#039;, args =&amp;gt; {&lt;br /&gt;
            const element = (title, value) =&amp;gt; $builder(&#039;div&#039;).onBuildAppend($bold(title), &#039;: &#039;, value).build();&lt;br /&gt;
&lt;br /&gt;
            return $builder(&#039;div.clam-component---stats&#039;)&lt;br /&gt;
                .onBuildAppend(...[&lt;br /&gt;
                    $builder(&#039;b&#039;).onBuildAppend(...[&lt;br /&gt;
                        mcText(stats.prefix),&lt;br /&gt;
                        stats.name,&lt;br /&gt;
                        args.online &amp;amp;&amp;amp; $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                            .style(&#039;margin-left: 0.48em&#039;)&lt;br /&gt;
                            .data_online(stats.online)&lt;br /&gt;
                            .build(),&lt;br /&gt;
                    ].filter(_ =&amp;gt; !!_)).build(),&lt;br /&gt;
                    args.skin === &#039;face&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://minotar.net/avatar/${stats.uuid}/128.png&amp;quot;]`).build(),&lt;br /&gt;
                    args.skin === &#039;full&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://api.mineatar.io/body/full/${stats.uuid}?scale=8#.png&amp;quot;]`).build(),&lt;br /&gt;
                    $builder(&#039;div.cc-stats-container&#039;)&lt;br /&gt;
                        .onBuildAppend(...[&lt;br /&gt;
                            args.firstJoin &amp;amp;&amp;amp; element(&#039;Joined&#039;, date(stats.first_join)),&lt;br /&gt;
                            args.lastSeen &amp;amp;&amp;amp; element(&lt;br /&gt;
                                &#039;Seen&#039;,&lt;br /&gt;
                                stats.online&lt;br /&gt;
                                    ? $builder(&#039;span&#039;).style(&amp;quot;color: #11cc0e&amp;quot;).onBuildText(&#039;online&#039;).build()&lt;br /&gt;
                                    : date(stats.last_join),&lt;br /&gt;
                            ),&lt;br /&gt;
                            args.playTime &amp;amp;&amp;amp; element(&#039;Played&#039;, time(stats.playtime)),&lt;br /&gt;
                            args.score &amp;amp;&amp;amp; element(&#039;Score&#039;, stats.overall.toFixed(2)),&lt;br /&gt;
                            args.balance &amp;amp;&amp;amp; element(&#039;Balance&#039;, stats.balance.toFixed(2)),&lt;br /&gt;
                            args.blocksPlaced &amp;amp;&amp;amp; element(&#039;Blocks placed&#039;, stats.blocks_placed),&lt;br /&gt;
                            args.blocksBroken &amp;amp;&amp;amp; element(&#039;Blocks broken&#039;, stats.blocks_broken),&lt;br /&gt;
                            args.blocksTraveled &amp;amp;&amp;amp; element(&#039;Traveled&#039;, Math.floor(stats.blocks_traveled)),&lt;br /&gt;
                            args.deaths &amp;amp;&amp;amp; element(&#039;Deaths&#039;, stats.deaths),&lt;br /&gt;
                            args.playersKilled &amp;amp;&amp;amp; element(&#039;Players killed&#039;, stats.players_killed),&lt;br /&gt;
                            args.mobsKilled &amp;amp;&amp;amp; element(&#039;Mobs killed&#039;, stats.mobs_killed),&lt;br /&gt;
                            args.damageDealt &amp;amp;&amp;amp; element(&#039;Damage dealt&#039;, stats.damage_dealt),&lt;br /&gt;
                            args.damageTaken &amp;amp;&amp;amp; element(&#039;Damage taken&#039;, stats.damage_taken),&lt;br /&gt;
                        ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                .build();&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3383</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3383"/>
		<updated>2026-10-11T10:36:51Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Add server status to main page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(() =&amp;gt; {&lt;br /&gt;
    /**&lt;br /&gt;
     * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
     * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
     *&lt;br /&gt;
     * Example:&lt;br /&gt;
     *  $builder(&#039;div&#039;)&lt;br /&gt;
     *      .id(&#039;foo&#039;)&lt;br /&gt;
     *      .className(&#039;a b c&#039;)&lt;br /&gt;
     *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
     *      .build()&lt;br /&gt;
     *&lt;br /&gt;
     * Result:&lt;br /&gt;
     *  ```&lt;br /&gt;
     *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
     *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
     *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
     *  ```&lt;br /&gt;
     *&lt;br /&gt;
     * @license MIT&lt;br /&gt;
     * @author Robert Wesner&lt;br /&gt;
     * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
     */&lt;br /&gt;
    const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
    const $bold = text =&amp;gt; $builder(&#039;b&#039;).onBuildText(text).build();&lt;br /&gt;
&lt;br /&gt;
    $style(&#039;clam-components&#039;, `&lt;br /&gt;
        .clam-component---online-badge {&lt;br /&gt;
            border: 1px solid #2c303624;&lt;br /&gt;
            background-color: white;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
            font-weight: bold;&lt;br /&gt;
        &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;]::after {&lt;br /&gt;
                color: #11cc0e;&lt;br /&gt;
                content: &#039;● online&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;]::after {&lt;br /&gt;
                color: #cc140e;&lt;br /&gt;
                content: &#039;● offline&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---server-status {&lt;br /&gt;
            font-weight: bold;&lt;br /&gt;
        &lt;br /&gt;
            &amp;amp;[data-status=&amp;quot;restarting&amp;quot;]::after {&lt;br /&gt;
                color: #ccac0e;&lt;br /&gt;
                content: &#039;● restarting&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-status=&amp;quot;online&amp;quot;]::after {&lt;br /&gt;
                color: #11cc0e;&lt;br /&gt;
                content: &#039;● online&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-status=&amp;quot;offline&amp;quot;]::after {&lt;br /&gt;
                color: #cc140e;&lt;br /&gt;
                content: &#039;● offline&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---mc-text &amp;gt; .cc-mc-text {&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;0&amp;quot;] { color: #000000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;1&amp;quot;] { color: #0000AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;2&amp;quot;] { color: #00AA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;3&amp;quot;] { color: #00AAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;4&amp;quot;] { color: #AA0000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;5&amp;quot;] { color: #AA00AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;6&amp;quot;] { color: #FFAA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;7&amp;quot;] { color: #AAAAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;8&amp;quot;] { color: #555555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;9&amp;quot;] { color: #5555FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;a&amp;quot;] { color: #55FF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;b&amp;quot;] { color: #55FFFF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;c&amp;quot;] { color: #FF5555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;d&amp;quot;] { color: #FF55FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;e&amp;quot;] { color: #FFFF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;f&amp;quot;] { color: #FFFFFF }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---stats {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            flex-direction: column;&lt;br /&gt;
            align-items: center;&lt;br /&gt;
            gap: 0.6em;&lt;br /&gt;
            float: right;&lt;br /&gt;
            padding: 0.6em;&lt;br /&gt;
            background-color: #69696912;&lt;br /&gt;
            border: 1px solid #80808080;&lt;br /&gt;
            border-radius: 1em;&lt;br /&gt;
        }&lt;br /&gt;
    `);&lt;br /&gt;
&lt;br /&gt;
    const mcText = raw =&amp;gt; $builder(&#039;span.clam-component---mc-text&#039;)&lt;br /&gt;
        .onBuildAppend(&lt;br /&gt;
            ...raw&lt;br /&gt;
                .split(&#039;§&#039;)&lt;br /&gt;
                .map(part =&amp;gt;&lt;br /&gt;
                    $builder(&#039;span.cc-mc-text&#039;)&lt;br /&gt;
                        .data_color(part.charAt(0))&lt;br /&gt;
                        .onBuildText(part.slice(1))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ),&lt;br /&gt;
        )&lt;br /&gt;
        .build();&lt;br /&gt;
&lt;br /&gt;
    const date = timestamp =&amp;gt; new Date(timestamp)&lt;br /&gt;
        .toISOString()&lt;br /&gt;
        .replace(&#039;T&#039;, &#039; &#039;)&lt;br /&gt;
        .slice(0, 16);&lt;br /&gt;
&lt;br /&gt;
    const time = seconds =&amp;gt; {&lt;br /&gt;
        const days = Math.floor(seconds / 86400000);&lt;br /&gt;
        const hours = Math.floor((seconds % 86400000) / 3600000);&lt;br /&gt;
        const minutes = Math.floor((seconds % 3600000) / 60000);&lt;br /&gt;
&lt;br /&gt;
        let result = &#039;&#039;;&lt;br /&gt;
        if (days) result += days + &#039;d &#039;;&lt;br /&gt;
        if (hours) result += hours + &#039;h &#039;;&lt;br /&gt;
        if (minutes) result += minutes + &#039;m&#039;;&lt;br /&gt;
&lt;br /&gt;
        return result.trim();&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    const route = (path, callable) =&amp;gt; {&lt;br /&gt;
        const matches = location.pathname.match(path);&lt;br /&gt;
        if (matches) callable(...matches.slice(1));&lt;br /&gt;
    };&lt;br /&gt;
    const component = (selector, callable) =&amp;gt;&lt;br /&gt;
        document.querySelectorAll(selector)&lt;br /&gt;
            .forEach(element =&amp;gt; {&lt;br /&gt;
                const argsMatches = element.className.match(/\(([^()]+?)\)/);&lt;br /&gt;
                const args = argsMatches&lt;br /&gt;
                    ? Object.fromEntries(&lt;br /&gt;
                        argsMatches[1]&lt;br /&gt;
                            .split(&#039;,&#039;)&lt;br /&gt;
                            .map(arg =&amp;gt; {&lt;br /&gt;
                                const parts = arg.trim().split(&#039;=&#039;, 2);&lt;br /&gt;
&lt;br /&gt;
                                return [parts[0], parts[1] ?? true];&lt;br /&gt;
                            }),&lt;br /&gt;
                    ) : {};&lt;br /&gt;
&lt;br /&gt;
                element.replaceWith(callable(args));&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
    route(/^\/index.php\/Main_Page$/, async () =&amp;gt; {&lt;br /&gt;
        let status = &#039;offline&#039;;&lt;br /&gt;
        try {&lt;br /&gt;
            if ((await statsClient.server()).unique_players) status = &#039;online&#039;;&lt;br /&gt;
        } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
        if (status === &#039;offline&#039;) {&lt;br /&gt;
            const now = new Date();&lt;br /&gt;
            const hours = now.getUTCHours();&lt;br /&gt;
            const minutes = now.getUTCMinutes();&lt;br /&gt;
&lt;br /&gt;
            if (hours === 7 &amp;amp;&amp;amp; minutes &amp;gt;= 0 &amp;amp;&amp;amp; minutes &amp;lt;= 30) {&lt;br /&gt;
                status = &#039;restarting&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-server-status&#039;, () =&amp;gt;&lt;br /&gt;
            $builder(&#039;span.clam-component---server-status&#039;)&lt;br /&gt;
                .data_status(status)&lt;br /&gt;
                .build(),&lt;br /&gt;
        );&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    route(/^\/index.php\/User:([^\/]+)/, async username =&amp;gt; {&lt;br /&gt;
        const stats = await statsClient.player(username);&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-online&#039;, () =&amp;gt;&lt;br /&gt;
            $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                .data_online(stats.online)&lt;br /&gt;
                .build(),&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-stats&#039;, args =&amp;gt; {&lt;br /&gt;
            const element = (title, value) =&amp;gt; $builder(&#039;div&#039;).onBuildAppend($bold(title), &#039;: &#039;, value).build();&lt;br /&gt;
&lt;br /&gt;
            return $builder(&#039;div.clam-component---stats&#039;)&lt;br /&gt;
                .onBuildAppend(...[&lt;br /&gt;
                    $builder(&#039;b&#039;).onBuildAppend(...[&lt;br /&gt;
                        mcText(stats.prefix),&lt;br /&gt;
                        stats.name,&lt;br /&gt;
                        args.online &amp;amp;&amp;amp; $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                            .style(&#039;margin-left: 0.48em&#039;)&lt;br /&gt;
                            .data_online(stats.online)&lt;br /&gt;
                            .build(),&lt;br /&gt;
                    ].filter(_ =&amp;gt; !!_)).build(),&lt;br /&gt;
                    args.skin === &#039;face&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://minotar.net/avatar/${stats.uuid}/128.png&amp;quot;]`).build(),&lt;br /&gt;
                    args.skin === &#039;full&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://api.mineatar.io/body/full/${stats.uuid}?scale=8#.png&amp;quot;]`).build(),&lt;br /&gt;
                    $builder(&#039;div.cc-stats-container&#039;)&lt;br /&gt;
                        .onBuildAppend(...[&lt;br /&gt;
                            args.firstJoin &amp;amp;&amp;amp; element(&#039;Joined&#039;, date(stats.first_join)),&lt;br /&gt;
                            args.lastSeen &amp;amp;&amp;amp; element(&lt;br /&gt;
                                &#039;Seen&#039;,&lt;br /&gt;
                                stats.online&lt;br /&gt;
                                    ? $builder(&#039;span&#039;).style(&amp;quot;color: #11cc0e&amp;quot;).onBuildText(&#039;online&#039;).build()&lt;br /&gt;
                                    : date(stats.last_join),&lt;br /&gt;
                            ),&lt;br /&gt;
                            args.playTime &amp;amp;&amp;amp; element(&#039;Played&#039;, time(stats.playtime)),&lt;br /&gt;
                            args.score &amp;amp;&amp;amp; element(&#039;Score&#039;, stats.overall.toFixed(2)),&lt;br /&gt;
                            args.balance &amp;amp;&amp;amp; element(&#039;Balance&#039;, stats.balance.toFixed(2)),&lt;br /&gt;
                            args.blocksPlaced &amp;amp;&amp;amp; element(&#039;Blocks placed&#039;, stats.blocks_placed),&lt;br /&gt;
                            args.blocksBroken &amp;amp;&amp;amp; element(&#039;Blocks broken&#039;, stats.blocks_broken),&lt;br /&gt;
                            args.blocksTraveled &amp;amp;&amp;amp; element(&#039;Traveled&#039;, Math.floor(stats.blocks_traveled)),&lt;br /&gt;
                            args.deaths &amp;amp;&amp;amp; element(&#039;Deaths&#039;, stats.deaths),&lt;br /&gt;
                            args.playersKilled &amp;amp;&amp;amp; element(&#039;Players killed&#039;, stats.players_killed),&lt;br /&gt;
                            args.mobsKilled &amp;amp;&amp;amp; element(&#039;Mobs killed&#039;, stats.mobs_killed),&lt;br /&gt;
                            args.damageDealt &amp;amp;&amp;amp; element(&#039;Damage dealt&#039;, stats.damage_dealt),&lt;br /&gt;
                            args.damageTaken &amp;amp;&amp;amp; element(&#039;Damage taken&#039;, stats.damage_taken),&lt;br /&gt;
                        ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                .build();&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3382</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3382"/>
		<updated>2026-10-11T10:24:36Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
/!\ No AI involved in this design &amp;lt;3 only clam juice (contains no clams)&lt;br /&gt;
&lt;br /&gt;
(i) Feel free to edit the actual sections, they automatically resize.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
- write a custom clamcomponent for server status once we have an API that exposes it (make sure &amp;quot;restarting&amp;quot;&amp;gt;&amp;quot;offline&amp;quot; when server restart so people dont go crazy over nothing)&lt;br /&gt;
- write a component for countdown to next server restart&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- ### Header ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#131413;color:white;display:flex;justify-content:space-between;border-radius:1em;padding:0.8em;font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;IP:&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;color:#ffc90e&amp;quot;&amp;gt;betamc.org&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;Status:&amp;lt;/div&amp;gt; &amp;lt;br class=&amp;quot;cc -server-status&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-50%, -42%);background-color:#131413;border-radius:200px;width:120px;height:120px;display:grid;justify-content:center;align-content:center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:logo_color_512x512.png|92px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;justify-content:end&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;font-size:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-100%, -15%)&amp;quot;&amp;gt;&lt;br /&gt;
[[File:discord.png|32px|link=https://betamc.org/discord]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ### Content ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.84em;color:black;display:flex;justify-content:space-between;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:7;background-color:#92c56f50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Welcome to the BetaMC Wiki ==&lt;br /&gt;
&#039;&#039;The official knowledge base for BetaMC, a Beta 1.7.3 Minecraft server!&#039;&#039; &amp;lt;br/&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;Server IP:&#039;&#039;&#039; &amp;lt;code&amp;gt;betamc.org&amp;lt;/code&amp;gt;  &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Minecraft Version:&#039;&#039;&#039; Beta 1.7.3  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Getting Started]] | [[Gameplay Features]] | [[Rules]] | [[Ranks]] | [[Staff List]] | [[Special:RecentChanges | Recent Changes]] | [[Special:AllPages | All Pages]] | [https://www.mediawiki.org/wiki/Cheatsheet Wiki Cheatsheet]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== BetaMC Guides ==&lt;br /&gt;
* [[Survival Guide]] – Learn how to thrive in BetaMC!&lt;br /&gt;
* [[Building Tips]] – Best ways to design Beta-era builds.&lt;br /&gt;
* [[Economy System]] – How trading and currency work.&lt;br /&gt;
* [[Wiki Contribution Guide]] – How to use the wiki.&lt;br /&gt;
* [[Custom Widgets]] – Spice up your Wiki pages!&lt;br /&gt;
&#039;&#039;&#039;Want to create an account? Please contact staff via a Discord ticket or via /msg.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:4;display:flex;flex-direction:column;gap:0.8em&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#966c4a50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==News==&lt;br /&gt;
* 2026-10-08 - &#039;&#039;Wiki got a clammy glow up&#039;&#039; &amp;lt;!-- genuinely took 2h --&amp;gt;&lt;br /&gt;
* ????-??-?? - &#039;&#039;Whole lotta stuff changed... RIP wool&#039;&#039;&lt;br /&gt;
* 2025-09-09 - &#039;&#039;Admin Shop Prices Changed?!?&#039;&#039;&lt;br /&gt;
* 2025-04-01 - &#039;&#039;Wiki is deleted, and created again!&#039;&#039;&lt;br /&gt;
* 2025-03-05 - &#039;&#039;Wiki is created!&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#ffc90e50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[:Category:User|Users]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Town|Towns]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Lore|Lore]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3381</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3381"/>
		<updated>2026-10-11T10:22:43Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
/!\ No AI involved in this design &amp;lt;3 only clam juice (contains no clams)&lt;br /&gt;
&lt;br /&gt;
(i) Feel free to edit the actual sections, they automatically resize.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
- write a custom clamcomponent for server status once we have an API that exposes it (make sure &amp;quot;restarting&amp;quot;&amp;gt;&amp;quot;offline&amp;quot; when server restart so people dont go crazy over nothing)&lt;br /&gt;
- write a component for countdown to next server restart&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- ### Header ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#131413;color:white;display:flex;justify-content:space-between;border-radius:1em;padding:0.8em;font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;IP:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#ffc90e&amp;quot;&amp;gt;betamc.org&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;Status:&amp;lt;/span&amp;gt; &amp;lt;br class=&amp;quot;cc -server-status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-50%, -42%);background-color:#131413;border-radius:200px;width:120px;height:120px;display:grid;justify-content:center;align-content:center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:logo_color_512x512.png|92px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;justify-content:end&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;font-size:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-100%, -15%)&amp;quot;&amp;gt;&lt;br /&gt;
[[File:discord.png|32px|link=https://betamc.org/discord]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ### Content ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.84em;color:black;display:flex;justify-content:space-between;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:7;background-color:#92c56f50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Welcome to the BetaMC Wiki ==&lt;br /&gt;
&#039;&#039;The official knowledge base for BetaMC, a Beta 1.7.3 Minecraft server!&#039;&#039; &amp;lt;br/&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;Server IP:&#039;&#039;&#039; &amp;lt;code&amp;gt;betamc.org&amp;lt;/code&amp;gt;  &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Minecraft Version:&#039;&#039;&#039; Beta 1.7.3  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Getting Started]] | [[Gameplay Features]] | [[Rules]] | [[Ranks]] | [[Staff List]] | [[Special:RecentChanges | Recent Changes]] | [[Special:AllPages | All Pages]] | [https://www.mediawiki.org/wiki/Cheatsheet Wiki Cheatsheet]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== BetaMC Guides ==&lt;br /&gt;
* [[Survival Guide]] – Learn how to thrive in BetaMC!&lt;br /&gt;
* [[Building Tips]] – Best ways to design Beta-era builds.&lt;br /&gt;
* [[Economy System]] – How trading and currency work.&lt;br /&gt;
* [[Wiki Contribution Guide]] – How to use the wiki.&lt;br /&gt;
* [[Custom Widgets]] – Spice up your Wiki pages!&lt;br /&gt;
&#039;&#039;&#039;Want to create an account? Please contact staff via a Discord ticket or via /msg.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:4;display:flex;flex-direction:column;gap:0.8em&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#966c4a50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==News==&lt;br /&gt;
* 2026-10-08 - &#039;&#039;Wiki got a clammy glow up&#039;&#039; &amp;lt;!-- genuinely took 2h --&amp;gt;&lt;br /&gt;
* ????-??-?? - &#039;&#039;Whole lotta stuff changed... RIP wool&#039;&#039;&lt;br /&gt;
* 2025-09-09 - &#039;&#039;Admin Shop Prices Changed?!?&#039;&#039;&lt;br /&gt;
* 2025-04-01 - &#039;&#039;Wiki is deleted, and created again!&#039;&#039;&lt;br /&gt;
* 2025-03-05 - &#039;&#039;Wiki is created!&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#ffc90e50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[:Category:User|Users]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Town|Towns]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Lore|Lore]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:StatsClient.js&amp;diff=3380</id>
		<title>MediaWiki:StatsClient.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:StatsClient.js&amp;diff=3380"/>
		<updated>2026-10-11T10:22:12Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// TODO: caching so its reusable across widgets&lt;br /&gt;
const statsClient = (() =&amp;gt; ({&lt;br /&gt;
    server: () =&amp;gt; fetch(&#039;https://api.betamc.org/api/v1/server/stats&#039;).then(r =&amp;gt; r.json()),&lt;br /&gt;
    player: name =&amp;gt; fetch(`https://api.betamc.org/api/v1/player/${name}`).then(r =&amp;gt; r.json()),&lt;br /&gt;
}))();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3379</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3379"/>
		<updated>2026-10-11T09:36:39Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, online, firstJoin, playTime)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; clear: both; margin-left: 0.84em;&amp;gt;&lt;br /&gt;
⬆ [https://wiki.betamc.org/index.php/Custom_Widgets#Stats Want stats like these?] ⬆&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3377</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3377"/>
		<updated>2026-10-11T09:34:24Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, online, firstJoin, playTime)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; margin-left: 20px;&amp;gt;&lt;br /&gt;
⬆ [https://wiki.betamc.org/index.php/Custom_Widgets#Stats Want stats like these?] ⬆&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3374</id>
		<title>Custom Widgets</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3374"/>
		<updated>2026-10-11T09:25:13Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What?==&lt;br /&gt;
&lt;br /&gt;
Widgets! Tiny stuffs, custom made, loaded dynamically. Easy to add, just put the below codes somewhere on the page, and it works.&lt;br /&gt;
&lt;br /&gt;
==User Page Widgets==&lt;br /&gt;
&lt;br /&gt;
These widgets cannot be used outside of User pages and automatically detect and use the name of the user.&lt;br /&gt;
&lt;br /&gt;
===Online Badge===&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_20261008_134626.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Simple badge that uses the BetaMC stats API to check weather the user is online or offline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stats===&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_20261011_110705.png|160px|thumb|right|Example Stats #1: Simple and concise]]&lt;br /&gt;
[[File:Screenshot_20261011_110731.png|160px|thumb|right|Example Stats #2: All of them except for online badge]]&lt;br /&gt;
&lt;br /&gt;
All-in-one customizable stats widget. Automatically floats to the right. Stats can be added and omitted as wanted. Ordering is fixed.&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, online, firstJoin, playTime)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=face, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths, damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ List of all stats&lt;br /&gt;
! Id !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;skin=?&amp;lt;/code&amp;gt; || May be set to either &amp;lt;code&amp;gt;skin=face&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;skin=full&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;online&amp;lt;/code&amp;gt; || Displays online badge next to name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;firstJoin&amp;lt;/code&amp;gt; || Date of the initial join.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lastSeen&amp;lt;/code&amp;gt; || Date of last join, displays &amp;quot;online&amp;quot; if currently online.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;score&amp;lt;/code&amp;gt; || Total score.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;playTime&amp;lt;/code&amp;gt; || Time played in days, hours, minutes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;balance&amp;lt;/code&amp;gt; || Total &amp;lt;code&amp;gt;/baltop&amp;lt;/code&amp;gt; balance including banks.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blocksPlaced&amp;lt;/code&amp;gt; || Total blocks placed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blocksBroken&amp;lt;/code&amp;gt; || Total blocks broken.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blocksTraveled&amp;lt;/code&amp;gt; || Distance of blocks travelled.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;playersKilled&amp;lt;/code&amp;gt; || Count of killed players.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mobsKilled&amp;lt;/code&amp;gt; || Count of killed mobs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deaths&amp;lt;/code&amp;gt; || Count of deaths.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;damageDealt&amp;lt;/code&amp;gt; || Amount of damage dealt to players and mobs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;damageTaken&amp;lt;/code&amp;gt; || Amount of damage taken.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Widgets==&lt;br /&gt;
&lt;br /&gt;
(none yet)&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Screenshot_20261011_110731.png&amp;diff=3373</id>
		<title>File:Screenshot 20261011 110731.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Screenshot_20261011_110731.png&amp;diff=3373"/>
		<updated>2026-10-11T09:08:03Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Screenshot_20261011_110705.png&amp;diff=3372</id>
		<title>File:Screenshot 20261011 110705.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Screenshot_20261011_110705.png&amp;diff=3372"/>
		<updated>2026-10-11T09:07:53Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3371</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3371"/>
		<updated>2026-10-11T09:05:08Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Add stats widget&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(() =&amp;gt; {&lt;br /&gt;
    /**&lt;br /&gt;
     * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
     * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
     *&lt;br /&gt;
     * Example:&lt;br /&gt;
     *  $builder(&#039;div&#039;)&lt;br /&gt;
     *      .id(&#039;foo&#039;)&lt;br /&gt;
     *      .className(&#039;a b c&#039;)&lt;br /&gt;
     *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
     *      .build()&lt;br /&gt;
     *&lt;br /&gt;
     * Result:&lt;br /&gt;
     *  ```&lt;br /&gt;
     *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
     *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
     *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
     *  ```&lt;br /&gt;
     *&lt;br /&gt;
     * @license MIT&lt;br /&gt;
     * @author Robert Wesner&lt;br /&gt;
     * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
     */&lt;br /&gt;
    const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
    const $bold = text =&amp;gt; $builder(&#039;b&#039;).onBuildText(text).build();&lt;br /&gt;
&lt;br /&gt;
    $style(&#039;clam-components&#039;, `&lt;br /&gt;
        .clam-component---online-badge {&lt;br /&gt;
            border: 1px solid #2c303624;&lt;br /&gt;
            background-color: white;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
            font-weight: bold;&lt;br /&gt;
        &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;]::after {&lt;br /&gt;
                color: #11cc0e;&lt;br /&gt;
                content: &#039;● online&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;]::after {&lt;br /&gt;
                color: #cc140e;&lt;br /&gt;
                content: &#039;● offline&#039;;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---mc-text &amp;gt; .cc-mc-text {&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;0&amp;quot;] { color: #000000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;1&amp;quot;] { color: #0000AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;2&amp;quot;] { color: #00AA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;3&amp;quot;] { color: #00AAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;4&amp;quot;] { color: #AA0000 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;5&amp;quot;] { color: #AA00AA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;6&amp;quot;] { color: #FFAA00 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;7&amp;quot;] { color: #AAAAAA }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;8&amp;quot;] { color: #555555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;9&amp;quot;] { color: #5555FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;a&amp;quot;] { color: #55FF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;b&amp;quot;] { color: #55FFFF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;c&amp;quot;] { color: #FF5555 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;d&amp;quot;] { color: #FF55FF }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;e&amp;quot;] { color: #FFFF55 }&lt;br /&gt;
            &amp;amp;[data-color=&amp;quot;f&amp;quot;] { color: #FFFFFF }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        .clam-component---stats {&lt;br /&gt;
            display: flex;&lt;br /&gt;
            flex-direction: column;&lt;br /&gt;
            align-items: center;&lt;br /&gt;
            gap: 0.6em;&lt;br /&gt;
            float: right;&lt;br /&gt;
            padding: 0.6em;&lt;br /&gt;
            background-color: #69696912;&lt;br /&gt;
            border: 1px solid #80808080;&lt;br /&gt;
            border-radius: 1em;&lt;br /&gt;
        }&lt;br /&gt;
    `);&lt;br /&gt;
&lt;br /&gt;
    const mcText = raw =&amp;gt; $builder(&#039;span.clam-component---mc-text&#039;)&lt;br /&gt;
        .onBuildAppend(&lt;br /&gt;
            ...raw&lt;br /&gt;
                .split(&#039;§&#039;)&lt;br /&gt;
                .map(part =&amp;gt;&lt;br /&gt;
                    $builder(&#039;span.cc-mc-text&#039;)&lt;br /&gt;
                        .data_color(part.charAt(0))&lt;br /&gt;
                        .onBuildText(part.slice(1))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ),&lt;br /&gt;
        )&lt;br /&gt;
        .build();&lt;br /&gt;
&lt;br /&gt;
    const date = timestamp =&amp;gt; new Date(timestamp)&lt;br /&gt;
        .toISOString()&lt;br /&gt;
        .replace(&#039;T&#039;, &#039; &#039;)&lt;br /&gt;
        .slice(0, 16);&lt;br /&gt;
&lt;br /&gt;
    const time = seconds =&amp;gt; {&lt;br /&gt;
        const days = Math.floor(seconds / 86400000);&lt;br /&gt;
        const hours = Math.floor((seconds % 86400000) / 3600000);&lt;br /&gt;
        const minutes = Math.floor((seconds % 3600000) / 60000);&lt;br /&gt;
&lt;br /&gt;
        let result = &#039;&#039;;&lt;br /&gt;
        if (days) result += days + &#039;d &#039;;&lt;br /&gt;
        if (hours) result += hours + &#039;h &#039;;&lt;br /&gt;
        if (minutes) result += minutes + &#039;m&#039;;&lt;br /&gt;
&lt;br /&gt;
        return result.trim();&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    const route = (path, callable) =&amp;gt; {&lt;br /&gt;
        const matches = location.pathname.match(path);&lt;br /&gt;
        if (matches) callable(...matches.slice(1));&lt;br /&gt;
    };&lt;br /&gt;
    const component = (selector, callable) =&amp;gt;&lt;br /&gt;
        document.querySelectorAll(selector)&lt;br /&gt;
            .forEach(element =&amp;gt; {&lt;br /&gt;
                const argsMatches = element.className.match(/\(([^()]+?)\)/);&lt;br /&gt;
                const args = argsMatches&lt;br /&gt;
                    ? Object.fromEntries(&lt;br /&gt;
                        argsMatches[1]&lt;br /&gt;
                            .split(&#039;,&#039;)&lt;br /&gt;
                            .map(arg =&amp;gt; {&lt;br /&gt;
                                const parts = arg.trim().split(&#039;=&#039;, 2);&lt;br /&gt;
&lt;br /&gt;
                                return [parts[0], parts[1] ?? true];&lt;br /&gt;
                            }),&lt;br /&gt;
                    ) : {};&lt;br /&gt;
&lt;br /&gt;
                element.replaceWith(callable(args));&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
    route(/\/index.php\/User:([^\/]+)/, async username =&amp;gt; {&lt;br /&gt;
        const stats = await statsClient.player(username);&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-online&#039;, () =&amp;gt;&lt;br /&gt;
            $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                .data_online(stats.online)&lt;br /&gt;
                .build(),&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        component(&#039;br.cc.-stats&#039;, args =&amp;gt; {&lt;br /&gt;
            const element = (title, value) =&amp;gt; $builder(&#039;div&#039;).onBuildAppend($bold(title), &#039;: &#039;, value).build();&lt;br /&gt;
&lt;br /&gt;
            return $builder(&#039;div.clam-component---stats&#039;)&lt;br /&gt;
                .onBuildAppend(...[&lt;br /&gt;
                    $builder(&#039;b&#039;).onBuildAppend(...[&lt;br /&gt;
                        mcText(stats.prefix),&lt;br /&gt;
                        stats.name,&lt;br /&gt;
                        args.online &amp;amp;&amp;amp; $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                            .style(&#039;margin-left: 0.48em&#039;)&lt;br /&gt;
                            .data_online(stats.online)&lt;br /&gt;
                            .build(),&lt;br /&gt;
                    ].filter(_ =&amp;gt; !!_)).build(),&lt;br /&gt;
                    args.skin === &#039;face&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://minotar.net/avatar/${stats.uuid}/128.png&amp;quot;]`).build(),&lt;br /&gt;
                    args.skin === &#039;full&#039; &amp;amp;&amp;amp; $builder(`img[src=&amp;quot;https://api.mineatar.io/body/full/${stats.uuid}?scale=8#.png&amp;quot;]`).build(),&lt;br /&gt;
                    $builder(&#039;div.cc-stats-container&#039;)&lt;br /&gt;
                        .onBuildAppend(...[&lt;br /&gt;
                            args.firstJoin &amp;amp;&amp;amp; element(&#039;Joined&#039;, date(stats.first_join)),&lt;br /&gt;
                            args.lastSeen &amp;amp;&amp;amp; element(&lt;br /&gt;
                                &#039;Seen&#039;,&lt;br /&gt;
                                stats.online&lt;br /&gt;
                                    ? $builder(&#039;span&#039;).style(&amp;quot;color: #11cc0e&amp;quot;).onBuildText(&#039;online&#039;).build()&lt;br /&gt;
                                    : date(stats.last_join),&lt;br /&gt;
                            ),&lt;br /&gt;
                            args.playTime &amp;amp;&amp;amp; element(&#039;Played&#039;, time(stats.playtime)),&lt;br /&gt;
                            args.score &amp;amp;&amp;amp; element(&#039;Score&#039;, stats.overall.toFixed(2)),&lt;br /&gt;
                            args.balance &amp;amp;&amp;amp; element(&#039;Balance&#039;, stats.balance.toFixed(2)),&lt;br /&gt;
                            args.blocksPlaced &amp;amp;&amp;amp; element(&#039;Blocks placed&#039;, stats.blocks_placed),&lt;br /&gt;
                            args.blocksBroken &amp;amp;&amp;amp; element(&#039;Blocks broken&#039;, stats.blocks_broken),&lt;br /&gt;
                            args.blocksTraveled &amp;amp;&amp;amp; element(&#039;Traveled&#039;, Math.floor(stats.blocks_traveled)),&lt;br /&gt;
                            args.deaths &amp;amp;&amp;amp; element(&#039;Deaths&#039;, stats.deaths),&lt;br /&gt;
                            args.playersKilled &amp;amp;&amp;amp; element(&#039;Players killed&#039;, stats.players_killed),&lt;br /&gt;
                            args.mobsKilled &amp;amp;&amp;amp; element(&#039;Mobs killed&#039;, stats.mobs_killed),&lt;br /&gt;
                            args.damageDealt &amp;amp;&amp;amp; element(&#039;Damage dealt&#039;, stats.damage_dealt),&lt;br /&gt;
                            args.damageTaken &amp;amp;&amp;amp; element(&#039;Damage taken&#039;, stats.damage_taken),&lt;br /&gt;
                        ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                        .build(),&lt;br /&gt;
                ].filter(_ =&amp;gt; !!_))&lt;br /&gt;
                .build();&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3370</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3370"/>
		<updated>2026-10-11T09:02:21Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=face, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths, damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, online, firstJoin, playTime)&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3369</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3369"/>
		<updated>2026-10-11T08:48:19Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=face, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths, damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, firstJoin, playTime)&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3368</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3368"/>
		<updated>2026-10-11T07:48:23Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=face, rank, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths. damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, rank, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths. damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3367</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3367"/>
		<updated>2026-10-11T07:47:58Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=face, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths. damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (skin=full, firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths. damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3366</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3366"/>
		<updated>2026-10-11T07:26:25Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -stats (firstJoin, lastSeen, score, playTime, balance, blocksPlaced, blocksBroken, blocksTraveled, playersKilled, mobsKilled, deaths. damageDealt, damageTaken)&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3360</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Main_Page&amp;diff=3360"/>
		<updated>2026-10-08T13:03:08Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Clam? Clam.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
/!\ No AI involved in this design &amp;lt;3 only clam juice (contains no clams)&lt;br /&gt;
&lt;br /&gt;
(i) Feel free to edit the actual sections, they automatically resize.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
- write a custom clamcomponent for server status once we have an API that exposes it (make sure &amp;quot;restarting&amp;quot;&amp;gt;&amp;quot;offline&amp;quot; when server restart so people dont go crazy over nothing)&lt;br /&gt;
- write a component for countdown to next server restart&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- ### Header ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#131413;color:white;display:flex;justify-content:space-between;border-radius:1em;padding:0.8em;font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;IP:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#ffc90e&amp;quot;&amp;gt;betamc.org&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#dbdbdb&amp;quot;&amp;gt;Status:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#ff75f8&amp;quot;&amp;gt;???&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-50%, -42%);background-color:#131413;border-radius:200px;width:120px;height:120px;display:grid;justify-content:center;align-content:center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:logo_color_512x512.png|92px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;display:flex;justify-content:end&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;font-size:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;transform:translate(-100%, -15%)&amp;quot;&amp;gt;&lt;br /&gt;
[[File:discord.png|32px|link=https://betamc.org/discord]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ### Content ### --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.84em;color:black;display:flex;justify-content:space-between;gap:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:7;background-color:#92c56f50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Welcome to the BetaMC Wiki ==&lt;br /&gt;
&#039;&#039;The official knowledge base for BetaMC, a Beta 1.7.3 Minecraft server!&#039;&#039; &amp;lt;br/&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;Server IP:&#039;&#039;&#039; &amp;lt;code&amp;gt;betamc.org&amp;lt;/code&amp;gt;  &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Minecraft Version:&#039;&#039;&#039; Beta 1.7.3  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Getting Started]] | [[Gameplay Features]] | [[Rules]] | [[Ranks]] | [[Staff List]] | [[Special:RecentChanges | Recent Changes]] | [[Special:AllPages | All Pages]] | [https://www.mediawiki.org/wiki/Cheatsheet Wiki Cheatsheet]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== BetaMC Guides ==&lt;br /&gt;
* [[Survival Guide]] – Learn how to thrive in BetaMC!&lt;br /&gt;
* [[Building Tips]] – Best ways to design Beta-era builds.&lt;br /&gt;
* [[Economy System]] – How trading and currency work.&lt;br /&gt;
* [[Wiki Contribution Guide]] – How to use the wiki.&lt;br /&gt;
* [[Custom Widgets]] – Spice up your Wiki pages!&lt;br /&gt;
&#039;&#039;&#039;Want to create an account? Please contact staff via a Discord ticket or via /msg.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:4;display:flex;flex-direction:column;gap:0.8em&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#966c4a50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==News==&lt;br /&gt;
* 2026-10-08 - &#039;&#039;Wiki got a clammy glow up&#039;&#039; &amp;lt;!-- genuinely took 2h --&amp;gt;&lt;br /&gt;
* ????-??-?? - &#039;&#039;Whole lotta stuff changed... RIP wool&#039;&#039;&lt;br /&gt;
* 2025-09-09 - &#039;&#039;Admin Shop Prices Changed?!?&#039;&#039;&lt;br /&gt;
* 2025-04-01 - &#039;&#039;Wiki is deleted, and created again!&#039;&#039;&lt;br /&gt;
* 2025-03-05 - &#039;&#039;Wiki is created!&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;background-color:#ffc90e50;border:1px solid #00000020;color:black;border-radius:1em;padding:0.8em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT BELOW!&lt;br /&gt;
vvvvvvvvvvv&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[:Category:User|Users]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Town|Towns]] &lt;br /&gt;
&lt;br /&gt;
[[:Category:Lore|Lore]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
^^^^^^^^^^^&lt;br /&gt;
EDIT ABOVE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Discord.png&amp;diff=3359</id>
		<title>File:Discord.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Discord.png&amp;diff=3359"/>
		<updated>2026-10-08T12:20:46Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Logo_color_512x512.png&amp;diff=3358</id>
		<title>File:Logo color 512x512.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Logo_color_512x512.png&amp;diff=3358"/>
		<updated>2026-10-08T12:06:30Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Text_color.png&amp;diff=3357</id>
		<title>File:Text color.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Text_color.png&amp;diff=3357"/>
		<updated>2026-10-08T12:04:10Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3355</id>
		<title>Custom Widgets</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3355"/>
		<updated>2026-10-08T11:47:10Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What?==&lt;br /&gt;
&lt;br /&gt;
Widgets! Tiny stuffs, custom made, loaded dynamically. Easy to add, just put the below codes somewhere on the page, and it works.&lt;br /&gt;
&lt;br /&gt;
==User Page Widgets==&lt;br /&gt;
&lt;br /&gt;
These widgets cannot be used outside of User pages and automatically detect and use the name of the user.&lt;br /&gt;
&lt;br /&gt;
===Online Badge===&lt;br /&gt;
&lt;br /&gt;
Simple badge that uses the BetaMC stats API to check weather the user is online or offline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_20261008_134626.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==General Widgets==&lt;br /&gt;
&lt;br /&gt;
(none yet)&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Screenshot_20261008_134626.png&amp;diff=3354</id>
		<title>File:Screenshot 20261008 134626.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Screenshot_20261008_134626.png&amp;diff=3354"/>
		<updated>2026-10-08T11:46:46Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3353</id>
		<title>Custom Widgets</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Custom_Widgets&amp;diff=3353"/>
		<updated>2026-10-08T11:45:52Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;==What?==  Widgets! Tiny stuffs, custom made, loaded dynamically. Easy to add, just put the below codes somewhere on the page, and it works.  ==User Page Widgets==  These widgets cannot be used outside of User pages and automatically detect and use the name of the user.  ===Online Badge===  Simple badge that uses the BetaMC stats API to check weather the user is online or offline.  100px  &amp;lt;pre&amp;gt; &amp;lt;br class=&amp;quot;cc -online&amp;gt; &amp;lt;/pre&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What?==&lt;br /&gt;
&lt;br /&gt;
Widgets! Tiny stuffs, custom made, loaded dynamically. Easy to add, just put the below codes somewhere on the page, and it works.&lt;br /&gt;
&lt;br /&gt;
==User Page Widgets==&lt;br /&gt;
&lt;br /&gt;
These widgets cannot be used outside of User pages and automatically detect and use the name of the user.&lt;br /&gt;
&lt;br /&gt;
===Online Badge===&lt;br /&gt;
&lt;br /&gt;
Simple badge that uses the BetaMC stats API to check weather the user is online or offline.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_20261008_134042.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General Widgets==&lt;br /&gt;
&lt;br /&gt;
(none yet)&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Screenshot_20261008_134042.png&amp;diff=3352</id>
		<title>File:Screenshot 20261008 134042.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Screenshot_20261008_134042.png&amp;diff=3352"/>
		<updated>2026-10-08T11:41:26Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3351</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3351"/>
		<updated>2026-10-08T11:39:19Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;Robert Wesner&#039;&#039;&#039; &amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3350</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3350"/>
		<updated>2026-10-08T11:38:29Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
 * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
 *&lt;br /&gt;
 * Example:&lt;br /&gt;
 *  $builder(&#039;div&#039;)&lt;br /&gt;
 *      .id(&#039;foo&#039;)&lt;br /&gt;
 *      .className(&#039;a b c&#039;)&lt;br /&gt;
 *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
 *      .build()&lt;br /&gt;
 *&lt;br /&gt;
 * Result:&lt;br /&gt;
 *  ```&lt;br /&gt;
 *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
 *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
 *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
 *  ```&lt;br /&gt;
 *&lt;br /&gt;
 * @license MIT&lt;br /&gt;
 * @author Robert Wesner&lt;br /&gt;
 * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
 */&lt;br /&gt;
const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
&lt;br /&gt;
$style(&#039;clam-components&#039;, `&lt;br /&gt;
    .clam-component---online-badge {&lt;br /&gt;
        border: 1px solid #2c303624;&lt;br /&gt;
        background-color: white;&lt;br /&gt;
        color: white;&lt;br /&gt;
        padding: 0.12em 0.4em;&lt;br /&gt;
        border-radius: 0.32em;&lt;br /&gt;
        font-weight: bold;&lt;br /&gt;
    &lt;br /&gt;
        &amp;amp;[data-online=&amp;quot;true&amp;quot;]::after {&lt;br /&gt;
            color: #11cc0e;&lt;br /&gt;
            content: &#039;● online&#039;;&lt;br /&gt;
        }&lt;br /&gt;
        &amp;amp;[data-online=&amp;quot;false&amp;quot;]::after {&lt;br /&gt;
            color: #cc140e;&lt;br /&gt;
            content: &#039;● offline&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
`);&lt;br /&gt;
&lt;br /&gt;
(async () =&amp;gt; {&lt;br /&gt;
    const userPathMatch = location.pathname.match(/\/index.php\/User:([^\/]+)/);&lt;br /&gt;
&lt;br /&gt;
    if (userPathMatch) {&lt;br /&gt;
        const stats = await statsClient.player(userPathMatch[1]);&lt;br /&gt;
&lt;br /&gt;
        document.querySelectorAll(&#039;br.cc.-online&#039;).forEach(element =&amp;gt; element.replaceWith(&lt;br /&gt;
            $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                .data_online(stats.online)&lt;br /&gt;
                .build(),&lt;br /&gt;
        ));&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3349</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3349"/>
		<updated>2026-10-08T11:28:37Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Actually works, lets go!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol&lt;br /&gt;
var args = { action: &#039;raw&#039;, ctype: &#039;text/javascript&#039; };&lt;br /&gt;
function script(name) {&lt;br /&gt;
    return function() {&lt;br /&gt;
        return mw.loader.getScript(&lt;br /&gt;
            mw.util.getUrl(&#039;MediaWiki:&#039; + name + &#039;.js&#039;, {&lt;br /&gt;
                action: &#039;raw&#039;,&lt;br /&gt;
                ctype: &#039;text/javascript&#039;&lt;br /&gt;
            })&lt;br /&gt;
        );&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Promise.resolve()&lt;br /&gt;
    .then(script(&#039;StatsClient&#039;))&lt;br /&gt;
    .then(script(&#039;ClamComponent&#039;))&lt;br /&gt;
;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3348</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3348"/>
		<updated>2026-10-08T11:27:06Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3347</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3347"/>
		<updated>2026-10-08T11:26:15Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: If this does not work, I will shed tears&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol&lt;br /&gt;
var args = { action: &#039;raw&#039;, ctype: &#039;text/javascript&#039; };&lt;br /&gt;
function script(name) {&lt;br /&gt;
    return function() {&lt;br /&gt;
        mw.loader.getScript(&lt;br /&gt;
            mw.util.getUrl(&#039;MediaWiki:&#039; + name + &#039;.js&#039;, {&lt;br /&gt;
                action: &#039;raw&#039;,&lt;br /&gt;
                ctype: &#039;text/javascript&#039;&lt;br /&gt;
            })&lt;br /&gt;
        );&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Promise.resolve()&lt;br /&gt;
    .then(script(&#039;StatsClient&#039;))&lt;br /&gt;
    .then(script(&#039;ClamComponent&#039;))&lt;br /&gt;
;&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3346</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3346"/>
		<updated>2026-10-08T11:19:13Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol&lt;br /&gt;
&lt;br /&gt;
(async function () {&lt;br /&gt;
    function loadScript(page) {&lt;br /&gt;
        return new Promise(function (resolve, reject) {&lt;br /&gt;
            var script = document.createElement(&#039;script&#039;);&lt;br /&gt;
&lt;br /&gt;
            script.src = mw.util.getUrl(page, {&lt;br /&gt;
                action: &#039;raw&#039;,&lt;br /&gt;
                ctype: &#039;text/javascript&#039;&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            script.onload = resolve;&lt;br /&gt;
            script.onerror = reject;&lt;br /&gt;
&lt;br /&gt;
            document.head.appendChild(script);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    await loadScript(&#039;MediaWiki:StatsClient.js&#039;);&lt;br /&gt;
    await loadScript(&#039;MediaWiki:ClamComponent.js&#039;);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3345</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3345"/>
		<updated>2026-10-08T11:16:44Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
 * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
 *&lt;br /&gt;
 * Example:&lt;br /&gt;
 *  $builder(&#039;div&#039;)&lt;br /&gt;
 *      .id(&#039;foo&#039;)&lt;br /&gt;
 *      .className(&#039;a b c&#039;)&lt;br /&gt;
 *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
 *      .build()&lt;br /&gt;
 *&lt;br /&gt;
 * Result:&lt;br /&gt;
 *  ```&lt;br /&gt;
 *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
 *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
 *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
 *  ```&lt;br /&gt;
 *&lt;br /&gt;
 * @license MIT&lt;br /&gt;
 * @author Robert Wesner&lt;br /&gt;
 * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
 */&lt;br /&gt;
const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
&lt;br /&gt;
$style(&#039;clam-components&#039;, `&lt;br /&gt;
    .clam-component---online-badge {&lt;br /&gt;
        &amp;amp; .cc-ob-online {&lt;br /&gt;
            background-color: #2c303633;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            margin-left: 0.6em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
    &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;] {&lt;br /&gt;
                color: lime;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● online&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;] {&lt;br /&gt;
                color: red;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● offline&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
        } &lt;br /&gt;
    }&lt;br /&gt;
`);&lt;br /&gt;
&lt;br /&gt;
(async () =&amp;gt; {&lt;br /&gt;
    const userPathMatch = location.pathname.match(/\/index.php\/User:([^\/]+)/);&lt;br /&gt;
&lt;br /&gt;
    if (userPathMatch) {&lt;br /&gt;
        const stats = await statsClient.player(userPathMatch[1]);&lt;br /&gt;
&lt;br /&gt;
        document.querySelectorAll(&#039;br.cc.-online&#039;).forEach(element =&amp;gt; {&lt;br /&gt;
            console.log(element, stats);&lt;br /&gt;
&lt;br /&gt;
            element.replaceWith(&lt;br /&gt;
                $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                    .onBuildAppend(&lt;br /&gt;
                        $builder(&#039;span.cc-ob-name&#039;).onBuildText(stats.name).build(),&lt;br /&gt;
                        $builder(&#039;span.cc-ob-online&#039;).data_online(stats.online).build(),&lt;br /&gt;
                    )&lt;br /&gt;
                    .build(),&lt;br /&gt;
            );&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3344</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3344"/>
		<updated>2026-10-08T11:15:33Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
    mw.util.getUrl(&#039;MediaWiki:StatsClient.js&#039;, {&lt;br /&gt;
        action: &#039;raw&#039;,&lt;br /&gt;
        ctype: &#039;text/javascript&#039;&lt;br /&gt;
    })&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&lt;br /&gt;
    mw.util.getUrl(&#039;MediaWiki:ClamComponent.js&#039;, {&lt;br /&gt;
        action: &#039;raw&#039;,&lt;br /&gt;
        ctype: &#039;text/javascript&#039;&lt;br /&gt;
    })&lt;br /&gt;
);&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:StatsClient.js&amp;diff=3343</id>
		<title>MediaWiki:StatsClient.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:StatsClient.js&amp;diff=3343"/>
		<updated>2026-10-08T11:15:04Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;// TODO: caching so its reusable across widgets const statsClient = (() =&amp;gt; ({     player: name =&amp;gt; fetch(`https://api.betamc.org/api/v1/player/${name}`).then(r =&amp;gt; r.json()), }))();&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// TODO: caching so its reusable across widgets&lt;br /&gt;
const statsClient = (() =&amp;gt; ({&lt;br /&gt;
    player: name =&amp;gt; fetch(`https://api.betamc.org/api/v1/player/${name}`).then(r =&amp;gt; r.json()),&lt;br /&gt;
}))();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3342</id>
		<title>MediaWiki:ClamComponent.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:ClamComponent.js&amp;diff=3342"/>
		<updated>2026-10-08T11:12:41Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;/**  * Reusable XSS-safe html-builder DSL.  * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.  *  * Example:  *  $builder(&amp;#039;div&amp;#039;)  *      .id(&amp;#039;foo&amp;#039;)  *      .className(&amp;#039;a b c&amp;#039;)  *      .onBuildText(&amp;#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&amp;#039;)  *      .build()  *  * Result:  *  ```  *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;  *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;  *  &amp;lt;/div&amp;gt;;  *  ```  *  * @license MIT  * @author Robert Wesner  * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
 * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
 *&lt;br /&gt;
 * Example:&lt;br /&gt;
 *  $builder(&#039;div&#039;)&lt;br /&gt;
 *      .id(&#039;foo&#039;)&lt;br /&gt;
 *      .className(&#039;a b c&#039;)&lt;br /&gt;
 *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
 *      .build()&lt;br /&gt;
 *&lt;br /&gt;
 * Result:&lt;br /&gt;
 *  ```&lt;br /&gt;
 *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
 *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
 *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
 *  ```&lt;br /&gt;
 *&lt;br /&gt;
 * @license MIT&lt;br /&gt;
 * @author Robert Wesner&lt;br /&gt;
 * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
 */&lt;br /&gt;
const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
&lt;br /&gt;
$style(&#039;clam-components&#039;, `&lt;br /&gt;
    .clam-component---online-badge {&lt;br /&gt;
        &amp;amp; .cc-ob-online {&lt;br /&gt;
            background-color: #2c303633;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            margin-left: 0.6em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
    &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;] {&lt;br /&gt;
                color: lime;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● online&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;] {&lt;br /&gt;
                color: red;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● offline&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
        } &lt;br /&gt;
    }&lt;br /&gt;
`)&lt;br /&gt;
&lt;br /&gt;
(async () =&amp;gt; {&lt;br /&gt;
    const userPathMatch = location.pathname.match(/\/index.php\/User:([^\/]+)/);&lt;br /&gt;
&lt;br /&gt;
    if (userPathMatch) {&lt;br /&gt;
        const stats = await statsClient.player(userPathMatch[1]);&lt;br /&gt;
&lt;br /&gt;
        document.querySelectorAll(&#039;br.cc.-online&#039;).forEach(element =&amp;gt; {&lt;br /&gt;
            console.log(element, stats);&lt;br /&gt;
&lt;br /&gt;
            element.replaceWith(&lt;br /&gt;
                $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                    .onBuildAppend(&lt;br /&gt;
                        $builder(&#039;span.cc-ob-name&#039;).onBuildText(stats.name).build(),&lt;br /&gt;
                        $builder(&#039;span.cc-ob-online&#039;).data_online(stats.online).build(),&lt;br /&gt;
                    )&lt;br /&gt;
                    .build(),&lt;br /&gt;
            );&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3341</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=MediaWiki:Common.js&amp;diff=3341"/>
		<updated>2026-10-08T11:07:28Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Add online-status badge.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reusable XSS-safe html-builder DSL.&lt;br /&gt;
 * Taken from Roberts userscripts so we can avoid insecure innerHtml nonsense.&lt;br /&gt;
 *&lt;br /&gt;
 * Example:&lt;br /&gt;
 *  $builder(&#039;div&#039;)&lt;br /&gt;
 *      .id(&#039;foo&#039;)&lt;br /&gt;
 *      .className(&#039;a b c&#039;)&lt;br /&gt;
 *      .onBuildText(&#039;&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
 *      .build()&lt;br /&gt;
 *&lt;br /&gt;
 * Result:&lt;br /&gt;
 *  ```&lt;br /&gt;
 *  &amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;a b c&amp;quot;&amp;gt;&lt;br /&gt;
 *      &amp;amp;lt;b&amp;amp;gt;Test&amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
 *  &amp;lt;/div&amp;gt;;&lt;br /&gt;
 *  ```&lt;br /&gt;
 *&lt;br /&gt;
 * @license MIT&lt;br /&gt;
 * @author Robert Wesner&lt;br /&gt;
 * @see https://github.com/RobertWesner/YouTube-Play-All/blob/main/script.user.js&lt;br /&gt;
 */&lt;br /&gt;
const { $builder, $style } = (()=&amp;gt;{const $builder=t=&amp;gt;(t=&amp;gt;{const e=t.match(/^[a-zA-Z0-9-]+/);if(!e)throw&amp;quot;Invalid tag supplied to parseQuery.&amp;quot;;const n=e[0],r=(t=&amp;gt;{let e=[];const getOperations=()=&amp;gt;{const t=[...e.flat()];return e=[],t},n=new Proxy(t,{get(r,a,s){const P=t=&amp;gt;(...e)=&amp;gt;(t(...e),n),PBO=t=&amp;gt;P(((...n)=&amp;gt;e.push((()=&amp;gt;t(...n)))));switch(a){case&amp;quot;build&amp;quot;:return()=&amp;gt;(getOperations().forEach((e=&amp;gt;e(t))),t);case&amp;quot;buildWithSync&amp;quot;:return async()=&amp;gt;{for(const e of getOperations()){const n=e(t);n&amp;amp;&amp;amp;&amp;quot;function&amp;quot;==typeof n.then&amp;amp;&amp;amp;await n}return t};case&amp;quot;addClass&amp;quot;:return P((e=&amp;gt;t.classList.add(e)));case&amp;quot;onBuild&amp;quot;:return P((t=&amp;gt;e.push(t)));case&amp;quot;onBuildAppend&amp;quot;:return PBO(((...e)=&amp;gt;t.append(...e)));case&amp;quot;onBuildText&amp;quot;:return PBO((e=&amp;gt;t.textContent=e));case&amp;quot;on&amp;quot;:return P(((e,n)=&amp;gt;t.addEventListener(e,n)))}const c=[&amp;quot;hidden&amp;quot;,&amp;quot;style&amp;quot;];return e=&amp;gt;(!c.includes(a)&amp;amp;&amp;amp;a in t?t[a]=e:t.setAttribute(a.replaceAll(&amp;quot;_&amp;quot;,&amp;quot;-&amp;quot;),e),n)}});return n})(document.createElement(n));if(!t.match(/^[a-zA-Z0-9-]+$/)){const e=(t=&amp;gt;t.match(/^[a-zA-Z0-9-]+((?:[#.][a-zA-Z0-9-]+)+)?((?:\[[a-zA-Z0-9-]+(?:=&amp;quot;.*?&amp;quot;)?])+)?/))(t),n=e[1]??&amp;quot;&amp;quot;,a=e[2]??&amp;quot;&amp;quot;;n.matchAll(/([#.])([a-zA-Z0-9-]+)/g).forEach((([t,e,n])=&amp;gt;{({&amp;quot;#&amp;quot;:r.id,&amp;quot;.&amp;quot;:r.addClass})[e](n)})),a.matchAll(/\[([a-zA-Z0-9-]+)(?:=&amp;quot;(.*?)&amp;quot;)?]/g).forEach((([t,e,n])=&amp;gt;{r[e](n)}))}return r})(t);return{$builder,$style:(t,e)=&amp;gt;document.head.insertAdjacentElement(&amp;quot;beforeend&amp;quot;,$builder(`style#${t}`).onBuild((t=&amp;gt;t.textContent=e)).build())}})();&lt;br /&gt;
&lt;br /&gt;
$style(&#039;clam-components&#039;, `&lt;br /&gt;
    .clam-component---online-badge {&lt;br /&gt;
        &amp;amp; .cc-ob-online {&lt;br /&gt;
            background-color: #2c303633;&lt;br /&gt;
            color: white;&lt;br /&gt;
            padding: 0.12em 0.4em;&lt;br /&gt;
            margin-left: 0.6em;&lt;br /&gt;
            border-radius: 0.32em;&lt;br /&gt;
    &lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;true&amp;quot;] {&lt;br /&gt;
                color: lime;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● online&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
            &amp;amp;[data-online=&amp;quot;false&amp;quot;] {&lt;br /&gt;
                color: red;&lt;br /&gt;
                &amp;amp;::after { content: &#039;● offline&#039;; }&lt;br /&gt;
            }&lt;br /&gt;
        } &lt;br /&gt;
    }&lt;br /&gt;
`)&lt;br /&gt;
&lt;br /&gt;
// TODO: caching so its reusable across widgets&lt;br /&gt;
const statsClient = (() =&amp;gt; ({&lt;br /&gt;
    player: name =&amp;gt; fetch(`https://api.betamc.org/api/v1/player/${name}`).then(r =&amp;gt; r.json()),&lt;br /&gt;
}))();&lt;br /&gt;
&lt;br /&gt;
(async () =&amp;gt; {&lt;br /&gt;
    const userPathMatch = location.pathname.match(/\/index.php\/User:([^\/]+)/);&lt;br /&gt;
&lt;br /&gt;
    if (userPathMatch) {&lt;br /&gt;
        const stats = await statsClient.player(userPathMatch[1]);&lt;br /&gt;
&lt;br /&gt;
        document.querySelectorAll(&#039;br.cc.-online&#039;).forEach(element =&amp;gt; {&lt;br /&gt;
            console.log(element, stats);&lt;br /&gt;
&lt;br /&gt;
            element.replaceWith(&lt;br /&gt;
                $builder(&#039;span.clam-component---online-badge&#039;)&lt;br /&gt;
                    .onBuildAppend(&lt;br /&gt;
                        $builder(&#039;span.cc-ob-name&#039;).onBuildText(stats.name).build(),&lt;br /&gt;
                        $builder(&#039;span.cc-ob-online&#039;).data_online(stats.online).build(),&lt;br /&gt;
                    )&lt;br /&gt;
                    .build(),&lt;br /&gt;
            );&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3340</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3340"/>
		<updated>2026-10-08T10:54:52Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;RobertWesner&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br class=&amp;quot;cc -online&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3339</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=3339"/>
		<updated>2026-10-08T10:47:49Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;RobertWesner&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br class=&amp;quot;cc -stats&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
RobertWesner (or Robert for short) is a Senior Developer on BetaMC. He is a notable member in the community for being very active and tirelessly working on the server. Oh, and also for having a bald skin in-game.&lt;br /&gt;
&lt;br /&gt;
== Clams ==&lt;br /&gt;
Flint is a very useless item. If not for the flint &amp;amp; steel, flint would be a completely junk item.&lt;br /&gt;
&lt;br /&gt;
Which is why Robert solved the issue with a rebranding of flint known as &#039;&#039;&#039;Clams&#039;&#039;&#039;. Clams are... just flint but repurposed into something new. Clams work as a currency in Robert&#039;s megashop known as &#039;&#039;&#039;Clamwares&#039;&#039;&#039;. There, players can exchange clams for valuable items such as ingots and diamonds, as well as obsidian and glowstone.&lt;br /&gt;
&lt;br /&gt;
Robert also implemented a fun feature where he, whenever online, would randomly rain clams from the sky. It is a fun joke feature that has brought joy to all players of the community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: [https://wiki.betamc.org/index.php/User:Andromedalic Andromedalic] on 2PM UTC, Monday 4th May 2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page) &amp;lt;-- left by Robert himself&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=The_Great_Float&amp;diff=3032</id>
		<title>The Great Float</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=The_Great_Float&amp;diff=3032"/>
		<updated>2026-08-27T18:24:14Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;400px&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:float.png|400px]]&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Float.png&amp;diff=3031</id>
		<title>File:Float.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Float.png&amp;diff=3031"/>
		<updated>2026-08-27T18:24:05Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2890</id>
		<title>Treasure Hunter</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2890"/>
		<updated>2026-08-07T20:16:30Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Undo revision 2889 by RobertWesner (talk) oops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; (Also referred to as &amp;quot;Gold Tools&amp;quot; or &amp;quot;GoldUtils&amp;quot;) is a unique plugin on &#039;&#039;&#039;Betamc&#039;&#039;&#039; that adds special effects to gold tools. This plugin is only active on weekends.&lt;br /&gt;
&lt;br /&gt;
==Begin and end==&lt;br /&gt;
&lt;br /&gt;
Treasure hunter is active every week from Saturday 07:00 UTC to Monday 07:00 UTC.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; has an effect on most gold tools, giving them a chance to generate more resources from mining while using them. Exact drop rates can be referenced from the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-right:auto&amp;quot;&lt;br /&gt;
|+ Treasure Hunter Drops&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Reward Quantity !! Chance&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Log || +4 || 10%&lt;br /&gt;
|- &lt;br /&gt;
| +32 || 1%&lt;br /&gt;
|- &lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|- &lt;br /&gt;
| +512 || 0.066%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Coal Ore || +1 || 33.33%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Iron Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Gold Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Diamond Ore || +1 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Lapis Ore || +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +32 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Stone || +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Glowstone || +2 Blocks || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Blocks || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Clay Block || +8 Balls || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Balls || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +32 Blocks || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Pumpkin || +4 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2889</id>
		<title>Treasure Hunter</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2889"/>
		<updated>2026-08-07T20:15:52Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; (Also referred to as &amp;quot;Gold Tools&amp;quot; or &amp;quot;GoldUtils&amp;quot;) is a unique plugin on &#039;&#039;&#039;Betamc&#039;&#039;&#039; that adds special effects to gold tools. This plugin is only active on weekends.&lt;br /&gt;
&lt;br /&gt;
==Beginn and end==&lt;br /&gt;
&lt;br /&gt;
Treasure hunter is active every week from Saturday 07:00 UTC to Monday 07:00 UTC.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; has an effect on most gold tools, giving them a chance to generate more resources from mining while using them. Exact drop rates can be referenced from the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-right:auto&amp;quot;&lt;br /&gt;
|+ Treasure Hunter Drops&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Reward Quantity !! Chance&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Log || +4 || 10%&lt;br /&gt;
|- &lt;br /&gt;
| +32 || 1%&lt;br /&gt;
|- &lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|- &lt;br /&gt;
| +512 || 0.066%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Coal Ore || +1 || 33.33%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Iron Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Gold Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Diamond Ore || +1 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Lapis Ore || +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +32 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Stone || +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Glowstone || +2 Blocks || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Blocks || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Clay Block || +8 Balls || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Balls || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +32 Blocks || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Pumpkin || +4 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2888</id>
		<title>Treasure Hunter</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Treasure_Hunter&amp;diff=2888"/>
		<updated>2026-08-07T20:15:43Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; (Also referred to as &amp;quot;Gold Tools&amp;quot; or &amp;quot;GoldUtils&amp;quot;) is a unique plugin on &#039;&#039;&#039;Betamc&#039;&#039;&#039; that adds special effects to gold tools. This plugin is only active on weekends.&lt;br /&gt;
&lt;br /&gt;
==Begin and end==&lt;br /&gt;
&lt;br /&gt;
Treasure hunter is active every week from Saturday 07:00 UTC to Monday 07:00 UTC.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&#039;&#039;&#039;Treasure Hunter&#039;&#039;&#039; has an effect on most gold tools, giving them a chance to generate more resources from mining while using them. Exact drop rates can be referenced from the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-right:auto&amp;quot;&lt;br /&gt;
|+ Treasure Hunter Drops&lt;br /&gt;
|-&lt;br /&gt;
! Item !! Reward Quantity !! Chance&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Log || +4 || 10%&lt;br /&gt;
|- &lt;br /&gt;
| +32 || 1%&lt;br /&gt;
|- &lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|- &lt;br /&gt;
| +512 || 0.066%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| Coal Ore || +1 || 33.33%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Iron Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Gold Ore || +1 Ingot || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Ingots || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 Ingots || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Diamond Ore || +1 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +2 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +4 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|Lapis Ore || +2 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +8 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +32 || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Stone || +2 || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Glowstone || +2 Blocks || 10%&lt;br /&gt;
|-&lt;br /&gt;
| +16 Blocks || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Blocks || 0.33%&lt;br /&gt;
|-&lt;br /&gt;
| +256 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Clay Block || +8 Balls || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +64 Balls || 2%&lt;br /&gt;
|-&lt;br /&gt;
| +32 Blocks || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 Blocks || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Pumpkin || +4 || 20%&lt;br /&gt;
|-&lt;br /&gt;
| +16 || 1.33%&lt;br /&gt;
|-&lt;br /&gt;
| +64 || 0.5%&lt;br /&gt;
|-&lt;br /&gt;
| +128 || 0.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Flint&amp;diff=2370</id>
		<title>Flint</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Flint&amp;diff=2370"/>
		<updated>2026-05-02T17:11:38Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Lore]]&lt;br /&gt;
[[File:flint.png|400px]]&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=Flint&amp;diff=2369</id>
		<title>Flint</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=Flint&amp;diff=2369"/>
		<updated>2026-05-02T17:10:34Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;400px&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:flint.png|400px]]&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=File:Flint.png&amp;diff=2368</id>
		<title>File:Flint.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=File:Flint.png&amp;diff=2368"/>
		<updated>2026-05-02T17:10:30Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
	<entry>
		<id>https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=2331</id>
		<title>User:RobertWesner</title>
		<link rel="alternate" type="text/html" href="https://wiki.betamc.org/index.php?title=User:RobertWesner&amp;diff=2331"/>
		<updated>2026-03-29T17:11:26Z</updated>

		<summary type="html">&lt;p&gt;RobertWesner: Created page with &amp;quot;Category:User {|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot; |- |style=&amp;quot;color:#FF55FF&amp;quot;|&amp;#039;&amp;#039;&amp;#039;RobertWesner&amp;#039;&amp;#039;&amp;#039; |- |https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png |- |https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png |- |&amp;#039;&amp;#039;&amp;#039;Rank:&amp;#039;&amp;#039;&amp;#039; Sr. Developer  |- |&amp;#039;&amp;#039;&amp;#039;Joined:&amp;#039;&amp;#039;&amp;#039; 2025-10-15 |- |style=&amp;quot;color:lightgreen&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Active&amp;#039;&amp;#039;&amp;#039; |}  (feel free to edit this page)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;text-align:center; width:200px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#FF55FF&amp;quot;|&#039;&#039;&#039;RobertWesner&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|https://minotar.net/avatar/b6a3b26a050b4581bac83e82cd3b2ad4/128.png&lt;br /&gt;
|-&lt;br /&gt;
|https://api.mineatar.io/body/full/b6a3b26a050b4581bac83e82cd3b2ad4?scale=8#.png&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rank:&#039;&#039;&#039; Sr. Developer &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Joined:&#039;&#039;&#039; 2025-10-15&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:lightgreen&amp;quot;|&#039;&#039;&#039;Active&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(feel free to edit this page)&lt;/div&gt;</summary>
		<author><name>RobertWesner</name></author>
	</entry>
</feed>