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

Args #87

Closed
1ForeverHD opened this issue Apr 19, 2021 · 0 comments
Closed

Args #87

1ForeverHD opened this issue Apr 19, 2021 · 0 comments

Comments

@1ForeverHD
Copy link
Member

1ForeverHD commented Apr 19, 2021

  • playerNormalSearch = main.enum.IdentifierSearch.UserName,
    playerIdentifierSearch = main.enum.IdentifierSearch.DisplayName,
    --[[
    main.enum.IdentifierSearch.UserName,
    main.enum.IdentifierSearch.DisplayName,
    main.enum.IdentifierSearch.UserNameAndDisplayName,
    --]]
    • Consider handling the text filter within args instead of task
    • IMPORTANT: how to determine caller has permission to use an argument, qualifier and modifiers
      • maybe a separate method to verify and/or block with warning within CommandService like modifiers
    • important: make sure to setup and handle the default values!
    • change main.services.RoleService.verifySettings(user, {"limit", "denylistedIDs"}).areAll(true) to main.services.RoleService.verifySettings(user, "limit.denylistedIDs").areAll(true)
    • Test:
      • verifySettings
      • getMaxValueFromSettings
      • getMinValueFromSettings
      • getHighestRoleSetting
    • handle blocking of values and error notifications
      • sounds
      • gear
      • if .parentchanged of storage arg item then produce an error/warning telling to clone instead
      • scale
    • SUPER IMPORTANT: Even if the self.args are missing (e.g. in ;mel me instead of the full ;mel me red) make sure the args are still parsed! If nil, make sure to pass thorugh "" as the stringValueToParse
    • color
      • fromName
      • hex
      • capsule
    • optionalcolor
    • bool
    • stat
      • setup a module called 'StatHandler'
      • setup methods to modify stats (for commands get/set/add/subtract/reset)
      • make displayName of stat 'statName' (while the arg returns a 'stat')
      • have the stat arg return a stat from :get()
      • clone this module under plugin loader extensions core and setup an example of how to modify
      • setup commands: 'setStat', 'addStat', 'subtractStat', 'resetStat'.
    • userid
    • bundleDescription (displayName = 'bundleId')
    • userDescription (displayName = 'userId')
    • TASKS AND BUFFS:
      • split task:buff into task:buffPlayer and task:buffCaller
      • test on server
      • setup on client too (which has dynamic agents)
      • consider renaming all references of 'target' to 'player'
      • setup 'Caller' Persistence enums
        • 'UntilCallerDies` - if caller not present, kill right away
        • UntilCallerRespawns - if caller not present, kill right away
        • update 'Become' with UntilCallerRespawns
        • ;become @foreverHD or ;become Ben doesnt work?
    • ensure Parser.getPlayersFromString works for User arg (and then userDescription arg) - test by doing ;become Matt then ;become be and ;become @forever
    • username - same as userId except returns username (check displayname, username, then userid, etc)
    • check and update all Args which 'require a player arg at start'
      • bundleDescription
      • stat
    • Upgrade to Rojo 6.2.0
    • IMPORTANT:
      • consider introducing a CommandService method which take a statement, converts the commandNames, args and modifiers into their real names, then verifies, then executes if successful
    • Important: Player qualifier does not detect ;bundle @forev ID and ;bundle ben ID correctly
      • update user qualifier
      • also work on qualifier 'multi limit' - instead of multi bool property, just check the final qualifier results for that statement and block if result more than 1 (and multi role setting disabled)
    • setup a paint command and see what happens when you paint over ;bundle and ;become etc
      • ;unsize doesn't work
      • ;paint me red, then ;bundle me 2, then ;unpaint, then ;unbundle still causes paint to remain
    • Important: Reorganise agent self.groupedBuffs so that items like 'BodyScale' can all be merged into one master HumanoidDescription effect (then its own ignored)
      • Reorganise
      • What to do for specificEffect and specificProperty???
    • Inform raza modifiers (such as un/undo, preview, etc) have entirely stopped working - likely something to do with: https://i.imgur.com/pEcqCJY.png
    • Important: Agent resets incorrectly when doing ;bundle me 1 then ;bundle me 2
    • setup 'preview' modifier
      • if command.preview == true, then convert to preview modifier
      • if preview but fromClient is present then ignore the preview modifier
      • setup a 'requestBatch', 'requestStatement' and 'requestChat' remote within CommandService - limit these remotes to 10 requests every 5 seconds
      • have these methods/remotes call verify statement then executestatement (identical to what chatCommand) does
      • ensure verifyAndExecuteStatement and all downwards promises and returned correctly
      • ensure the client-requested batches/statements are actually valid tables else block
      • if promise errors then return false, error message
      • if promise resolves but (false) then reject too
      • only return true if everything successful
        in the server first
    • team - test only
    • teamcolor - test only
    • material - test only
    • ensure modifiers and playeridentifier work (see raza)
    • agent improvements
      • ;paint me red ;size me 2 ;bundle me 400 then ;bundle me 99 doesn't work correctly in-game (maybe due to the additional headless horseman checks)
      • consider delaying the applying of humanoid descriptions so that effects to snap back and forth. For example, ;trans me 0.5 then ;trans me 0.9
      • Create ;bodyff (bodyForceField) command, see https://www.roblox.com/games/6716391066/HD-House-Remodeling#!/game-instances - this may require modifying agents so that body parts can be completely transparent. Maybe consider introducing a new effect for this
    • complete Extensions plugin#12
    • tools
      • on initialisation (ideally within the Start of a service), iterate through all descendants of ServerStorage, ReplicatedStorage and NanobloxLoader, and if a tool object, then record its name
      • Extensions/Tools has highest priority so iterate over and record items from this last
    • morphs
      • setup a dedicated folder within extensions and ensure they are pulled into the core on initialisation (maybe a MorphHandler/Service?)
      • create internal morph command
      • important: setup a dedicated buff method or effect to take instances (such as fire particles), and only display them when that particular buff is activated
      • create morph arg
      • make sure to become the entire morph
      • convert the most important HD Admin morphs into humanoid descriptions or hdesc/character hybrids
        • chair - make rideable
        • slender
        • anonymous
        • clown
        • donald (trump)
        • guest666
        • hacker
        • SWAT
        • superman
        • guestoriginal
        • lordduckkkkk - make rideable
    • complete all descriptions (this is important for explaining color capsules, hex, etc)
    • agent/buff IMPORTANT: ;trans me 0.5 then ;become oblivioushd discontinues transparency effect because new body parts replaced. overcome this, then test with that and ;morph me chair (check the face)

Additional

  • ;size me 2, ;material me forcefield then ;become oblivioushd does not apply material value to body
  • test :setWeight
    • it seems to throw and error
  • Override ID lists
    • first...
      • setup bundle arg verifycanuse
      • replace main.InserService:LoadAsset with main.services.AssetService:loadAsset which first checks override list and replaces if found
    • libraryIds
    • catalogIds
    • bundleIds
  • Cooldown command setting
    • Defaults to 0
    • The cooldown is applied after the task finishes executing
    • When coolingdown (if > 0), record task.cooldownEndTime
    • Add a note to check for task.cooldownEndTime and produce a different warning to caller (i.e. cooling down, x time remaining)
    • This cooldown should also be applied after the role setting 'limit cooldown'
  • Complete Create SoundService and SoundController #119
  • Animate/anim/animation command and arg: https://www.roblox.com/catalog/5917570207/Floss-Dance
    • client task does not appear to be killing/cleaning up?
    • timeout 5 seconds error line 380 task https://i.imgur.com/FcisTxu.png
    • have client anim task killed backup when humanoid.died
    • allow multiple anims to be played at once
    • ensure anim speed works properly (maybe do 1/speed)
    • complete anim arg
      • ensure asset type is animation or a bundle animation
    • anim only plays in studio? (likely group ownership)
  • important if tool(s) equipped, make sure to unequp them when changing HumanoidDescription (within agent)
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