{"action":"created","issue":{"url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/70","repository_url":"https://api.github.com/repos/pmmp/PocketMine-MP","labels_url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/70/labels{/name}","comments_url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/70/comments","events_url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/70/events","html_url":"https://github.com/pmmp/PocketMine-MP/pull/70","id":186257246,"number":70,"title":"Fixed bugs related to #24 such as getName() on null","user":{"login":"dktapps","id":14214667,"avatar_url":"https://avatars.githubusercontent.com/u/14214667?v=3","gravatar_id":"","url":"https://api.github.com/users/dktapps","html_url":"https://github.com/dktapps","followers_url":"https://api.github.com/users/dktapps/followers","following_url":"https://api.github.com/users/dktapps/following{/other_user}","gists_url":"https://api.github.com/users/dktapps/gists{/gist_id}","starred_url":"https://api.github.com/users/dktapps/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dktapps/subscriptions","organizations_url":"https://api.github.com/users/dktapps/orgs","repos_url":"https://api.github.com/users/dktapps/repos","events_url":"https://api.github.com/users/dktapps/events{/privacy}","received_events_url":"https://api.github.com/users/dktapps/received_events","type":"User","site_admin":false},"labels":[{"id":454785701,"url":"https://api.github.com/repos/pmmp/PocketMine-MP/labels/Category:%20Core","name":"Category: Core","color":"00aa55","default":false},{"id":454787583,"url":"https://api.github.com/repos/pmmp/PocketMine-MP/labels/PR:%20Bug%20Fix","name":"PR: Bug Fix","color":"bfdadc","default":false},{"id":454787972,"url":"https://api.github.com/repos/pmmp/PocketMine-MP/labels/PR:%20Contribution","name":"PR: Contribution","color":"bfdadc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-10-31T11:03:56Z","updated_at":"2016-11-06T12:46:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/pmmp/PocketMine-MP/pulls/70","html_url":"https://github.com/pmmp/PocketMine-MP/pull/70","diff_url":"https://github.com/pmmp/PocketMine-MP/pull/70.diff","patch_url":"https://github.com/pmmp/PocketMine-MP/pull/70.patch"},"body":"This pull request fixes the leak described in #24 and a very large number of bugs that resulted from the issue.\r\n\r\nDescription of the actual issue can be seen in #24.\r\n\r\nThis pull request adds a new type of Position, WeakPosition, which instead of holding a Level _reference_, holds a level _ID_ instead. When WeakPosition::getLevel() is called, a Level reference is returned from Server ondemand, or null if the level has been unloaded.\r\n\r\nWeakPosition is now used for player spawn positions, which was the primary cause of this bug. Now, instead of the famous crashes, the player will simply return to the server's default spawn point if the world in which the player's spawn point is set is not loaded.\r\n\r\n### Possible improvements\r\n- Use the level name instead of ID. This will allow spawnpoints to return to the world if it is reloaded. Using a Level ID is faster, but once the subject world is unloaded, the spawnpoint will never be re-validated until the server is restarted."},"comment":{"url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/comments/258678773","html_url":"https://github.com/pmmp/PocketMine-MP/pull/70#issuecomment-258678773","issue_url":"https://api.github.com/repos/pmmp/PocketMine-MP/issues/70","id":258678773,"user":{"login":"robske110","id":16020100,"avatar_url":"https://avatars.githubusercontent.com/u/16020100?v=3","gravatar_id":"","url":"https://api.github.com/users/robske110","html_url":"https://github.com/robske110","followers_url":"https://api.github.com/users/robske110/followers","following_url":"https://api.github.com/users/robske110/following{/other_user}","gists_url":"https://api.github.com/users/robske110/gists{/gist_id}","starred_url":"https://api.github.com/users/robske110/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robske110/subscriptions","organizations_url":"https://api.github.com/users/robske110/orgs","repos_url":"https://api.github.com/users/robske110/repos","events_url":"https://api.github.com/users/robske110/events{/privacy}","received_events_url":"https://api.github.com/users/robske110/received_events","type":"User","site_admin":false},"created_at":"2016-11-06T12:46:36Z","updated_at":"2016-11-06T12:46:36Z","body":"> And how about creating WeakLocation? (Simply location but extending WeakPosition)"}}
{"actor":{"display_login":"robske110"}}