Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a number of quality of life features and bug fixes:
The plugin reloading system is more aggressive, attempting multiple times instead of just once in case a file lock is held for a significant time. This should fix most issues regarding different programs writing to
plugin.lua
at once.An additional check is placed to ensure that the reloaded string contains valid syntax, since it is possible for text to be partially written to, which previously caused a false error to show up, which confused some plugin developers.
Fix a bug where the name of the plugin wasn't shown when a runtime script error (not syntax error) occurred during initialization.
Several guards are added to ensure that exception spamming is less likely, while still keeping relevant information. One of these guards is that subsequent calls to
draw
that produce the same error message repeatedly do not get shown until it is called successfully once, or a different error message shows up, or the file gets reloaded.eval
, this is very useful for input boxes that would accept a formula. This is similar to thedynamic
module, however the module is not used directly due to it leaking exceptions. Theeval
has the same amount of permissions as the script, except it is also unable to make function calls.