{"action":"created","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/371","labels_url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/371/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/371/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/371/events","html_url":"https://github.com/SpongePowered/SpongeDocs/issues/371","id":115773207,"number":371,"title":"Documentation example request","user":{"login":"theboomer","id":3393225,"avatar_url":"https://avatars.githubusercontent.com/u/3393225?v=3","gravatar_id":"","url":"https://api.github.com/users/theboomer","html_url":"https://github.com/theboomer","followers_url":"https://api.github.com/users/theboomer/followers","following_url":"https://api.github.com/users/theboomer/following{/other_user}","gists_url":"https://api.github.com/users/theboomer/gists{/gist_id}","starred_url":"https://api.github.com/users/theboomer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theboomer/subscriptions","organizations_url":"https://api.github.com/users/theboomer/orgs","repos_url":"https://api.github.com/users/theboomer/repos","events_url":"https://api.github.com/users/theboomer/events{/privacy}","received_events_url":"https://api.github.com/users/theboomer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-11-09T00:42:46Z","updated_at":"2015-11-09T07:27:10Z","closed_at":null,"body":"If requests may infact be made...\r\n\r\ngabizou and the others are very good at helping with dumb questions, or questions that need some additional information to move forward in the right direction, but, as their time is also very limited it becomes cumbersome and undesireable to keep going back for 'please clarify that part' explanations, yet, often when a good, solid working n-line code example is given and able to be inspected, the ah-hah breaks through, and opens the door on clarity and understanding finally, allowing exporation, changes, and basically having a prototype in hands to dismantle and put together.\r\nSomething permeating the forum pages for ages has been custom data storage on a tile or entity, but its always rather unclear (in past due to due repeated changes to things altering whatever was written as 'you will need to do..\" primarily).  The notion is still unclear when its summarized with a handwave 'you need to blah with your custom data class and blah custom thing then blah an immutable blah then blah mutable version blah and that is all you need.\"\r\n\r\nI say a handwave because its not obvious to anyone not tuned-in to the thought processes of it, what those 'you supply a custom thing' and 'provide your special immutable handler' encompass - they could be as simple as a way of describing \"you do Object x = yourTileObject.getSomething()\" (fanciful ways of saying 'make an object variable that represents the return from ..\" and viola, you have the 'custom' immutable something for it, then and \"then do yourTileObject.setBlah(x)\" is the \"provide your special immutable handler\"....\r\nOR it could be more involved (and likely is) in that it means \"to store a string and an integer as custom data, you need to make a new class that has a string and integer in it, and the following 12 lines of boilerplate code required in all such new classes; then, you need to make a new class that extends that class and impliments XYZ , and has the following 12 boilerplate lines of code plus any additional getter/setters that you may need, then you use a game.GetRegistry().getsomebuilderthing(yournewclassname.class) and set the x and y values a,d viola, you now have your custom data system and can simply pass it in and get back the data with these following three lines \"\r\n\r\nLike the concept of making custom events being more than ' you make a class, put what you want in it, and that wiill work' it requires implmenting and extending certain base classes, including a bare-mininum of special methods and parameters in order to work with the system as a true event to pick up (Bukkit examples, no idea how sponge is similar or different, concept is likely similar, but way different pattern of code required)\r\n\r\nThus the request is for a walk-thru or sample working codes on what the process involves, what actual steps are required , what must those special things look like if new special classes must be made to be compatible with the infrastructure, with a working example to disect, practise with and then go \"ah hah!\"\r\n\r\nThank you.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/comments/154979525","html_url":"https://github.com/SpongePowered/SpongeDocs/issues/371#issuecomment-154979525","issue_url":"https://api.github.com/repos/SpongePowered/SpongeDocs/issues/371","id":154979525,"user":{"login":"Inscrutable","id":1009532,"avatar_url":"https://avatars.githubusercontent.com/u/1009532?v=3","gravatar_id":"","url":"https://api.github.com/users/Inscrutable","html_url":"https://github.com/Inscrutable","followers_url":"https://api.github.com/users/Inscrutable/followers","following_url":"https://api.github.com/users/Inscrutable/following{/other_user}","gists_url":"https://api.github.com/users/Inscrutable/gists{/gist_id}","starred_url":"https://api.github.com/users/Inscrutable/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Inscrutable/subscriptions","organizations_url":"https://api.github.com/users/Inscrutable/orgs","repos_url":"https://api.github.com/users/Inscrutable/repos","events_url":"https://api.github.com/users/Inscrutable/events{/privacy}","received_events_url":"https://api.github.com/users/Inscrutable/received_events","type":"User","site_admin":false},"created_at":"2015-11-09T07:27:10Z","updated_at":"2015-11-09T07:27:10Z","body":"There are detailed code examples in a number of sections of the Docs, e.g. the Data API pages, with explanations around each. Is this the sort of thing you are asking for? Not every page has such lavish detail, because it takes time, talent, and dedication to get it done to a high standard.\r\n\r\nIf there are specific pages you feel need a more thorough treatment, or you want to propose new ones, could you offer some concrete examples?\r\n\r\nWhilst I can understand your concern, and desire for more explanatory code examples, those who know it best are still hard at work getting Sponge ready for Beta. That has to take priority.\r\nWe are always looking for more contributors, so if you are up to the challenge, pick a topic and have a try at walking through it. Feel free to work up a Pull Request. "}}