skript-reflect
2.x
2.x
  • skript-reflect
  • Getting Started
  • Basics
    • Reading Javadocs
    • Importing classes
    • Running Java code
    • Handling events
    • Utilities
  • Advanced
    • Error handling
    • Loading external libraries
    • Custom syntax
      • Effects
      • Conditions
      • Expressions
      • Events
    • Computed Options
    • Reflection
      • Proxies
      • Sections
    • Experiments
  • Code Conventions
  • Frequently Asked Questions
Powered by GitBook
On this page
  • Creating a section
  • Running a section
  • Example

Was this helpful?

  1. Advanced
  2. Reflection

Sections

PreviousProxiesNextExperiments

Last updated 4 years ago

Was this helpful?

Sections are very similar to functions: they contain code, they (optionally) have some input variables and (optionally) give some output. One of the key differences being that sections can be created within a trigger.

Creating a section

create [new] section [with [arguments variables] %-objects%] (and store it|stored) in %objects%

The argument variables are a list of variables that represent the input of the section. Example: with argument variables {_x}, {_y}.

For section output, you have to use .

The last expression is a variable in which the created section will be stored.

Local variables from before the creation of a section are available in the section itself, but won't modify the local variables from outside the section.

Running a section

run section %section% [(1¦sync|2¦async)] [with [arguments] %-objects%] [and store [the] result in %-objects%] [(2¦and wait)]

This effect will run the given section. If you run the section (a)sync, you can choose to wait for it to be done or not, by appending and wait or not.

Note that you can't get output from running an async section without waiting for it to return.

You can specify arguments with this effect, for example like this: with arguments {_a}, {_b}.

The output of the section is stored in the result part: and store result in {_result}.

Example

set {_i} to 2
create new section with {_x} stored in {_section}:
    return {_x} * {_i}
run section {_section} async with 3 and store result in {_result} and wait
broadcast "Result: %{_result}%" # shows 6

Sections are very useful to use with , since you don't have to create functions for the proxy with sections.

proxies
return