{"action":"created","comment":{"url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments/67264148","id":67264148,"diff_hunk":"@@ -25,6 +25,86 @@ What is `@Mod`?\n \n This is an annotation indicating to the Forge Mod Loader that the class is a Mod entry point. It contains various metadata about the mod. It also designates the class that will receive `@EventHandler` events. More information can be found at... (Coming Soon)\n \n+All components of @Mod() are written inside the parantheses and chained together. There's typically only one @Mod in your mod as a whole, sitting on top of your entry class.\n+\n+Components:\n+\n+`modid` [Required]\n+This identifies your mod uniquely to Forge and should probably be the first thing you enter. It's only used internally, but can be seen by users who dig around. Other mods also require this ID if they want to find each other (APIs for example).\n+If you want to know more about annotations in general you can check out [Oracle's docs](https://docs.oracle.com/javase/tutorial/java/annotations/index.html) on it.\n+\n+Example: `@Mod(modid=\"examplemod\")`\n+\n+`name` [Required]\n+This is the public name of your mod, as the user sees it.\n+\n+Example: `@Mod(modid=\"examplemod\", name=\"Mad Mod For Kool Kids\")`\n+\n+`version` [Required]\n+This is the version of your mod and gets both publically displayed and internally used to detect version mismatches.\n+There is no formal standard to be upkept here, but it's generally a good idea to have some sort of structure. Even if it's something as simple as a single number that increases every time you update your mod.\n+Some more info about that can be found in the article about [versioning](https://mcforge.readthedocs.io/en/latest/conventions/versioning/).\n+\n+Example: `@Mod(modid=\"examplemod\", name=\"Mad Mod For Kool Kids\" version=\"1.radical\")`\n+\n+`acceptableRemoteVersions` [Optional]\n+This lets Forge know what Client-side versions your mod accepts when run on a server. The wildcard * (a star) means that your mod is fine with ANY version on the other end, even nothing at all. You can use this for Server-side only mods.\n+[TODO: Someone add here how the versions can be structured. I THINK you can set minimum/maximum versions?]\n+\n+Example: [TODO]\n+\n+`canBeDeactivated` [Optional]\n+This lets Forge know whether or not your mod can be safely turned off/on during gameplay. There's a menu option for enabling/disabling mods in the main menu, which uses this. Unlike most other annotation options this one takes a boolean instead of a string, so it's without quotes.\n+Beware: This should NEVER be true for mods that add things to the game, like items or blocks. Things will go sideways if that happens. Some things cannot be taken back.\n+Of note: This does not appear to be functional at the moment. So you can safely ignore it for now.\n+\n+Example: `@Mod(canBeDeactivated=true)`\n+\n+`clientSideOnly` [Optional]\n+This prevents the mod from being loaded on the server at all, no matter what. \n+\n+Example: `@Mod(clientSideOnly=true)`\n+\n+`serverSideOnly` [Optional]\n+The opposite of the option above. This prevents the mod from being loaded on client-side. \n+Beware: This also includes the internal server in singleplayer.\n+What sides are and what their deal is can be read up on via the article about [sides](https://mcforge.readthedocs.io/en/latest/concepts/sides/).\n+\n+Example: `@Mod(serverSideOnly=true)`\n+\n+Of special note: If clientSideOnly and serverSideOnly are both set the game will crash, no questions asked.\n+\n+`dependencies` [Optional]\n+This defines what other mods yours depends on. Possibly also the reverse. Multiple entries can be made here, separated by a semicolon.\n+\n+There are four key words you can use for this:\n+`before` - Loaded before the specified mod-\n+`after` - Loaded after the specified mod-\n+`required-after` - Loaded after the specified mod, which **has** to be there.\n+`required-before` - Loaded before the specified mod, which **has** to be there.\n+\n+Using these keywords you can establish some basic ordering for your mod, in the grand scheme of things.\n+\n+[TODO: Version ranges seem to be a thing as well. How do?]","path":"docs/gettingstarted/structuring.md","position":64,"original_position":64,"commit_id":"9bff39977e9435b62798cc35f8f6b7be3c0613ae","original_commit_id":"9bff39977e9435b62798cc35f8f6b7be3c0613ae","user":{"login":"williewillus","id":2015032,"avatar_url":"https://avatars.githubusercontent.com/u/2015032?v=3","gravatar_id":"","url":"https://api.github.com/users/williewillus","html_url":"https://github.com/williewillus","followers_url":"https://api.github.com/users/williewillus/followers","following_url":"https://api.github.com/users/williewillus/following{/other_user}","gists_url":"https://api.github.com/users/williewillus/gists{/gist_id}","starred_url":"https://api.github.com/users/williewillus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/williewillus/subscriptions","organizations_url":"https://api.github.com/users/williewillus/orgs","repos_url":"https://api.github.com/users/williewillus/repos","events_url":"https://api.github.com/users/williewillus/events{/privacy}","received_events_url":"https://api.github.com/users/williewillus/received_events","type":"User","site_admin":false},"body":"MODID@[min,max]\r\n\r\nFollows standard mathematical notation - [ and ] describe inclusive range, () describe exclusive range.\r\nmin or max (but not both) can be omitted for an unbounded version in that direction. For example \"[1.9,)\" matches all 1.9+ (but that's bad please don't do that)\r\n","created_at":"2016-06-15T23:25:53Z","updated_at":"2016-06-15T23:25:53Z","html_url":"https://github.com/MinecraftForge/Documentation/pull/46#discussion_r67264148","pull_request_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46","_links":{"self":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments/67264148"},"html":{"href":"https://github.com/MinecraftForge/Documentation/pull/46#discussion_r67264148"},"pull_request":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46"}}},"pull_request":{"url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46","id":71988671,"html_url":"https://github.com/MinecraftForge/Documentation/pull/46","diff_url":"https://github.com/MinecraftForge/Documentation/pull/46.diff","patch_url":"https://github.com/MinecraftForge/Documentation/pull/46.patch","issue_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/46","number":46,"state":"open","locked":false,"title":"Added some info about @Mod","user":{"login":"Domochevsky","id":6913626,"avatar_url":"https://avatars.githubusercontent.com/u/6913626?v=3","gravatar_id":"","url":"https://api.github.com/users/Domochevsky","html_url":"https://github.com/Domochevsky","followers_url":"https://api.github.com/users/Domochevsky/followers","following_url":"https://api.github.com/users/Domochevsky/following{/other_user}","gists_url":"https://api.github.com/users/Domochevsky/gists{/gist_id}","starred_url":"https://api.github.com/users/Domochevsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Domochevsky/subscriptions","organizations_url":"https://api.github.com/users/Domochevsky/orgs","repos_url":"https://api.github.com/users/Domochevsky/repos","events_url":"https://api.github.com/users/Domochevsky/events{/privacy}","received_events_url":"https://api.github.com/users/Domochevsky/received_events","type":"User","site_admin":false},"body":"Ideally more info can be added here, since I have not found a good source for most of these. I think some shenanigans can be done with \"version\" as well, defining wildcards and ranges of acceptable versions.","created_at":"2016-05-31T10:01:20Z","updated_at":"2016-06-15T23:25:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"96f295102007c7657b63661e5e9bed5ac0e00687","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46/commits","review_comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46/comments","review_comment_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/46/comments","statuses_url":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/9bff39977e9435b62798cc35f8f6b7be3c0613ae","head":{"label":"Domochevsky:patch-1","ref":"patch-1","sha":"9bff39977e9435b62798cc35f8f6b7be3c0613ae","user":{"login":"Domochevsky","id":6913626,"avatar_url":"https://avatars.githubusercontent.com/u/6913626?v=3","gravatar_id":"","url":"https://api.github.com/users/Domochevsky","html_url":"https://github.com/Domochevsky","followers_url":"https://api.github.com/users/Domochevsky/followers","following_url":"https://api.github.com/users/Domochevsky/following{/other_user}","gists_url":"https://api.github.com/users/Domochevsky/gists{/gist_id}","starred_url":"https://api.github.com/users/Domochevsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Domochevsky/subscriptions","organizations_url":"https://api.github.com/users/Domochevsky/orgs","repos_url":"https://api.github.com/users/Domochevsky/repos","events_url":"https://api.github.com/users/Domochevsky/events{/privacy}","received_events_url":"https://api.github.com/users/Domochevsky/received_events","type":"User","site_admin":false},"repo":{"id":60077023,"name":"Documentation","full_name":"Domochevsky/Documentation","owner":{"login":"Domochevsky","id":6913626,"avatar_url":"https://avatars.githubusercontent.com/u/6913626?v=3","gravatar_id":"","url":"https://api.github.com/users/Domochevsky","html_url":"https://github.com/Domochevsky","followers_url":"https://api.github.com/users/Domochevsky/followers","following_url":"https://api.github.com/users/Domochevsky/following{/other_user}","gists_url":"https://api.github.com/users/Domochevsky/gists{/gist_id}","starred_url":"https://api.github.com/users/Domochevsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Domochevsky/subscriptions","organizations_url":"https://api.github.com/users/Domochevsky/orgs","repos_url":"https://api.github.com/users/Domochevsky/repos","events_url":"https://api.github.com/users/Domochevsky/events{/privacy}","received_events_url":"https://api.github.com/users/Domochevsky/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Domochevsky/Documentation","description":"Read the docs MinecraftForge documentation","fork":true,"url":"https://api.github.com/repos/Domochevsky/Documentation","forks_url":"https://api.github.com/repos/Domochevsky/Documentation/forks","keys_url":"https://api.github.com/repos/Domochevsky/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Domochevsky/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Domochevsky/Documentation/teams","hooks_url":"https://api.github.com/repos/Domochevsky/Documentation/hooks","issue_events_url":"https://api.github.com/repos/Domochevsky/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/Domochevsky/Documentation/events","assignees_url":"https://api.github.com/repos/Domochevsky/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/Domochevsky/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/Domochevsky/Documentation/tags","blobs_url":"https://api.github.com/repos/Domochevsky/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Domochevsky/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Domochevsky/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/Domochevsky/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Domochevsky/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/Domochevsky/Documentation/languages","stargazers_url":"https://api.github.com/repos/Domochevsky/Documentation/stargazers","contributors_url":"https://api.github.com/repos/Domochevsky/Documentation/contributors","subscribers_url":"https://api.github.com/repos/Domochevsky/Documentation/subscribers","subscription_url":"https://api.github.com/repos/Domochevsky/Documentation/subscription","commits_url":"https://api.github.com/repos/Domochevsky/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/Domochevsky/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/Domochevsky/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/Domochevsky/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/Domochevsky/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/Domochevsky/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Domochevsky/Documentation/merges","archive_url":"https://api.github.com/repos/Domochevsky/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Domochevsky/Documentation/downloads","issues_url":"https://api.github.com/repos/Domochevsky/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/Domochevsky/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/Domochevsky/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/Domochevsky/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Domochevsky/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/Domochevsky/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/Domochevsky/Documentation/deployments","created_at":"2016-05-31T09:40:12Z","updated_at":"2016-05-22T04:37:43Z","pushed_at":"2016-06-02T14:07:35Z","git_url":"git://github.com/Domochevsky/Documentation.git","ssh_url":"git@github.com:Domochevsky/Documentation.git","clone_url":"https://github.com/Domochevsky/Documentation.git","svn_url":"https://github.com/Domochevsky/Documentation","homepage":null,"size":233,"stargazers_count":0,"watchers_count":0,"language":null,"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":"master"}},"base":{"label":"MinecraftForge:master","ref":"master","sha":"3a04060f40b80f45f21e8500bd871c50cf44a1aa","user":{"login":"MinecraftForge","id":1390178,"avatar_url":"https://avatars.githubusercontent.com/u/1390178?v=3","gravatar_id":"","url":"https://api.github.com/users/MinecraftForge","html_url":"https://github.com/MinecraftForge","followers_url":"https://api.github.com/users/MinecraftForge/followers","following_url":"https://api.github.com/users/MinecraftForge/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftForge/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftForge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftForge/subscriptions","organizations_url":"https://api.github.com/users/MinecraftForge/orgs","repos_url":"https://api.github.com/users/MinecraftForge/repos","events_url":"https://api.github.com/users/MinecraftForge/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftForge/received_events","type":"Organization","site_admin":false},"repo":{"id":34235955,"name":"Documentation","full_name":"MinecraftForge/Documentation","owner":{"login":"MinecraftForge","id":1390178,"avatar_url":"https://avatars.githubusercontent.com/u/1390178?v=3","gravatar_id":"","url":"https://api.github.com/users/MinecraftForge","html_url":"https://github.com/MinecraftForge","followers_url":"https://api.github.com/users/MinecraftForge/followers","following_url":"https://api.github.com/users/MinecraftForge/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftForge/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftForge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftForge/subscriptions","organizations_url":"https://api.github.com/users/MinecraftForge/orgs","repos_url":"https://api.github.com/users/MinecraftForge/repos","events_url":"https://api.github.com/users/MinecraftForge/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftForge/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MinecraftForge/Documentation","description":"Read the docs MinecraftForge documentation","fork":false,"url":"https://api.github.com/repos/MinecraftForge/Documentation","forks_url":"https://api.github.com/repos/MinecraftForge/Documentation/forks","keys_url":"https://api.github.com/repos/MinecraftForge/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MinecraftForge/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MinecraftForge/Documentation/teams","hooks_url":"https://api.github.com/repos/MinecraftForge/Documentation/hooks","issue_events_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/MinecraftForge/Documentation/events","assignees_url":"https://api.github.com/repos/MinecraftForge/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/MinecraftForge/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/MinecraftForge/Documentation/tags","blobs_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/MinecraftForge/Documentation/languages","stargazers_url":"https://api.github.com/repos/MinecraftForge/Documentation/stargazers","contributors_url":"https://api.github.com/repos/MinecraftForge/Documentation/contributors","subscribers_url":"https://api.github.com/repos/MinecraftForge/Documentation/subscribers","subscription_url":"https://api.github.com/repos/MinecraftForge/Documentation/subscription","commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/MinecraftForge/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/MinecraftForge/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MinecraftForge/Documentation/merges","archive_url":"https://api.github.com/repos/MinecraftForge/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MinecraftForge/Documentation/downloads","issues_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/MinecraftForge/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/MinecraftForge/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MinecraftForge/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/MinecraftForge/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/MinecraftForge/Documentation/deployments","created_at":"2015-04-20T03:34:18Z","updated_at":"2016-06-12T21:39:22Z","pushed_at":"2016-06-12T07:59:49Z","git_url":"git://github.com/MinecraftForge/Documentation.git","ssh_url":"git@github.com:MinecraftForge/Documentation.git","clone_url":"https://github.com/MinecraftForge/Documentation.git","svn_url":"https://github.com/MinecraftForge/Documentation","homepage":null,"size":311,"stargazers_count":61,"watchers_count":61,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":2,"forks":29,"open_issues":2,"watchers":61,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46"},"html":{"href":"https://github.com/MinecraftForge/Documentation/pull/46"},"issue":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/issues/46"},"comments":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/issues/46/comments"},"review_comments":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46/comments"},"review_comment":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/46/commits"},"statuses":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/9bff39977e9435b62798cc35f8f6b7be3c0613ae"}}}}
{"actor":{"display_login":"williewillus"}}