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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions