Skip to content

Extensions #12

@1ForeverHD

Description

@1ForeverHD

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions