{"action":"closed","number":1872,"pull_request":{"url":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872","id":47375290,"html_url":"https://github.com/micdoodle8/Galacticraft/pull/1872","diff_url":"https://github.com/micdoodle8/Galacticraft/pull/1872.diff","patch_url":"https://github.com/micdoodle8/Galacticraft/pull/1872.patch","issue_url":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/1872","number":1872,"state":"closed","locked":false,"title":"Add data field change tracking to reduce bandwidth usage","user":{"login":"sk89q","id":38949,"avatar_url":"https://avatars.githubusercontent.com/u/38949?v=3","gravatar_id":"","url":"https://api.github.com/users/sk89q","html_url":"https://github.com/sk89q","followers_url":"https://api.github.com/users/sk89q/followers","following_url":"https://api.github.com/users/sk89q/following{/other_user}","gists_url":"https://api.github.com/users/sk89q/gists{/gist_id}","starred_url":"https://api.github.com/users/sk89q/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sk89q/subscriptions","organizations_url":"https://api.github.com/users/sk89q/orgs","repos_url":"https://api.github.com/users/sk89q/repos","events_url":"https://api.github.com/users/sk89q/events{/privacy}","received_events_url":"https://api.github.com/users/sk89q/received_events","type":"User","site_admin":false},"body":"When we first tested GC and placed down some blocks 2 months ago, we were noticing excessive bandwidth usage (>5 mbit/s) and it was kicking some of us off due to overflow.\r\n\r\nHowever, I was unable to find any reports of the issue on the Internet.\r\n\r\nI traced our problem to some TEs that were presumably sending their data constantly to the client and I created the included patches. We applied them to our modpack and server and it seemed to have (mostly) abated our bandwidth usage problems for the past month and a half.\r\n\r\nThis PR makes some changes to EntityAdvanced and TileEntityAdvanced so that it keeps track of the previous values sent and only sends off a packet if there were changes detected. It would not reduce high bandwidth usage if data is changing often, but it reduces idle bandwidth usage (in theory).\r\n\r\nWith that in mind,\r\n\r\n1. I don't know if other people experience this problem, but the changes did fix things for us.\r\n2. I am not too familiar with GC, nor how its code is structured, so I don't know if this -- if the problem even exists -- would be the best approach to solving this issue.","created_at":"2015-10-11T20:59:05Z","updated_at":"2015-10-12T04:17:05Z","closed_at":"2015-10-12T04:17:05Z","merged_at":"2015-10-12T04:17:05Z","merge_commit_sha":"f1e892746c42140b44a2edc50e5ecbf620a90c4c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872/commits","review_comments_url":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872/comments","review_comment_url":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/comments{/number}","comments_url":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/1872/comments","statuses_url":"https://api.github.com/repos/micdoodle8/Galacticraft/statuses/bfbe5f44b4adc101d06fde79de826dd250212d8d","head":{"label":"SKCraft:data-change-tracking","ref":"data-change-tracking","sha":"bfbe5f44b4adc101d06fde79de826dd250212d8d","user":{"login":"SKCraft","id":1677045,"avatar_url":"https://avatars.githubusercontent.com/u/1677045?v=3","gravatar_id":"","url":"https://api.github.com/users/SKCraft","html_url":"https://github.com/SKCraft","followers_url":"https://api.github.com/users/SKCraft/followers","following_url":"https://api.github.com/users/SKCraft/following{/other_user}","gists_url":"https://api.github.com/users/SKCraft/gists{/gist_id}","starred_url":"https://api.github.com/users/SKCraft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SKCraft/subscriptions","organizations_url":"https://api.github.com/users/SKCraft/orgs","repos_url":"https://api.github.com/users/SKCraft/repos","events_url":"https://api.github.com/users/SKCraft/events{/privacy}","received_events_url":"https://api.github.com/users/SKCraft/received_events","type":"Organization","site_admin":false},"repo":{"id":42338533,"name":"Galacticraft","full_name":"SKCraft/Galacticraft","owner":{"login":"SKCraft","id":1677045,"avatar_url":"https://avatars.githubusercontent.com/u/1677045?v=3","gravatar_id":"","url":"https://api.github.com/users/SKCraft","html_url":"https://github.com/SKCraft","followers_url":"https://api.github.com/users/SKCraft/followers","following_url":"https://api.github.com/users/SKCraft/following{/other_user}","gists_url":"https://api.github.com/users/SKCraft/gists{/gist_id}","starred_url":"https://api.github.com/users/SKCraft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SKCraft/subscriptions","organizations_url":"https://api.github.com/users/SKCraft/orgs","repos_url":"https://api.github.com/users/SKCraft/repos","events_url":"https://api.github.com/users/SKCraft/events{/privacy}","received_events_url":"https://api.github.com/users/SKCraft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SKCraft/Galacticraft","description":"An advanced Space Dimension Mod for Minecraft","fork":true,"url":"https://api.github.com/repos/SKCraft/Galacticraft","forks_url":"https://api.github.com/repos/SKCraft/Galacticraft/forks","keys_url":"https://api.github.com/repos/SKCraft/Galacticraft/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SKCraft/Galacticraft/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SKCraft/Galacticraft/teams","hooks_url":"https://api.github.com/repos/SKCraft/Galacticraft/hooks","issue_events_url":"https://api.github.com/repos/SKCraft/Galacticraft/issues/events{/number}","events_url":"https://api.github.com/repos/SKCraft/Galacticraft/events","assignees_url":"https://api.github.com/repos/SKCraft/Galacticraft/assignees{/user}","branches_url":"https://api.github.com/repos/SKCraft/Galacticraft/branches{/branch}","tags_url":"https://api.github.com/repos/SKCraft/Galacticraft/tags","blobs_url":"https://api.github.com/repos/SKCraft/Galacticraft/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SKCraft/Galacticraft/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SKCraft/Galacticraft/git/refs{/sha}","trees_url":"https://api.github.com/repos/SKCraft/Galacticraft/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SKCraft/Galacticraft/statuses/{sha}","languages_url":"https://api.github.com/repos/SKCraft/Galacticraft/languages","stargazers_url":"https://api.github.com/repos/SKCraft/Galacticraft/stargazers","contributors_url":"https://api.github.com/repos/SKCraft/Galacticraft/contributors","subscribers_url":"https://api.github.com/repos/SKCraft/Galacticraft/subscribers","subscription_url":"https://api.github.com/repos/SKCraft/Galacticraft/subscription","commits_url":"https://api.github.com/repos/SKCraft/Galacticraft/commits{/sha}","git_commits_url":"https://api.github.com/repos/SKCraft/Galacticraft/git/commits{/sha}","comments_url":"https://api.github.com/repos/SKCraft/Galacticraft/comments{/number}","issue_comment_url":"https://api.github.com/repos/SKCraft/Galacticraft/issues/comments{/number}","contents_url":"https://api.github.com/repos/SKCraft/Galacticraft/contents/{+path}","compare_url":"https://api.github.com/repos/SKCraft/Galacticraft/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SKCraft/Galacticraft/merges","archive_url":"https://api.github.com/repos/SKCraft/Galacticraft/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SKCraft/Galacticraft/downloads","issues_url":"https://api.github.com/repos/SKCraft/Galacticraft/issues{/number}","pulls_url":"https://api.github.com/repos/SKCraft/Galacticraft/pulls{/number}","milestones_url":"https://api.github.com/repos/SKCraft/Galacticraft/milestones{/number}","notifications_url":"https://api.github.com/repos/SKCraft/Galacticraft/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SKCraft/Galacticraft/labels{/name}","releases_url":"https://api.github.com/repos/SKCraft/Galacticraft/releases{/id}","created_at":"2015-09-12T00:32:55Z","updated_at":"2015-09-12T00:33:00Z","pushed_at":"2015-10-11T20:47:35Z","git_url":"git://github.com/SKCraft/Galacticraft.git","ssh_url":"git@github.com:SKCraft/Galacticraft.git","clone_url":"https://github.com/SKCraft/Galacticraft.git","svn_url":"https://github.com/SKCraft/Galacticraft","homepage":null,"size":67164,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"alice-1.7-refresh"}},"base":{"label":"micdoodle8:master","ref":"master","sha":"47d1df6bb531654179201e7caa16a4a1586839ac","user":{"login":"micdoodle8","id":1098060,"avatar_url":"https://avatars.githubusercontent.com/u/1098060?v=3","gravatar_id":"","url":"https://api.github.com/users/micdoodle8","html_url":"https://github.com/micdoodle8","followers_url":"https://api.github.com/users/micdoodle8/followers","following_url":"https://api.github.com/users/micdoodle8/following{/other_user}","gists_url":"https://api.github.com/users/micdoodle8/gists{/gist_id}","starred_url":"https://api.github.com/users/micdoodle8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micdoodle8/subscriptions","organizations_url":"https://api.github.com/users/micdoodle8/orgs","repos_url":"https://api.github.com/users/micdoodle8/repos","events_url":"https://api.github.com/users/micdoodle8/events{/privacy}","received_events_url":"https://api.github.com/users/micdoodle8/received_events","type":"User","site_admin":false},"repo":{"id":6039425,"name":"Galacticraft","full_name":"micdoodle8/Galacticraft","owner":{"login":"micdoodle8","id":1098060,"avatar_url":"https://avatars.githubusercontent.com/u/1098060?v=3","gravatar_id":"","url":"https://api.github.com/users/micdoodle8","html_url":"https://github.com/micdoodle8","followers_url":"https://api.github.com/users/micdoodle8/followers","following_url":"https://api.github.com/users/micdoodle8/following{/other_user}","gists_url":"https://api.github.com/users/micdoodle8/gists{/gist_id}","starred_url":"https://api.github.com/users/micdoodle8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micdoodle8/subscriptions","organizations_url":"https://api.github.com/users/micdoodle8/orgs","repos_url":"https://api.github.com/users/micdoodle8/repos","events_url":"https://api.github.com/users/micdoodle8/events{/privacy}","received_events_url":"https://api.github.com/users/micdoodle8/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/micdoodle8/Galacticraft","description":"An advanced Space Dimension Mod for Minecraft","fork":false,"url":"https://api.github.com/repos/micdoodle8/Galacticraft","forks_url":"https://api.github.com/repos/micdoodle8/Galacticraft/forks","keys_url":"https://api.github.com/repos/micdoodle8/Galacticraft/keys{/key_id}","collaborators_url":"https://api.github.com/repos/micdoodle8/Galacticraft/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/micdoodle8/Galacticraft/teams","hooks_url":"https://api.github.com/repos/micdoodle8/Galacticraft/hooks","issue_events_url":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/events{/number}","events_url":"https://api.github.com/repos/micdoodle8/Galacticraft/events","assignees_url":"https://api.github.com/repos/micdoodle8/Galacticraft/assignees{/user}","branches_url":"https://api.github.com/repos/micdoodle8/Galacticraft/branches{/branch}","tags_url":"https://api.github.com/repos/micdoodle8/Galacticraft/tags","blobs_url":"https://api.github.com/repos/micdoodle8/Galacticraft/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/micdoodle8/Galacticraft/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/micdoodle8/Galacticraft/git/refs{/sha}","trees_url":"https://api.github.com/repos/micdoodle8/Galacticraft/git/trees{/sha}","statuses_url":"https://api.github.com/repos/micdoodle8/Galacticraft/statuses/{sha}","languages_url":"https://api.github.com/repos/micdoodle8/Galacticraft/languages","stargazers_url":"https://api.github.com/repos/micdoodle8/Galacticraft/stargazers","contributors_url":"https://api.github.com/repos/micdoodle8/Galacticraft/contributors","subscribers_url":"https://api.github.com/repos/micdoodle8/Galacticraft/subscribers","subscription_url":"https://api.github.com/repos/micdoodle8/Galacticraft/subscription","commits_url":"https://api.github.com/repos/micdoodle8/Galacticraft/commits{/sha}","git_commits_url":"https://api.github.com/repos/micdoodle8/Galacticraft/git/commits{/sha}","comments_url":"https://api.github.com/repos/micdoodle8/Galacticraft/comments{/number}","issue_comment_url":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/comments{/number}","contents_url":"https://api.github.com/repos/micdoodle8/Galacticraft/contents/{+path}","compare_url":"https://api.github.com/repos/micdoodle8/Galacticraft/compare/{base}...{head}","merges_url":"https://api.github.com/repos/micdoodle8/Galacticraft/merges","archive_url":"https://api.github.com/repos/micdoodle8/Galacticraft/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/micdoodle8/Galacticraft/downloads","issues_url":"https://api.github.com/repos/micdoodle8/Galacticraft/issues{/number}","pulls_url":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls{/number}","milestones_url":"https://api.github.com/repos/micdoodle8/Galacticraft/milestones{/number}","notifications_url":"https://api.github.com/repos/micdoodle8/Galacticraft/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/micdoodle8/Galacticraft/labels{/name}","releases_url":"https://api.github.com/repos/micdoodle8/Galacticraft/releases{/id}","created_at":"2012-10-02T02:48:14Z","updated_at":"2015-10-06T05:37:59Z","pushed_at":"2015-10-12T04:17:05Z","git_url":"git://github.com/micdoodle8/Galacticraft.git","ssh_url":"git@github.com:micdoodle8/Galacticraft.git","clone_url":"https://github.com/micdoodle8/Galacticraft.git","svn_url":"https://github.com/micdoodle8/Galacticraft","homepage":null,"size":82263,"stargazers_count":184,"watchers_count":184,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":173,"mirror_url":null,"open_issues_count":96,"forks":173,"open_issues":96,"watchers":184,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872"},"html":{"href":"https://github.com/micdoodle8/Galacticraft/pull/1872"},"issue":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/1872"},"comments":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/issues/1872/comments"},"review_comments":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872/comments"},"review_comment":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/pulls/1872/commits"},"statuses":{"href":"https://api.github.com/repos/micdoodle8/Galacticraft/statuses/bfbe5f44b4adc101d06fde79de826dd250212d8d"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"micdoodle8","id":1098060,"avatar_url":"https://avatars.githubusercontent.com/u/1098060?v=3","gravatar_id":"","url":"https://api.github.com/users/micdoodle8","html_url":"https://github.com/micdoodle8","followers_url":"https://api.github.com/users/micdoodle8/followers","following_url":"https://api.github.com/users/micdoodle8/following{/other_user}","gists_url":"https://api.github.com/users/micdoodle8/gists{/gist_id}","starred_url":"https://api.github.com/users/micdoodle8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micdoodle8/subscriptions","organizations_url":"https://api.github.com/users/micdoodle8/orgs","repos_url":"https://api.github.com/users/micdoodle8/repos","events_url":"https://api.github.com/users/micdoodle8/events{/privacy}","received_events_url":"https://api.github.com/users/micdoodle8/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":1,"additions":164,"deletions":8,"changed_files":4}}