Paste #30421: Untitled Paste

Date: 2016/02/15 22:10:13 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


###########################
# File for debug commands #
###########################

###########################################################
# Command for reviewing the the potential errors manually #
###########################################################
Debug_Error_Review:
  type: command
  name: Debug_Error_Review
  usage: /Debug_Error_Review <&lt>view/resolve/clear<&gt> <&lt>Error number<&gt> <&lt>Error number<&gt>
  description: Use this command to review the errors
  permission: denizen.debug.review
  permission message: <&4>You do not have permission to use this command.<&r>
  allowed help:
  - deteremine <player.has_permission[denizen.debug.review]||<context.server>>
  tab complete:
  - if <player.has_permission[denizen.debug.review]||<context.server>> {
    - determine <li@view|resolve|clear.filter[starts_with[<context.args.get[2]>]>
    }
  script:
  - if <yaml[config].read[framework.options.log-events]> {
    - log "<player> used command: /Debug_Error_Review <context.args.get[1]> <context.args.get[2]> <context.args.get[3]>"
    }
  - if <yaml.list.contains[errors].not> {
    - narrate format:Module_Error ""
    - queue clear
    }
  - if <context.args.size> != 3 || <yaml.list.contains[errors].not> {
    - narrrate format:Debug_Format "Potential errors pending review: <yaml[errors].read[errors.unresolved].size>"
    - queue clear
    }
   - if <context.args.get[2].as_int> == null || <context.args.get[3].as_int> == null {
     - narrate format:Invalid_Argument ""
     - queue clear
     }
   - choose "<context.args.get[1]>":
     - case "view":
       - narrate format:Debug_Format "Listing errors <context.args.get[2]> to <context.args.get[3]>:"
       - narrate format:Debug_Format "<yaml[errors].read[errors.unresolved].get[<context.args.get[2]>].to[<context.args.get[3]>]>.seperated_by[<&nl>]>"

     - case "resolve":
       - yaml id:errors errors.unresolved:<yaml[errors].read[errors.unresolved].exclude[<yaml[errors].read[errors.unresolved].get[<context.args.get[2]>].to[<context.args.get[3]>]>]>
       - yaml id:errors errors.resolved:->:<yaml[errors].read[errors.unresolved].get[<context.args.get[2]>].to[<context.args.get[3]>]>
       - narrate format:Debug_Format "Errors <context.args.get[2]> to <context.args.get[3]> has been resolved"

       - case "clear":
       - yaml id:errors errors.unresolved:<yaml[errors].read[errors.unresolved].exclude[<yaml[errors].read[errors.unresolved].get[<context.args.get[2]>].to[<context.args.get[3]>]>]>
       - narrate format:Debug_Format "Errors <context.args.get[2]> to <context.args.get[3]> has been cleared"

     - default:
       - narrate format:Invalid_Argument ": <context.args.get[1]>"

###########################################################################
# Command for toggling whether to recieve potential error messages or not #
###########################################################################
Debug_Error_Toggle:
  type: command
  name: Debug_Error_Toggle
  usage: /Debug_Error_Toggle <&lt>enable/disable<&gt>
  description: Use this command to enable/disable receiving potential error messages
  permission: denizen.debug.toggle
  permission message: <&4>You do not have permission to use this command.<&r>
  allowed help:
  - determine <player.has_permission[denizen.debug.toggle]>
  tab complete:
  - if <player.has_permission[denizen.debug.toggle]> {
    - determine <li@enable|disable.filter[starts_with[<context.args.get[1]>]]>
    }
  script:
  - if <context.args.get[1]> != 1 {
    - narrate format:Invalid_Number ""
    - queue clear
    }
  - choose "<context.args.get[1]>":
    - case "enable":
      - flag <player> recieveReport
      - narrate format:Debug_Format "You will now recieve error reports"
    - case "disable":
      - flag <player> recieveReport:!
      - narrate format:Debug_Format "You will now not recieve error reports"
    - default:
      - narrate format:Invalid_Argument ": <context.args.get[1]>"

######################################################
# Command for toggling the viewing of invisible NPCs #
######################################################
Debug_Visibility:
  type: command
  name: DebugVisibility
  usage: /DebugVisibility <&lt>Enable/Disable<&gt>
  description: Use this command to toggle viewing invisible NPCs
  permission: denizen.debug.visibility
  permission message: <&4>You do not have the permission required to use this command.<&r>
  allowed help:
  - determine <player.has_permission[denizen.debug.visibility]>
  tab complete:
  - if <player.has_permission[denizen.debug.toggle]> {
    - determine <li@enable|disable.filter[starts_with[<context.args.get[1]>]]>
    }
  script:
  - if <context.args.size> != 1 {
    - narrate format:Invalid_Number ""
    - queue clear
    }
  - choose "<context.args.get[1]>":
    - case "enable":
      - flag <player> debugVisibility
      - foreach <server.ist_npcs.filter[has_flag[hidden]]> {
        - adjust <player> show_entity:<def[value]>
        }
      - narrate format:Debug_Format "Hidden NPCs are now visible"

    - case "disable":
      - flag <player> debugVisibility:!
      - foreach <server.ist_npcs.filter[has_flag[hidden]]> {
        - adjust <player> hide_entity:<def[value]>
        }
      - narrate format:Debug_Format "Visible NPCs are now hidden"

    - default:
      - narrate format:Invalid_Argument ": <context.args.get[1]>"
      - queue clear
    }

#######################################
# Command for all queues related shit #
#######################################
Queues_Command:
  type: command
  name: Queues
  description: Use this command for debugging queues.
  usage: /Queues <&lt>All/Queue ID<&gt> <&lt>list/clear/stop<&lt>
  aliases:
  - Queue
  permission: denizen.debug.queues
  permission message: You do not have the permission required to use this command.
  allowed help:
  - determine <player.has_permission[denizen.debug.queues]||<context.server>>
  tab complete:
  - if <player.has_permission[denizen.debug.queues]||<context.server>> {
    - determine <queue.list.parse[<queue.id>].filter[starts_with[<context.args.get[1]>]]>
    }
  script:
  - if <context.args.size> != 2 {
    - narrate format:Invalid_Number ""
    - queue clear
    }
  - if <context.args.get[1]> != "all" && <queues.exists[<context.args.get[1]>].not> {
    - narrate format:Invalid_Argument ": <context.args.get[1]>"
    - queue clear
    }
  - choose "<context.args.get[2]>":
    - case "list":
      - narrate format:Debug_Format "Total number of queues: <queue.list.size><&nl> <&nl>This script's queue(s):<&nl><queue><&nl> <&nl>Queues:<queue.list.exclude[<queue>].comma_separated>"

    - case "clear":
      - choose "<context.args.get[1]>":
        - case "All":
          - foreach <queue.list.exclude[<queue>|<def[shellQueue]>]> {
            - queue <def[value]> clear
            } 
          - if <queue.list.exclude[<queue>].is_empty> {
            - narrate format:Debug_Format "Successfully cleared all queues!"
            }
            else {
            - narrate format:Error_Format "Error: Certain queues could not be cleared! Try stopping the scripts instead."
            }

        - default:
          - queue <context.args.get[1]> clear
          - if <queue.exists[<context.args.get[1]]>]> {
            - narrate format:Debug_Format "Specified queue could not be cleared! Try stopping the queue instead."
            }
            else {
            - narrate format:Debug_Format "Successfully cleared queue: <context.args.get[1]]>"
            }

    - case "stop":
      - choose "<context.args.get[1]>":
        - case "All":
          - foreach <queue.list.exclude[<queue>]> {
            - queue <def[value]> stop
            }
          - if <queue.list.exclude[<queue>].is_empty> {
            - narrate format:Debug_Format "Successfully stopped all queues!"
            }
            else {
            - narrate format:Error_Format "Error: Certain queues could not be stopped."
            }
        - default:
          - queue <context.args.get[1]> stop
          - if <queue.exists[<context.args.get[1]>]> {
            - narrate format:Debug_Format "Specified queue could not be stopped!"
            }
            else {
            - narrate format:Debug_Format "Successfully stopped queue: <context.args.get[1]]>"
            }
    - default:
      - narrate format:Invalid_Argument ": <context.args.get[2]>"