{"action":"created","issue":{"url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/10","repository_url":"https://api.github.com/repos/stefvanschie/QuickSkript","labels_url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/10/comments","events_url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/10/events","html_url":"https://github.com/stefvanschie/QuickSkript/issues/10","id":355529164,"node_id":"MDU6SXNzdWUzNTU1MjkxNjQ=","number":10,"title":"Event handling change proposal","user":{"login":"Trigary","id":16213127,"node_id":"MDQ6VXNlcjE2MjEzMTI3","avatar_url":"https://avatars2.githubusercontent.com/u/16213127?v=4","gravatar_id":"","url":"https://api.github.com/users/Trigary","html_url":"https://github.com/Trigary","followers_url":"https://api.github.com/users/Trigary/followers","following_url":"https://api.github.com/users/Trigary/following{/other_user}","gists_url":"https://api.github.com/users/Trigary/gists{/gist_id}","starred_url":"https://api.github.com/users/Trigary/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trigary/subscriptions","organizations_url":"https://api.github.com/users/Trigary/orgs","repos_url":"https://api.github.com/users/Trigary/repos","events_url":"https://api.github.com/users/Trigary/events{/privacy}","received_events_url":"https://api.github.com/users/Trigary/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-08-30T10:46:34Z","updated_at":"2018-08-30T12:09:47Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"The handling of Bukkit events is simple: you either call Skript event(s) or you don't. In case of some Bukkit events, this is even simpler: if the event fires and there is a registered Skript event, it will always get called.\r\n\r\nRegistering these kinds of simple events has been made simpler in a [recent commit of mine](https://github.com/Trigary/QuickSkript/commit/f348ead3cd271b60c08513d5d042d412f82b2c81), but this could be further improved: there is no need for a proxy object, the `AbstractEvent`.\r\n\r\nIn case of simple events, Bukkit event classes can be mapped to a collection `SkriptEvent` instances. A single event listener can execute all `SkriptEvent` instances. In case of non-simple events, the Bukkit event classes could be mapped to a collection of `SkiptEvent`, `Predicate<? extends Event>` pairs. The `SkriptEvent`s would only get executed if their `Predicate` pairs return `true`.\r\n\r\nThis would get rid of the `AbstractEvent` class, make registering events simpler, improve performance by a non-benchmarkable amount all without (hopefully) losing any features.\r\n\r\nPS: In case I get a green light, I will gladly get this done. I would just rather get a yes/no answer before spending time with this."},"comment":{"url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/comments/417296607","html_url":"https://github.com/stefvanschie/QuickSkript/issues/10#issuecomment-417296607","issue_url":"https://api.github.com/repos/stefvanschie/QuickSkript/issues/10","id":417296607,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNzI5NjYwNw==","user":{"login":"Trigary","id":16213127,"node_id":"MDQ6VXNlcjE2MjEzMTI3","avatar_url":"https://avatars2.githubusercontent.com/u/16213127?v=4","gravatar_id":"","url":"https://api.github.com/users/Trigary","html_url":"https://github.com/Trigary","followers_url":"https://api.github.com/users/Trigary/followers","following_url":"https://api.github.com/users/Trigary/following{/other_user}","gists_url":"https://api.github.com/users/Trigary/gists{/gist_id}","starred_url":"https://api.github.com/users/Trigary/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Trigary/subscriptions","organizations_url":"https://api.github.com/users/Trigary/orgs","repos_url":"https://api.github.com/users/Trigary/repos","events_url":"https://api.github.com/users/Trigary/events{/privacy}","received_events_url":"https://api.github.com/users/Trigary/received_events","type":"User","site_admin":false},"created_at":"2018-08-30T12:09:47Z","updated_at":"2018-08-30T12:09:47Z","author_association":"CONTRIBUTOR","body":"Great! It will fit the requirements you described."}}
{"actor":{"display_login":"Trigary"}}