{"action":"created","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/517","labels_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/517/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/517/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/517/events","html_url":"https://github.com/SpongePowered/SpongeAPI/issues/517","id":64367247,"number":517,"title":"GameProfile custom component system","user":{"login":"KieronWiltshire","id":4332346,"avatar_url":"https://avatars.githubusercontent.com/u/4332346?v=3","gravatar_id":"","url":"https://api.github.com/users/KieronWiltshire","html_url":"https://github.com/KieronWiltshire","followers_url":"https://api.github.com/users/KieronWiltshire/followers","following_url":"https://api.github.com/users/KieronWiltshire/following{/other_user}","gists_url":"https://api.github.com/users/KieronWiltshire/gists{/gist_id}","starred_url":"https://api.github.com/users/KieronWiltshire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KieronWiltshire/subscriptions","organizations_url":"https://api.github.com/users/KieronWiltshire/orgs","repos_url":"https://api.github.com/users/KieronWiltshire/repos","events_url":"https://api.github.com/users/KieronWiltshire/events{/privacy}","received_events_url":"https://api.github.com/users/KieronWiltshire/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/input%20wanted","name":"input wanted","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-03-25T20:39:23Z","updated_at":"2015-03-25T22:50:54Z","closed_at":null,"body":"In Bukkit the Player object was really quite strict on what you could do, and you couldn't really customize it in any way, shape or form. There wasn't really any built-in methods to allow you to attach information to a user, so I decided to come up with a solution for Sponge.\r\n\r\nThe idea I came up with is the possibility to create custom components that you can attach to the GameProfile object so you can later retrieve the component when it is needed. The solution would be to attach it to the GameProfile object, an object which is specific to the Player.\r\n\r\nI believe the idea of allowing custom components allows for a lot of flexibility in practise as well as clean and easy to work with code.\r\n\r\nHere is how I could imagine the GameProfile handling the component system:\r\nhttps://gist.github.com/KieronWiltshire/a0fc8094fa3b5919601f\r\n\r\nHere is an example component that I created to maybe give you guys an idea of what a component could be used for:\r\nhttps://gist.github.com/KieronWiltshire/f1700bdb7776c68460ec\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/comments/86243621","html_url":"https://github.com/SpongePowered/SpongeAPI/issues/517#issuecomment-86243621","issue_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/517","id":86243621,"user":{"login":"modwizcode","id":369772,"avatar_url":"https://avatars.githubusercontent.com/u/369772?v=3","gravatar_id":"","url":"https://api.github.com/users/modwizcode","html_url":"https://github.com/modwizcode","followers_url":"https://api.github.com/users/modwizcode/followers","following_url":"https://api.github.com/users/modwizcode/following{/other_user}","gists_url":"https://api.github.com/users/modwizcode/gists{/gist_id}","starred_url":"https://api.github.com/users/modwizcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/modwizcode/subscriptions","organizations_url":"https://api.github.com/users/modwizcode/orgs","repos_url":"https://api.github.com/users/modwizcode/repos","events_url":"https://api.github.com/users/modwizcode/events{/privacy}","received_events_url":"https://api.github.com/users/modwizcode/received_events","type":"User","site_admin":false},"created_at":"2015-03-25T22:50:54Z","updated_at":"2015-03-25T22:50:54Z","body":"It seems clear you do not understand the data API. @gabizou did much of the\nwork with the data API, maybe they could provide an example of how you\nwould do this with the data API.\n"}}