MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "query": {
        "pages": {
            "56": {
                "pageid": 56,
                "ns": 0,
                "title": "API",
                "revisions": [
                    {
                        "user": "Kademlia",
                        "timestamp": "2022-01-13T16:01:14Z",
                        "slots": {
                            "main": {
                                "contentmodel": "wikitext",
                                "contentformat": "text/x-wiki",
                                "*": "\n[[File:Screenshot 2022-01-13 165059.png|alt=|frame]]\n\nNew Api will use:\n\napi.s200.etm.dev for API calls\n\ns200.etm.dev is for the default website (Angular/Typescript)\n\nlogin url https://api.s200.etm.dev/users/login\n\n\nNew auth desing:\n\n*You need to login to the api by using name/password (basic auth)\n**(or the ingame one-time-token instead of the password)\n*You will get back a x-auth-token\n*Every subsequent request should be done with the x-auth-token (as a header)\n*Connecting to the websocket is done with x-auth-token as well but IN THE QUERY URL\n**wss://api.s200.etm.dev/websocket?x-auth-token=xxxxxxxxx\n\n\n\n\n\n\n\n\n\nBELOW HERE IS NO LONGER WORKING\n----\n\n\n\n<br />\n==Api Urls==\n<syntaxhighlight lang=\"java\">\nhttps://s200.etm.dev/auth   <- Test the credentials \nhttps://s200.etm.dev/transaction/[UserName]/latest\nhttps://s200.etm.dev/shop/[UserName]/[world]\nhttps://s200.etm.dev/userstats/[UserName]/[datetime]  (2020-05-24T14:00) partial allowed!\nhttps://s200.etm.dev/user/[UserName]\nhttps://s200.etm.dev/server/playerlocations/[world]   <-- Needs /user ksonpubliclocation ON !\nhttps://s200.etm.dev/land/[UserName]/[world]\n\nTransactions for the whole day:\nhttps://s200.etm.dev/transaction/Kademlia/day/2020-05-31T00:00 // Hit the day you want with the datetime\nhttps://s200.etm.dev/transaction/Kademlia/month/2020-05-01   // Hit the month you want with the date\n\nTransactions after a previous transaction id:\nhttps://s200.etm.dev/transaction/Kademlia/after/0Y1QW1N2\n\nUUID Lookups:\nhttps://s200.etm.dev/mojang/name/{uuid}\nhttps://s200.etm.dev/mojang/names  POST with a list of UUID[]\n\nPods:\nhttps://s200.etm.dev/pod/{username:.+}/{podName:.+}\nCurrently only one working: https://s200.etm.dev/pod/NAME/Technology\n\nThese calls need authentication. To auth you need to:\n1. Go on the server and enable the api calls for your account with: /user api on\n2. Copy your secret with: /user secret\n3. Call the URL with HEADER-Parameter \"Auth\" and value: {\"userName\":\"USERNAME\",\"secret\":\"YOURSECRET\"}\n\n</syntaxhighlight>\n\n\ncurl -H \"Auth:{\\\"userName\\\":\\\"Kademlia\\\",\\\"secret\\\":\\\"xxxxxxxxxxxxxx\\\"}\" https://s200.etm.dev/transaction/Kademlia/latest\n\n\ncurl -H \"Auth:{\\\"userName\\\":\\\"tigerjunge15\\\",\\\"secret\\\":\\\"F4kWNs7UKfUss7XKdJE8P9DOwFrQB2RvTYx+hPFWGoGZaC/NrSIyEg==\\\"}\" https://s200.etm.dev/transaction/tigerjunge15/latest\n\n<syntaxhighlight lang=\"java\">\nhttps://s200.etm.dev/userstats/tigerjunge15/2020\nhttps://s200.etm.dev/userstats/tigerjunge15/2020-05\nhttps://s200.etm.dev/userstats/tigerjunge15/05-24\nhttps://s200.etm.dev/userstats/tigerjunge15/2020-05-24\n</syntaxhighlight>\n\n==Latest transactions example==\nHttp-Header \"Auth\" with value: {\"userName\":\"tigerjunge15\",\"secret\":\"F4kWNs7UKfUss7XKdJE8P9DOwFrQB2RvTYx+hPFWGoGZaC/NrSIyEg==\"}\"\n\n'''Url:''' https://s200.etm.dev/transaction/tigerjunge15/latest\n\n\n{\"userName\":\"Lasergott\",\"secret\":\"fe6FeQsgDDWybNAZsXEHsdgQ7nIXprUd/feIBRMD4ifqdvWnV98bnA==\"}\"\n\n==Desktop interaction==\n<br />\n<syntaxhighlight lang=\"javascript\">\n<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js\"></script>\n\n<style>\n    .pixelated {\n    -ms-interpolation-mode: nearest-neighbor;\n    image-rendering: -webkit-optimize-contrast;\n    image-rendering: -moz-crisp-edges;\n    image-rendering: pixelated;\n}\n</style>\n\n<script>\n\nconst zoom = 2;\nconst size = 640 * zoom;\nconst userName = \"Kademlia\"\nconst secret = \"dy0GmZ0rckUfkjjx/WKUnnhnsIGbseQCGtDRbGH+6LVYelfvljRJJg==\";\nconst auth = { 'Auth': `{\"userName\":\"${userName}\",\"secret\":\"${secret}\"}` }\n\n\n$(document).ready(function() {\n\n    $('img').attr('src', `https://s200.etm.dev/desktop/screenshot/${userName}/`);\n    $('img').attr('width', `${size}px`);\n\n    $(\"img\").on(\"click\", function(event) {\n        var x = event.pageX - this.offsetLeft;\n        var y = event.pageY - this.offsetTop;\n        onClick(x / zoom,y / zoom);\n    });\n\n    function onClick(x, y) {\n    \n    axios.post(`https://s200.etm.dev/desktop/screenshot/${userName}`, { x, y }, \n     { responseType: 'arraybuffer', headers: auth}\n     )  \n    .then(( response ) => {\n        var b64 = btoa(String.fromCharCode.apply(null, new Uint8Array( response.data)));\n    \t$('img').attr('src', 'data:image/png;base64,'+b64)\n    })\n    .catch((e) => {\n  \t// handle error\n  \tconsole.log(e)\n  })\n}\n});\n</script>\n<img class=\"pixelated\" src=\"\" alt=\"You are not online\">\n</syntaxhighlight>"
                            }
                        },
                        "comment": ""
                    }
                ]
            },
            "1": {
                "pageid": 1,
                "ns": 0,
                "title": "Main Page",
                "revisions": [
                    {
                        "user": "Kademlia",
                        "timestamp": "2024-04-02T01:03:34Z",
                        "slots": {
                            "main": {
                                "contentmodel": "wikitext",
                                "contentformat": "text/x-wiki",
                                "*": "<br />\n\n=Alpha 1= \n*[[Alpha 2]]\n*[[Alpha 1 Todo]]\n*[[Alpha 1 Setup]]\n*[[Alpha 1 General]]\n*[[Alpha 1 New Server Setup]]\n*[[Alpha 1 Server Setup]] 2022\n\n*[[Features]]\n\n=Latest=\n\n*[[StatusUpdates]]\n*[[Screens]]\n*[[Worlds]]\n*[[Todo]]\n*[[Display_Entities|Display Entities]]\n*[[Hotswapping]]\n\n=Intro=\n\n*Learn, Help, Brainstorm & add Ideas!\n*[[Secret Stuff]]\n*[[Shop]]\n*[[API]]\n*[[Shortlinks]]\n\n=Not yet started=\n\n*[[Permissions]]\n*[[V1]]\n*[[User]]\n*UserPods\n*UserSettings\n*[[Symbols]]\n**Flying\n**[[Tools]]\n**Combat\n\n*Random stuff\n**[[Shell]]\n\n=Kades Stuff=\n\n*[[Kadi]]\n*[[Stream]]\n*[[Stream Log]]\n*[[Shortcuts]]\n*[[TabCompletion]]\n*[[Commands]]\n*[[Managers]]\n\n\n[[File:LakesSmall.jpg|200px|right|thumb]]\n\n=General Todos=\n\n*[[RocketBoots|Rocketboots]][[File:2019-07-16 15.32.50.jpg|400px|right|thumb]]\n*[[Bow|Bows]]\n*[[Tools|Tools]]\n*[[Alpha V1|Alpha V1]]\n*[[Kade TodoList|Todo]]\n*[[Libs|Libs]]\n*[[LibCMDs|LibCMDs]]\n*[[Farmworld|Farmworld]]\n*[[Spawner|Spawner]]\n*[[Account|Account]]\n*[[Craft]]\n*[[User]]\n\n\n*[[Prism|Prism]]\n\n=Big Bugs=\n\n*[[Entity Mot Bug|Entity f() mot to high?]]\n*[[TileEntityManager|TileEntity async load]]\n*[[Library System|Shulkerboxes conceptually do not work great with LibId System]]\n*[https://bugs.mojang.com/browse/MC-153904 (Vanilla) Villagers disappear]\n*[[GameProfile]] randomly changed\n*SuffixTreeMap concurrency not given\n*[[Skylight]] broken in general pretty heavily\n\n=Random=\n\n*[[TestCommands|TestCommands]]\n*[[Old Optimizations|Old Optimizations]]\n*[[BDL1 Todos]]\n*[[ChunkliEffekt]]\n\n=Ideas=\n\n*[[Netherportal|Allow creation of Netherportals?]]\n*[[Endportal|Allow creation of Endportal?]]\n*[[Transportation|Item/Object transportations]]\n*[https://www.spigotmc.org/threads/solved-corpses.34655/?__cf_chl_jschl_tk__=d84edb0256ff589b4715f267837cc1f9ac22db34-1587063477-0-AfbzLRpgRxrmg1VCr6YigC2_yP18uUpmZI0QroZKE7HWEXCwgo4c0U7zF5Oy_3vKMp5i6iLNe1MhUjI8A5DRGoUUBtrUgPLzGX6F94UGGDQUiAmT1FM15p5tJQeUSKzwVRQ1W0oUgL_4wzJaVOG4Ly4OHMD21KJvzNQvsKu8L9KN5O4V2echLyIh-vtD8you3uN_wmiG4psKQ58c34b7zKqH0cuyvJShkaPrUDiIecJFj5wsr-cMgczAL5tF9Wk91x2RD_fekwRcBor6ZPghibMfcZ02TaTKAg1ZBBTz_1gWW-92E2VcOFTEe7INgvYN-g Add corpses to FPlayer & FMob]\n*Add 'LagMeter'-Data stats; accessible with spring controller(json)\n*Protect accounts with passwords\n*Freeze new players on login (auth/register/anti bot) DSGVO / AGB Confirmation on login\n*Store inventory-data in User-Profile. Disregard vanilla profile containers?\n*[https://wiki.citizensnpcs.co/Characters Cizitens Job ideas (add to Traders/Tools)]\n*[https://www.spigotmc.org/resources/procosmetics-185-cosmetics-treasurechests-eula-friendly-1-8-1-15-support.49106/ Cosmetical effects - not really interesting but cool for players]\n*Use Blindness effect on teleports\n*Mirror-Building Tool?\n*Use BossBar to show server reboots\n*Launch pads (+ particles), with launchpad directional setups\n*Sit on stairs/slabs\n*\n\n\n==Key-Features (New)==\n\n*[[Chunkli]] \n**[[MojangAPIProxy]]  <br />Allows higher rate of requests to the API Service without breaking. This is needed especially if running multiple servers behind the same IP-Address. If using multiple Servers behind the same IP this will otherwise cause GameProfile-Requests to timeout (1call/60sec ratelimit). This is needed for FakeStuff Players, Crates, Heads\n**GameProfile-Cache: Local GameProfile Cache that will get updated via Chunkli API and not Mojang API.\n**PlayerId-Cache: Local (UUID/Name)-Cache. This allows to get the current Name of a User at any point (especially usefull if the user is not online and changed the Name in the meantime).\n*Kadi\n**LibItem  <br />Generalized Item-Library that can (hopefully) identify all Items used on the Server. It is designed in a way to allow using Hashes at all other points in the Software. Normally you would save/serialize Itemstacks within a Object (FPlayer holding a Sword in its hand). With the Item-Library we only store references to the Library. This allows us to track items easily, allows shopping any item with a unique name and opens the possibility to globally ban a specific item making it unusable.\n**LibCmd  <br />A library containing executable commands identified by a unique name. It is possible to make chained fireworks this way or spawn items from fireworks/entities dying etc. This can be used to create special tools. OnBreak Event could cause a command to run at the location\n**\n\n=Forum=\n[[Forum]]\n\n=Getting started=\n\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
                            }
                        },
                        "comment": "/* Intro */"
                    }
                ]
            }
        }
    }
}