{"action":"created","issue":{"url":"https://api.github.com/repos/SkriptLang/Skript/issues/1780","repository_url":"https://api.github.com/repos/SkriptLang/Skript","labels_url":"https://api.github.com/repos/SkriptLang/Skript/issues/1780/labels{/name}","comments_url":"https://api.github.com/repos/SkriptLang/Skript/issues/1780/comments","events_url":"https://api.github.com/repos/SkriptLang/Skript/issues/1780/events","html_url":"https://github.com/SkriptLang/Skript/issues/1780","id":394725139,"node_id":"MDU6SXNzdWUzOTQ3MjUxMzk=","number":1780,"title":"Use asynchronous script reloading","user":{"login":"CarloDrift","id":30211659,"node_id":"MDQ6VXNlcjMwMjExNjU5","avatar_url":"https://avatars0.githubusercontent.com/u/30211659?v=4","gravatar_id":"","url":"https://api.github.com/users/CarloDrift","html_url":"https://github.com/CarloDrift","followers_url":"https://api.github.com/users/CarloDrift/followers","following_url":"https://api.github.com/users/CarloDrift/following{/other_user}","gists_url":"https://api.github.com/users/CarloDrift/gists{/gist_id}","starred_url":"https://api.github.com/users/CarloDrift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CarloDrift/subscriptions","organizations_url":"https://api.github.com/users/CarloDrift/orgs","repos_url":"https://api.github.com/users/CarloDrift/repos","events_url":"https://api.github.com/users/CarloDrift/events{/privacy}","received_events_url":"https://api.github.com/users/CarloDrift/received_events","type":"User","site_admin":false},"labels":[{"id":338177287,"node_id":"MDU6TGFiZWwzMzgxNzcyODc=","url":"https://api.github.com/repos/SkriptLang/Skript/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":822625528,"node_id":"MDU6TGFiZWw4MjI2MjU1Mjg=","url":"https://api.github.com/repos/SkriptLang/Skript/labels/priority:%20low","name":"priority: low","color":"bcff59","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-12-28T21:45:15Z","updated_at":"2018-12-28T22:04:29Z","closed_at":null,"author_association":"NONE","body":"Hello,\r\n\r\nSince the beginning, reloading (large) scripts has been a pain for developers: it generates a high latency for the server, often referred to as \"freeze\". It can last several tens of seconds and can be annoying for the players on the server.\r\n\r\nWe can build on the case of WorldEdit, which can also generate \"freezes\" when handling a large structure. For this, the Fast Async WorldEdit (FAWE) plugin was invented. Based on an asynchronous method, FAWE allows structures of several million blocks to be manipulated without feeling any lag. The same is true for many plugins that use this asynchronous system, in order to avoid any \"freeze\".\r\n\r\nTo conclude, I think it would be possible to use an asynchronous reloading system for our scripts, to never again encounter \"freezes\".\r\n\r\nThank you for reading me and I hope that my suggestion will come true!\r\n\r\n#MakeSkriptGreatAgain"},"comment":{"url":"https://api.github.com/repos/SkriptLang/Skript/issues/comments/450434562","html_url":"https://github.com/SkriptLang/Skript/issues/1780#issuecomment-450434562","issue_url":"https://api.github.com/repos/SkriptLang/Skript/issues/1780","id":450434562,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MDQzNDU2Mg==","user":{"login":"TheBentoBox","id":6902229,"node_id":"MDQ6VXNlcjY5MDIyMjk=","avatar_url":"https://avatars0.githubusercontent.com/u/6902229?v=4","gravatar_id":"","url":"https://api.github.com/users/TheBentoBox","html_url":"https://github.com/TheBentoBox","followers_url":"https://api.github.com/users/TheBentoBox/followers","following_url":"https://api.github.com/users/TheBentoBox/following{/other_user}","gists_url":"https://api.github.com/users/TheBentoBox/gists{/gist_id}","starred_url":"https://api.github.com/users/TheBentoBox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheBentoBox/subscriptions","organizations_url":"https://api.github.com/users/TheBentoBox/orgs","repos_url":"https://api.github.com/users/TheBentoBox/repos","events_url":"https://api.github.com/users/TheBentoBox/events{/privacy}","received_events_url":"https://api.github.com/users/TheBentoBox/received_events","type":"User","site_admin":false},"created_at":"2018-12-28T22:04:29Z","updated_at":"2018-12-28T22:04:29Z","author_association":"MEMBER","body":"This shouldn't have been closed because this really isn't \"already supported\". Perhaps there's another issue for it but there are a number of issues with the current implementation:\r\n\r\n1. Unstable af like bensku said. It does seem to work ok for me in basic tests but I really haven't gotten that far into it.\r\n2. I get log handler errors when reloading any scripts while the server is already running with async loading enabled. This is very likely a skript-mirror issue but it's worth mentioning.\r\n3. The biggest issue of all: a lot of people control a lot of very important stuff with scripts so we can't afford to have the server actively running while the scripts load -- what we really need is async script RELOADING, not loading, and it should be a separate config option. You'll also not if you re-read the title that that's also what this issue is asking for. I've tested reloading scripts with async loading enabled and it seems to freeze the server all the same as without it enabled. I can take the +1 minute restart time, it's those regular multi-second hard freezes while the server is active that are the real killer."}}
{"actor":{"display_login":"TheBentoBox"}}