{"action":"closed","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/1139","repository_url":"https://api.github.com/repos/SpongePowered/SpongeAPI","labels_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/1139/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/1139/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/1139/events","html_url":"https://github.com/SpongePowered/SpongeAPI/issues/1139","id":140568149,"number":1139,"title":"[Discussion] DataTransactionResult and CompletableFuture","user":{"login":"windy1","id":755713,"avatar_url":"https://avatars.githubusercontent.com/u/755713?v=3","gravatar_id":"","url":"https://api.github.com/users/windy1","html_url":"https://github.com/windy1","followers_url":"https://api.github.com/users/windy1/followers","following_url":"https://api.github.com/users/windy1/following{/other_user}","gists_url":"https://api.github.com/users/windy1/gists{/gist_id}","starred_url":"https://api.github.com/users/windy1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/windy1/subscriptions","organizations_url":"https://api.github.com/users/windy1/orgs","repos_url":"https://api.github.com/users/windy1/repos","events_url":"https://api.github.com/users/windy1/events{/privacy}","received_events_url":"https://api.github.com/users/windy1/received_events","type":"User","site_admin":false},"labels":[{"id":196907488,"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/data","name":"data","color":"10E7E8","default":false},{"id":128826905,"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/input%20wanted","name":"input wanted","color":"fbca04","default":false}],"state":"closed","locked":false,"assignee":{"login":"gabizou","id":1203877,"avatar_url":"https://avatars.githubusercontent.com/u/1203877?v=3","gravatar_id":"","url":"https://api.github.com/users/gabizou","html_url":"https://github.com/gabizou","followers_url":"https://api.github.com/users/gabizou/followers","following_url":"https://api.github.com/users/gabizou/following{/other_user}","gists_url":"https://api.github.com/users/gabizou/gists{/gist_id}","starred_url":"https://api.github.com/users/gabizou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabizou/subscriptions","organizations_url":"https://api.github.com/users/gabizou/orgs","repos_url":"https://api.github.com/users/gabizou/repos","events_url":"https://api.github.com/users/gabizou/events{/privacy}","received_events_url":"https://api.github.com/users/gabizou/received_events","type":"User","site_admin":false},"assignees":[{"login":"gabizou","id":1203877,"avatar_url":"https://avatars.githubusercontent.com/u/1203877?v=3","gravatar_id":"","url":"https://api.github.com/users/gabizou","html_url":"https://github.com/gabizou","followers_url":"https://api.github.com/users/gabizou/followers","following_url":"https://api.github.com/users/gabizou/following{/other_user}","gists_url":"https://api.github.com/users/gabizou/gists{/gist_id}","starred_url":"https://api.github.com/users/gabizou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabizou/subscriptions","organizations_url":"https://api.github.com/users/gabizou/orgs","repos_url":"https://api.github.com/users/gabizou/repos","events_url":"https://api.github.com/users/gabizou/events{/privacy}","received_events_url":"https://api.github.com/users/gabizou/received_events","type":"User","site_admin":false}],"milestone":null,"comments":5,"created_at":"2016-03-14T03:50:24Z","updated_at":"2016-11-25T16:59:50Z","closed_at":"2016-11-25T16:59:50Z","body":"So, there might be instances, and are instances, where the result of a data transaction ought not to be available immediately. One example of this is with skulls. We should be updating the GameProfile of a skull asynchronously whenever it is set or removed but that is not currently the case. (My latest commit regarding skulls makes updating async for updating from within the base game). I would like to propose that we wrap DataTransactionResult in a CompletableFuture in almost, if not all, methods that return a DataTransactionResult or at any other data processor mutators. This will allow for asynchronous data manipulation.\n\nThis would also be a great boon to possible data processors that perform I/O operations.\n"}}
{"actor":{"display_login":"windy1"}}