* fix(script-mgr / lua): first kill all scripts, then unload lua modules: because the lua scripts depend on lua state (which is stored inside lua module instance), killing the lua module first would not allow proper cleaning because of the lua state getting destroyed while the lua script might still be running.
* fix(unloading): Why even reset the fiber pool here?
* fix(lua): don't allow for io / os lua lib to be accessed for security reasons.
* fix(lua): Potential fix for C stack overflow error by using lua coroutine yielding instead of calling fiber yield directly from lua functions.
* feat(unloading): allow to unload in the main title screen. Also revert 309c374602 due to fiber pool being potentially exhausted, we want commands to have their cleanup code ran in priority.
* feat(vscode): added launch.json to dbg
* feat(file_manager): Make use of a global instance
* feat(file_manager): Allow for file and folder instances to be empty
* refactor(GlobalsService): Update code of global service (untested)
* lua manager: pass down the scripts folder to the instance instead of hard coding calls to the file manager everywhere
* lua: add open lua scripts folder button
* lua api: change script binding so that user cannot by mistake try to sleep or yield in a non script context
This PR includes some improvements to the player DB service:
- Added `Get Gamer Online State` function pointer
- Added sorting of players alphabetically and grouping of players by their online state
- The player DB service will now update 32 players at a time for their online state
- Player entries will automatically save when changing any data from them
- Update the player online states every 5min
* feat(Commands): Prototype command system
* feat(Commands): Chat commands
* refactor(Toxic): convert most options into commands
* feat(Protections): block breakup kicks on other players as host
* refactor(Kicks): convert most options into commands
* refactor(Commands): add labels and descriptions to all commands
* feat(Commands): cleanup on unload
* refactor(Troll): convert most options into commands
* refactor(Misc): convert most options into commands
* refactor(Teleport): convert most options into commands
* feat(Commands): Variadic commands and toggleable bools
* feat(Hotkeys): hotkeys now use commands
* fix(Chat): fix the chat window locking up when a message is sent
* fix(Commands): properly handle spoofed username
* fix(Spam): update filter
Co-authored-by: Yimura <24669514+Yimura@users.noreply.github.com>
* Add force session host and update protections
* Remove old popgroup protection
* Harden script patcher
* Replace looped options with script patches
* Missing break
* Use enums
* Forgot to break again...
* Add tooltip for force session host
Co-authored-by: user <email@hostname>