{"action":"created","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/389","labels_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/389/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/389/events","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/389","id":54379792,"number":389,"title":"[WIP] Commands System Improvement","user":{"login":"AlphaModder","id":2100733,"avatar_url":"https://avatars.githubusercontent.com/u/2100733?v=3","gravatar_id":"","url":"https://api.github.com/users/AlphaModder","html_url":"https://github.com/AlphaModder","followers_url":"https://api.github.com/users/AlphaModder/followers","following_url":"https://api.github.com/users/AlphaModder/following{/other_user}","gists_url":"https://api.github.com/users/AlphaModder/gists{/gist_id}","starred_url":"https://api.github.com/users/AlphaModder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlphaModder/subscriptions","organizations_url":"https://api.github.com/users/AlphaModder/orgs","repos_url":"https://api.github.com/users/AlphaModder/repos","events_url":"https://api.github.com/users/AlphaModder/events{/privacy}","received_events_url":"https://api.github.com/users/AlphaModder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/labels/needs+team+review","name":"needs team review","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-01-14T21:34:19Z","updated_at":"2015-01-16T07:05:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/pulls/389","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/389","diff_url":"https://github.com/SpongePowered/SpongeAPI/pull/389.diff","patch_url":"https://github.com/SpongePowered/SpongeAPI/pull/389.patch"},"body":"This slightly modifies the command interfaces to allow for more variety in command systems, and rerewrites a large portion of the default command service implementation, mostly in SimpleDispatcher. The features it will introduce to it are:\r\n\r\n* Allows use of /plugin:command in a less hacky way.\r\n* Allows plugins to register conflicting commands, and resolves those conflicts when the command is sent.\r\n* Removes the callback feature from command registration as it is no longer neccessary due to the above change.\r\n* Allows use of /mc or /minecraft:command to run vanilla commands [NYI]\r\n* Creates an API that may be used to set certain aliases to point to certain plugins in the command system. [NYI]\r\n\r\nIt is based on EvilSeph's old blog post [here](http://evilseph.com/post/75608917830/bukkit-supporting-minecraft-commands).\r\n\r\nDue to configuration files not yet having a standard format yet, I will only create an API that allows the command configuration described in the blog post to be implemented, but this PR does not include the actual implementation of the configuration file. \r\n\r\nI still need help with: a good way to wrap vanilla/sponge commands into the existing system. maybe some kind of VanillaPluginContainer/SpongePluginContainer as wrappers so the command system can use them? \r\n\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/comments/70215935","html_url":"https://github.com/SpongePowered/SpongeAPI/pull/389#issuecomment-70215935","issue_url":"https://api.github.com/repos/SpongePowered/SpongeAPI/issues/389","id":70215935,"user":{"login":"AlphaModder","id":2100733,"avatar_url":"https://avatars.githubusercontent.com/u/2100733?v=3","gravatar_id":"","url":"https://api.github.com/users/AlphaModder","html_url":"https://github.com/AlphaModder","followers_url":"https://api.github.com/users/AlphaModder/followers","following_url":"https://api.github.com/users/AlphaModder/following{/other_user}","gists_url":"https://api.github.com/users/AlphaModder/gists{/gist_id}","starred_url":"https://api.github.com/users/AlphaModder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlphaModder/subscriptions","organizations_url":"https://api.github.com/users/AlphaModder/orgs","repos_url":"https://api.github.com/users/AlphaModder/repos","events_url":"https://api.github.com/users/AlphaModder/events{/privacy}","received_events_url":"https://api.github.com/users/AlphaModder/received_events","type":"User","site_admin":false},"created_at":"2015-01-16T07:05:44Z","updated_at":"2015-01-16T07:05:44Z","body":"@sk89q Okay, I understand now, So should I perhaps refactor SimpleCommandService to do all the new stuff? Or should I create a new Dispatcher and CommandService. If you actually want this in sponge, that is."}}