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": "",
    "continue": {
        "gapcontinue": "Rebar",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "2554": {
                "pageid": 2554,
                "ns": 0,
                "title": "Reacting to player events",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{ModdingOutdated}}\n> Eco Version: 7.3.1\n\n> Difficulty: Easy\n\n== Introduction ==\nHi, my name is Dirk and I have been trying to get into Eco modding by trial, error and DLL disassembly. Instead of keeping what I've learned to myself I decided to document my findings here so that the next person to come along can save some time. I will mark to which version of Eco this document applies to and keep it up to date. I realize that this document might contain some items not directly related to the title. In the future, it would make sense to me to split things off into their own document but for now, I will keep to this page. Please feel free to ask me to clarify anything that isn't clear in this write-up. You can hit me up on Discord as `Dirk#5346`.\n\n== Getting started ==\nTo start modding you will need:\n* An Editor capable of handling c#\n* The .NET SDK. The latest 4.x version is fine.\n* The Eco DLL's\n\nNow create a project (VS solution or msbuild based) for a library and create your root cs file. Let's set it up so that it will be recognized as a real plugin by Eco:\n\n<pre>\nnamespace MyModName\n{\n    using System;\n    using Eco.Core.Plugins.Interfaces;\n    using Eco.Core.Utils;\n    using Eco.Gameplay.Systems.Chat;\n\n    public class MyModName : IModKitPlugin, IInitializablePlugin\n    {\n        public string GetStatus()\n        {\n            return String.Empty;\n        }\n\n        public void Initialize(TimedTask timer)\n        {\n            ChatManager.ServerMessageToAllLoc(\"My mod is ready to go!\", false);\n        }\n    }\n}\n</pre>\n\nThe `IModKitPlugin` is a marker interface that allows Eco to pick this class up as a mod. `IInitializablePlugin` will require you to implement `GetStatus` and `Initialize`. Looking at examples it seems that `GetStatus` returning an empty string indicates it is ok. In the `Initialize` mod I am using `ChatManager.ServerMessageToAllLoc`. This is an invaluable method that will allow you to send yourself (and everyone else on the server) debugging notifications. Do make sure that you use the `false` options though otherwise your messages get persisted and you could slow down or mess up your world database if you flood it with messages.\n\nNow go to your Eco root folder and navigate to `Eco_Data\\Server\\Mods`. To keep things tidy create a folder here named `MyModName`. Build your project as a library DLL and place it here. By using a DLL you will speed things up a bit because Eco will not have to compile your file. Additionally, you can make use of the latest c# features like string interpolation, which are not supported by Eco's c# compiler at present. Now start a local game. Every time you update your DLL you need to disconnect from the local game and reconnect to reload your mod.\n\n== Listening to craft events ==\n\nOk, so now the event handling part. Let's create a method to handle crafting events:\n<pre>\nprivate void HandleCraftAction(CraftAction ca)\n{\n    ChatManager.ServerMessageToAllLoc($\"{ca.Username} just crafted a {ca.ItemTypeName} at {ca.X}, {ca.Y}, {ca.Z}\", true);\n}\n</pre>\n\nNow, ''something'' will need to call this method, right? Add the following to the bottom of your `Initialize` method:\n<pre>\nPlayerActions.Craft.OnActionPerformed.Add(HandleCraftAction);\n</pre>\n\nThere you go! All set up now.\n\n[[Category: Modding]]"
                    }
                ]
            },
            "935": {
                "pageid": 935,
                "ns": 0,
                "title": "Real Estate Desk",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{Infobox_Item|name=Real Estate Desk}}\n\n\nThe Real Estate Desk is an item crafted at the [[Carpentry Table]] and is used to remotely manage claims. (adding/removing authorization, renaming claims, changing color, and unclaiming plots)\n\nIt also can be set up to sell claimed land for [[Currency]].\n\n\n{{Description|item=Real Estate Desk}}\n\n==Crafting==\n{{GetRecipes|item=Real Estate Desk}}\n\n[[Category: Objects]]"
                    }
                ]
            }
        }
    }
}