Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensions #12

Open
8 of 42 tasks
1ForeverHD opened this issue Jun 9, 2021 · 1 comment
Open
8 of 42 tasks

Extensions #12

1ForeverHD opened this issue Jun 9, 2021 · 1 comment

Comments

@1ForeverHD
Copy link
Member

1ForeverHD commented Jun 9, 2021

Plugin

  • Convert 'Commands' repo to 'Extensions'
    • Rename MainModule from Commands to Extensions
    • Setup sub folders
      • Commands - already setup
      • Morphs - move all morph descriptions under here
      • Tools
        • Add updated and modified f3x tool to here
      • Themes - this will be where Nanoblox themes are located
      • Core
        • Add StatHandler to Extensions/Core/Server/Modules/StatHandler
  • Plugin Loader
    • Activate/Deactivate
      • When pressing nanoblox icon display whole menu like ckstudio+/rojo
      • If no 'Nanoblox' present in ServerScriptService display a single Activate button
      • When pressed, check ServreStorage for 'Nanoblox (deactivated)'
      • Have a deactivate button at the button of the page
      • Listen for these changes within ServerScriptService.ChildAdded and update display accordingly
    • When Nanoblox loaded for first time (i.e. no loader detected), auto setup every extension
    • When an extension is loaded into the loader, create an attribute under its container - this indicates it's already been loaded and prevents it being displayed again in the new menu
    • A super basic interface
      • Split Extensions into three columns:
        • New - can be approved or rejected
        • Approved - can be removed (i.e. rejected)
        • Rejected - can be re-inserted (i.e. approved)
      • Make sure to listen for Extensions/Commands ChildAdded (move item to approved if a valid extension item) and ChildRemoved (move item to rejected if a valid extension item)
      • Notification when new extensions > 0 which when clicked opens up extensions manage page
  • Consider setting up a 'Studio' settings group
    • Consider renaming 'System' settings to something else (maybe Game or Server)
    • Settings such as:
      • Enable Sync
      • PlayerDataName
      • SystemDataName
      • DisableFunCommands
      • (consider moving some system settings here)

Core

  • Setup an Extensions folder within Server
  • Move the Commands module code to CommandService and move all internal commands to Server/Extensions/Commands
  • Ensure AssetService accounts for this change (e.g. it originally cached assets under Server/Modules/Commands)
  • How will extension items like 'Morphs' and 'Tools' be retrieved? Maybe consider creating specifically tailored methods within AssetService
  • Transfer everything under Loader/Extensions into the core Extensions folder
    • Only move commands instead of merge (to prevent overwriting internal commands)
    • Transfer everything under Extensions/Core into the corresponding Core locations, although **if present, completely ignore Loader/Extensions/Core/Server/Extensions
  • Test
@1ForeverHD
Copy link
Member Author

Fun Command Limits

  • A plugin warning indicating AllowThirdPartySales must be enabled for fun commands to work
  • If third party sales disabled in game
    • Disable all 'fun' tags (block within CommandService verifyStatement and inform user 'Fun Commands cannot function while ThirdPartySales are disabled')
    • A 'Studio Setting' 'disableFunCommands' - if true, display warning 'Fun Commands disabled by game owner' instead
    • Disable invocations and fires to Client Commands
    • Disable task:buffPlayer/caller
    • Within Core init, prevent CommandService and Tasks from being modified (and display a warning indicating these modules were blocked from merging)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant