{"action":"created","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/988","labels_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/988/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/988/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/988/events","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/988","id":123925983,"number":988,"title":"Text API revision 3","user":{"login":"Minecrell","id":3035868,"avatar_url":"https://avatars.githubusercontent.com/u/3035868?v=3","gravatar_id":"","url":"https://api.github.com/users/Minecrell","html_url":"https://github.com/Minecrell","followers_url":"https://api.github.com/users/Minecrell/followers","following_url":"https://api.github.com/users/Minecrell/following{/other_user}","gists_url":"https://api.github.com/users/Minecrell/gists{/gist_id}","starred_url":"https://api.github.com/users/Minecrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Minecrell/subscriptions","organizations_url":"https://api.github.com/users/Minecrell/orgs","repos_url":"https://api.github.com/users/Minecrell/repos","events_url":"https://api.github.com/users/Minecrell/events{/privacy}","received_events_url":"https://api.github.com/users/Minecrell/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/high%20priority","name":"high priority","color":"e11d21"},{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/needs%20review","name":"needs review","color":"eb6420"},{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/text","name":"text","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"Minecrell","id":3035868,"avatar_url":"https://avatars.githubusercontent.com/u/3035868?v=3","gravatar_id":"","url":"https://api.github.com/users/Minecrell","html_url":"https://github.com/Minecrell","followers_url":"https://api.github.com/users/Minecrell/followers","following_url":"https://api.github.com/users/Minecrell/following{/other_user}","gists_url":"https://api.github.com/users/Minecrell/gists{/gist_id}","starred_url":"https://api.github.com/users/Minecrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Minecrell/subscriptions","organizations_url":"https://api.github.com/users/Minecrell/orgs","repos_url":"https://api.github.com/users/Minecrell/repos","events_url":"https://api.github.com/users/Minecrell/events{/privacy}","received_events_url":"https://api.github.com/users/Minecrell/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/milestones/4","html_url":"https://github.com/SpongePowered/SpongeAPI/milestones/Revision%203.0","labels_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/milestones/4/labels","id":1082492,"number":4,"title":"Revision 3.0","description":"This is the third stable revision of the Sponge API, 3.0 ","creator":{"login":"Zidane","id":744482,"avatar_url":"https://avatars.githubusercontent.com/u/744482?v=3","gravatar_id":"","url":"https://api.github.com/users/Zidane","html_url":"https://github.com/Zidane","followers_url":"https://api.github.com/users/Zidane/followers","following_url":"https://api.github.com/users/Zidane/following{/other_user}","gists_url":"https://api.github.com/users/Zidane/gists{/gist_id}","starred_url":"https://api.github.com/users/Zidane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zidane/subscriptions","organizations_url":"https://api.github.com/users/Zidane/orgs","repos_url":"https://api.github.com/users/Zidane/repos","events_url":"https://api.github.com/users/Zidane/events{/privacy}","received_events_url":"https://api.github.com/users/Zidane/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":106,"state":"open","created_at":"2015-04-24T16:02:08Z","updated_at":"2015-12-29T04:45:12Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-12-26T11:48:56Z","updated_at":"2015-12-29T05:46:04Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/pulls/988","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/988","diff_url":"https://github.com/SpongePowered/SpongeAPI/pull/988.diff","patch_url":"https://github.com/SpongePowered/SpongeAPI/pull/988.patch"},"body":"This is the draft for the third revision of the Text API open for review in the next few days.\r\n\r\n_\"Short\"_ summary of changes:\r\n- Split Text classes into separate classes and move the builders into these classes:\r\n  - `Text` -> `Text`, `TextBuilder` -> `Text.Builder`\r\n  - `Text.Literal` -> `LiteralText`, `TextBuilder.Literal` -> `LiteralText.Builder`\r\n  - `TitleBuilder` -> `Title.Builder`\r\n- Remove static utility classes (e.g. `Texts`, `Titles`, `Selectors`), moved into the appropriate class\r\n- Added locales class with a list of locales in Vanilla Minecraft\r\n- Refactor `TextRepresentation` -> `TextSerializer`, rename methods\r\n  - `Texts.toPlain()` -> `TextSerializers.PLAIN.serialize(Text)` or `text.toPlain()`\r\n  - `Texts.json().to(Text)` -> `TextSerializers.JSON.serialize(Text)` or `text.to(TextSerializers.JSON)`\r\n  - `Texts.json().from(String)` -> `TextSerializers.JSON.parse(String)`\r\n  - `Texts.replaceCodes(String, char, char)` -> `TextSerializers.LEGACY.replaceCodes(String, char)`\r\n- Added new text serializer (`TextSerializers.COLOR_CODE`, **TODO: Naming**) for the usual color codes (using `&`), which is unlike `TextSerializers.LEGACY` not deprecated and safe for use\r\n- Remove `Text.Placeholder` and `Texts.format(Text)`\r\n- Much more things I can't remember."},"comment":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/comments/167723082","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/988#issuecomment-167723082","issue_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/988","id":167723082,"user":{"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},"created_at":"2015-12-29T05:46:04Z","updated_at":"2015-12-29T05:46:04Z","body":"@Minecrell move the builders into nested classes and if you can, make them resettable builders, I'd rather see the `SelectorBuilder` not require a `SelectorType` to construct one, especially since no special handling is done after it. The same goes for the other builders. When you've done that, #932 can be closed. "}}