{"action":"created","issue":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2618","repository_url":"https://api.github.com/repos/MovingBlocks/Terasology","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2618/labels{/name}","comments_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2618/comments","events_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2618/events","html_url":"https://github.com/MovingBlocks/Terasology/pull/2618","id":190858339,"number":2618,"title":"Add Internet","user":{"login":"SoniEx2","id":1779619,"avatar_url":"https://avatars.githubusercontent.com/u/1779619?v=3","gravatar_id":"","url":"https://api.github.com/users/SoniEx2","html_url":"https://github.com/SoniEx2","followers_url":"https://api.github.com/users/SoniEx2/followers","following_url":"https://api.github.com/users/SoniEx2/following{/other_user}","gists_url":"https://api.github.com/users/SoniEx2/gists{/gist_id}","starred_url":"https://api.github.com/users/SoniEx2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SoniEx2/subscriptions","organizations_url":"https://api.github.com/users/SoniEx2/orgs","repos_url":"https://api.github.com/users/SoniEx2/repos","events_url":"https://api.github.com/users/SoniEx2/events{/privacy}","received_events_url":"https://api.github.com/users/SoniEx2/received_events","type":"User","site_admin":false},"labels":[{"id":474073518,"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-11-21T22:47:46Z","updated_at":"2016-11-22T13:33:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/pulls/2618","html_url":"https://github.com/MovingBlocks/Terasology/pull/2618","diff_url":"https://github.com/MovingBlocks/Terasology/pull/2618.diff","patch_url":"https://github.com/MovingBlocks/Terasology/pull/2618.patch"},"body":"<!-- Thanks for submitting a pull request for Terasology! :-)\r\nPlease fill in some brief details below about the PR.\r\nIf it contains source code please make sure to run Checkstyle on it first\r\nIf you add unit tests we'll love you forever! -->\r\n\r\n### Contains\r\n\r\nAdds Internet. Use\r\n\r\n```java\r\n@In\r\nInternetManager internet;\r\n```\r\n\r\nIn a System to get access to the Internet. It has TCP.\r\n\r\n### How to test\r\n\r\nThis is a badly written IRC client that just barely works: https://gist.github.com/SoniEx2/9845b9cd44a879bb517961a52ca4fc68 (warning: bad code, not thread-safe, may blow up)\r\n\r\n### Outstanding before merging\r\n\r\n- [ ] Separate whitelists (while also having a global whitelist that everyone can use).\r\n- [ ] Whitelists need to be user-configurable somehow.\r\n- [ ] Move DynamicInstanceProvider to a separate PR.\r\n- [ ] Disallow internet access on the client.\r\n\r\nIt is *intentionally allowed* to hand your InternetManager (and thus your whitelist) to another module. After all, it's trivial to wrap InternetManager for cross-module use, with or without being able to share InternetManager itself."},"comment":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/comments/262241314","html_url":"https://github.com/MovingBlocks/Terasology/pull/2618#issuecomment-262241314","issue_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2618","id":262241314,"user":{"login":"SoniEx2","id":1779619,"avatar_url":"https://avatars.githubusercontent.com/u/1779619?v=3","gravatar_id":"","url":"https://api.github.com/users/SoniEx2","html_url":"https://github.com/SoniEx2","followers_url":"https://api.github.com/users/SoniEx2/followers","following_url":"https://api.github.com/users/SoniEx2/following{/other_user}","gists_url":"https://api.github.com/users/SoniEx2/gists{/gist_id}","starred_url":"https://api.github.com/users/SoniEx2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SoniEx2/subscriptions","organizations_url":"https://api.github.com/users/SoniEx2/orgs","repos_url":"https://api.github.com/users/SoniEx2/repos","events_url":"https://api.github.com/users/SoniEx2/events{/privacy}","received_events_url":"https://api.github.com/users/SoniEx2/received_events","type":"User","site_admin":false},"created_at":"2016-11-22T13:33:18Z","updated_at":"2016-11-22T13:33:18Z","body":"@skaldarnar You're meant to have a provider for the client and a provider for the (internal/integrated) server (in the same JVM), but that's not fully implemented yet (part of another issue). And in practice there really is only one instance of the provider: the `private final Map<Name, InternetManager> permCache;`.\r\n\r\nI designed this to be future-proof in a way compatible with the current implementation."}}
{"actor":{"display_login":"SoniEx2"}}