1. Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

Dismiss Notice
This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Addon FunkySk 1.0.2

A Skript addon to add full support for NoteBlockAPI

  1. LimeGlass
    Supported Minecraft Versions:
    • 1.12, 1.13, 1.14, 1.15
    FunkySk - By LimeGlass

    Github: https://github.com/TheLimeGlass/FunkySk


    Bug reports: https://github.com/TheLimeGlass/FunkySk/issues

    bStats metrics: https://bstats.org/plugin/bukkit/FunkySk



    Demo of what I made with this addon:



    A Skript addon to add full support for NoteBlockAPI. This Skript addon is using the Skellett addon framework structure so it allows developers to make quick updates and get more information when an error happens.

    All of the syntax for this Skript addon are generated in a Syntax.yml found in the plugin folder. Each syntax can be disabled along with some information about the syntax.

    Example script:
    Code (Skript):
    1.  
    2. command /testing <boolean> [<text>]:
    3.    trigger:
    4.        if the argument 1 is true:
    5.            message "&5Playing track"
    6.            if argument 2 is set:
    7.                play song from file string-argument to player
    8.            else:
    9.                play song file "plugins/FunkySk/test.nbs" to player
    10.        else:
    11.            message "&6Testing the second method"
    12.            if argument 2 is set:
    13.                set {_song} to song from file string-argument
    14.            else:
    15.                set {_song} to song from file "plugins/FunkySk/test.nbs"
    16.                set {_songs::*} to songs from file "plugins/FunkySk/test.nbs" and "plugins/FunkySk/test2.nbs"
    17.            play noteblock song {_song} to player
    18.  
    Syntax.yml:
    Code (Skript):
    1. Syntax:
    2.   Events:
    3.     PlayerRangeStateChangeEvent:
    4.       enabled: true
    5.       patterns:
    6.       - '[FunkySk] [player] range [state] change [(of|for) %-player/songplayer%]'
    7.       eventvalues:
    8.       - SongPlayer
    9.       - Boolean
    10.       - Player
    11.     SongStoppedEvent:
    12.       enabled: true
    13.       patterns:
    14.       - '[FunkySk] [note[ ]block] song (end|destroy|stop)[ing] (with|of|for) id %string%'
    15.       - '[FunkySk] song id stop[ing] %string%'
    16.       eventvalues: []
    17.     SongDestroyingEvent:
    18.       enabled: true
    19.       patterns:
    20.       - '[FunkySk] [note[ ]block] song (end|destroy|stop)[ing] (with|of|for) id %string%'
    21.       - '[FunkySk] song id stop[ing] %string%'
    22.       eventvalues: []
    23.     SongEndEvent:
    24.       enabled: true
    25.       patterns:
    26.       - '[FunkySk] [note[ ]block] song (end|destroy|stop)[ing] (with|of|for) id %string%'
    27.       - '[FunkySk] song id stop[ing] %string%'
    28.       eventvalues: []
    29.   Expressions:
    30.     ExprIDSongs:
    31.       enabled: true
    32.       description: Returns the ID's of all songs currently playing.
    33.       syntax:
    34.       - '[(all [[of] the]|the)] id songs playing'
    35.     ExprPositionSongPlayer:
    36.       enabled: true
    37.       description: Returns new position song player(s) from the given song(s). A position
    38.         song player is a song player that is locked on a location.
    39.       syntax:
    40.       - '[a] [new] position song [music] player[s] from [the] [song[s]] %songs% [with
    41.         %-location%]'
    42.     ExprPlayersInID:
    43.       enabled: true
    44.       changers: All changers
    45.       description: Returns the players currently listening to a song with an ID. Returns
    46.         as a string because that's what NoteBlockAPI does.
    47.       syntax:
    48.       - '[(all [[of] the]|the)] player[s] (in|listening to) song with id[s] %strings%'
    49.     ExprInventorySlots:
    50.       enabled: true
    51.       changers: '[SET]'
    52.       description: A temporary setup for multiple slots while Bensku updates Skript
    53.         with my pull request to add this.
    54.       syntax:
    55.       - '[the] slot[s] %numbers% of %inventory%'
    56.       - '%inventory%[''s] slot[s] %numbers%'
    57.     ExprSongPlayer:
    58.       enabled: true
    59.       description: Returns new song player(s) from the given song(s).
    60.       syntax:
    61.       - '[a] [new] song [music] player[s] from [the] [song[s]] %songs%'
    62.     ExprNoteBlockSongPlayer:
    63.       enabled: true
    64.       description: Returns new noteblock song player(s) from the given song(s). A
    65.         noteblock song player is a song player that is locked on a block which is
    66.         a noteblock.
    67.       syntax:
    68.       - '[a] [new] note[ ]block song [music] player[s] from [the] [song[s]] %songs%
    69.         [with [note[ ]block] %-block%]'
    70.     ExprSong:
    71.       enabled: true
    72.       description: Returns songs based from the file strings. Can accept a file path
    73.         string or a url link.
    74.       syntax:
    75.       - '[a] [new] song[s] [from [the]] (file [path]|url|web)[s] %strings%'
    76.     ExprSongPlayersOfID:
    77.       enabled: true
    78.       description: Returns the song's music player(s) of string(s).
    79.       syntax:
    80.       - '[(all [[of] the]|the)] song[ ]player[s] (from|of) [note[ ]block] id[s] %strings%'
    81.     ExprLayerNote:
    82.       enabled: true
    83.       changers: '[SET]'
    84.       description: Returns a note at the defined tick of the song.
    85.       syntax:
    86.       - '[(all [[of] the]|the)] note[s] of [layer[s]] %layers% [at [tick] %-number%]'
    87.       - '[layer[s]] %layers%[''s] note[s] [at [tick] %-number%]'
    88.     ExprSongsInFile:
    89.       enabled: true
    90.       description: Returns all the .nbs songs in a file location.
    91.       syntax:
    92.       - '[(all [[of] the]|the)] [nbt] song[s] [file[s]] in [the] (directory|file[s])
    93.         %string%'
    94.   Conditions:
    95.     CondIsIDPlaying:
    96.       enabled: true
    97.       description: Check if a song with an ID is playing.
    98.       syntax:
    99.       - (song|track|music|noteblock) [with] id %string% (1¦is|2¦is(n't| not)) playing
    100.     CondPlayerCanHear:
    101.       enabled: true
    102.       description: Check if a song is playing for a user.
    103.       syntax:
    104.       - '%player% (1¦[does] ha(s|ve)|2¦do[es](n''t| not) have) [a[n[y]]] (song|track|music|noteblock)[s]
    105.         playing'
    106.     CondPlayerInRange:
    107.       enabled: true
    108.       description: Check if a minecraft player is in range of the position song player.
    109.       syntax:
    110.       - '%player% (1¦is|2¦is(n''t| not)) in range [of [the]] position song[ ]player
    111.         %positionsongplayer%'
    112.       - '%player% (1¦can|2¦can(n''t| not)) hear [the] position song[ ]player %positionsongplayer%'
    113.     CondSongPlayerPlaying:
    114.       enabled: true
    115.       description: Check if a song is playing for a user.
    116.       syntax:
    117.       - song[ ]player %songplayer% (1¦is|2¦is(n't| not)) playing [a[n[y]]] (song|track|music|noteblock)[s]
    118.   Effects:
    119.     EffPositionSongPlayerTick:
    120.       enabled: true
    121.       description: Play a tick of a song to the user(s).
    122.       syntax:
    123.       - play tick %number% from [position song[ ]player] %positionsongplayer% to %players%
    124.     EffPlayerStopPlaying:
    125.       enabled: true
    126.       description: Stops a song from being played to the minecraft player(s). Doesn't
    127.         seem to work well, use the player list of a song player.
    128.       syntax:
    129.       - stop [a[n[y]]] (song|track|music|noteblock) [from [being] playing] (for|to)
    130.         %players%
    131.     EffPauseSong:
    132.       enabled: true
    133.       description: Pause a song with an ID.
    134.       syntax:
    135.       - (stop|pause) [note[[ ]block]] song[s] with id[s] %strings%
    136.     EffPlaySong:
    137.       enabled: true
    138.       description: Play a song with an ID.
    139.       syntax:
    140.       - (resume|play|continue) [note[[ ]block]] song[s] with id[s] %strings%
    141.     EffDestroySongPlayer:
    142.       enabled: true
    143.       description: Destory/Remove the song player(s).
    144.       syntax:
    145.       - (destroy|remove) [note[[ ]block]] song[ ]player[s] %songplayers%
    146.     EffStartSong:
    147.       enabled: true
    148.       description: Plays a new song for a user with an optional ID system to be able
    149.         to easily manage the song being played.
    150.       syntax:
    151.       - (start|play) [new] [note[[ ]block]] [song] %song% to %players% [with id %-string%]
    152.   PropertyExpressions:
    153.     ExprPositionSongPlayerDistance:
    154.       enabled: true
    155.       changers: '[SET]'
    156.       description: Returns the distance that the position song player(s) can be heard
    157.         from. The default distance is 16.
    158.       syntax:
    159.       - '[(all [[of] the]|the)] [sound] (distance|range)[s] of position song[ ]player[s]
    160.         %positionsongplayers%'
    161.       - '%positionsongplayers%[''s] position song[ ]player[s] [sound] (distance|range)[s]'
    162.     ExprPlayerVolume:
    163.       enabled: true
    164.       changers: '[SET]'
    165.       description: Returns the volume of the user(s). This is like a preference system
    166.         for each minecraft user.
    167.       syntax:
    168.       - '[(all [[of] the]|the)] sound volume[s] of [player[s]] %players%'
    169.       - '%players%[''s] [player[s]] sound volume[s]'
    170.     ExprSongDescription:
    171.       enabled: true
    172.       description: Returns the description of the song(s).
    173.       syntax:
    174.       - '[(all [[of] the]|the)] desc[ription[s]] of song[s] %songs%'
    175.       - '%songs%[''s] song[s] desc[ription[s]]'
    176.     ExprSongHeight:
    177.       enabled: true
    178.       description: Returns the height of the song(s).
    179.       syntax:
    180.       - '[(all [[of] the]|the)] height[s] of song[s] %songs%'
    181.       - '%songs%[''s] song[s] height[s]'
    182.     ExprSongPlayerVolume:
    183.       enabled: true
    184.       changers: '[SET]'
    185.       description: Returns the volume of the song player(s).
    186.       syntax:
    187.       - '[(all [[of] the]|the)] volume[s] of song[ ]player[s] %songplayers%'
    188.       - '%songplayers%[''s] song[ ]player[s] volume[s]'
    189.     ExprSongPlayerTick:
    190.       enabled: true
    191.       changers: '[SET]'
    192.       description: Returns the tick that the song player(s) are currently on.
    193.       syntax:
    194.       - '[(all [[of] the]|the)] [playing] tick[s] of song[ ]player[s] %songplayers%'
    195.       - '%songplayers%[''s] song[ ]player[s] [playing] tick[s]'
    196.     ExprSongPlayerSong:
    197.       enabled: true
    198.       description: Returns the song currently playing in the song player(s).
    199.       syntax:
    200.       - '[(all [[of] the]|the)] (song|track|music)[s] of song[ ]player[s] %songplayers%'
    201.       - '%songplayers%[''s] song[ ]player[s] (song|track|music)[s]'
    202.     ExprSongPlayerFadeTarget:
    203.       enabled: true
    204.       changers: '[SET]'
    205.       description: Returns the fade target of the song player(s).
    206.       syntax:
    207.       - '[(all [[of] the]|the)] fad(e|ing)[ ]target[s] of [song[ ]player[s]] %songplayers%'
    208.       - '%songplayers%[''s] [song[ ]player[s]] fad(e|ing)[ ]target[s]'
    209.     ExprSongDelay:
    210.       enabled: true
    211.       description: Returns the delay of the song(s) if they have a delay.
    212.       syntax:
    213.       - '[(all [[of] the]|the)] delay[s] of song[s] %songs%'
    214.       - '%songs%[''s] song[s] delay[s]'
    215.     ExprSongPlayerFadeDuration:
    216.       enabled: true
    217.       changers: '[SET]'
    218.       description: Returns the fade duration time of the song player(s).
    219.       syntax:
    220.       - '[(all [[of] the]|the)] fad(e|ing)[ ](duration|time)[s] of [song[ ]player[s]]
    221.         %songplayers%'
    222.       - '%songplayers%[''s] [song[ ]player[s]] fad(e|ing)[ ](duration|time)[s]'
    223.     ExprNoteBlockSongPlayerDistance:
    224.       enabled: true
    225.       changers: '[SET]'
    226.       description: Returns the distance that the noteblock song player(s) can be heard
    227.         from. The default distance is 16.
    228.       syntax:
    229.       - '[(all [[of] the]|the)] [sound] (distance|range)[s] of note[ ]block song[
    230.         ]player[s] %noteblocksongplayers%'
    231.       - '%noteblocksongplayers%[''s] note[ ]block song[ ]player[s] [sound] (distance|range)[s]'
    232.     ExprSongSpeed:
    233.       enabled: true
    234.       description: Returns the speed/tempo of the song(s).
    235.       syntax:
    236.       - '[(all [[of] the]|the)] (tempo|speed)[s] of song[s] %songs%'
    237.       - '%songs%[''s] song[s] (tempo|speed)[s]'
    238.     ExprSongPlayerFade:
    239.       enabled: true
    240.       changers: '[SET]'
    241.       description: Returns the fade type of the song player(s). The fade type is how
    242.         the song fades. Currently there is only linear
    243.       syntax:
    244.       - '[(all [[of] the]|the)] fad(e|ing)[[ ]type][s] of [song[ ]player[s]] %songplayers%'
    245.       - '%songplayers%[''s] [song[ ]player[s]] fad(e|ing)[[ ]type][s]'
    246.     ExprSongPlayerCategory:
    247.       enabled: true
    248.       changers: '[SET]'
    249.       description: Returns the song currently playing in the song player(s).
    250.       syntax:
    251.       - '[(all [[of] the]|the)] (song|track|music)[s] of song[ ]player[s] %songplayers%'
    252.       - '%songplayers%[''s] song[ ]player[s] (song|track|music)[s]'
    253.     ExprSongTitle:
    254.       enabled: true
    255.       description: Returns the title of the song(s).
    256.       syntax:
    257.       - '[(all [[of] the]|the)] (name|title)[s] of song[s] %songs%'
    258.       - '%songs%[''s] song[s] (name|title)[s]'
    259.     ExprSongAuthor:
    260.       enabled: true
    261.       description: Returns the author of the song(s).
    262.       syntax:
    263.       - '[(all [[of] the]|the)] (author|creator)[s] of song[s] %songs%'
    264.       - '%songs%[''s] song[s] (author|creator)[s]'
    265.     ExprSongPlayerFadeFinish:
    266.       enabled: true
    267.       changers: '[SET]'
    268.       description: Returns the fade finishing time of the song player(s).
    269.       syntax:
    270.       - '[(all [[of] the]|the)] fad(e|ing)[ ]((finish|end)[ing]|done) [time][s] of
    271.         [song[ ]player[s]] %songplayers%'
    272.       - '%songplayers%[''s] [song[ ]player[s]] fad(e|ing)[ ]((finish|end)[ing]|done)
    273.         [time][s]'
    274.     ExprPositionSongPlayerTarget:
    275.       enabled: true
    276.       changers: '[SET]'
    277.       description: Returns the location of the position song player(s).
    278.       syntax:
    279.       - '[(all [[of] the]|the)] (target [location]|location)[s] of position song[
    280.         ]player[s] %positionsongplayers%'
    281.       - '%positionsongplayers%[''s] position song[ ]player[s] (target [location]|location)[s]'
    282.     ExprNoteBlockSongPlayerBlock:
    283.       enabled: true
    284.       changers: '[SET]'
    285.       description: Returns the actual noteblock block of the noteblock song player(s).
    286.       syntax:
    287.       - '[(all [[of] the]|the)] [note[ ]]block[s] of position song[ ]player[s] %noteblocksongplayers%'
    288.       - '%noteblocksongplayers%[''s] position song[ ]player[s] [note[ ]]block[s]'
    289.     ExprSongLength:
    290.       enabled: true
    291.       description: Returns the length of the song(s).
    292.       syntax:
    293.       - '[(all [[of] the]|the)] length[s] of song[s] %songs%'
    294.       - '%songs%[''s] song[s] length[s]'
    295.     ExprSongPlayerListeners:
    296.       enabled: true
    297.       changers: All changers
    298.       description: Returns the listeners of the song player(s).
    299.       syntax:
    300.       - '[(all [[of] the]|the)] (player|listener)[s] of song[ ]player[s] %songplayers%'
    301.       - '%songplayers%[''s] song[ ]player[s] (player|listener)[s]'
    302.     ExprSongPlayerPlaying:
    303.       enabled: true
    304.       changers: '[SET]'
    305.       description: Returns if the song player(s) are playing or not.
    306.       syntax:
    307.       - '[(all [[of] the]|the)] [music] playing [state[s]] of song[ ]player[s] %songplayers%'
    308.       - '%songplayers%[''s] song[ ]player[s] [music] playing [state[s]]'
    309.     ExprSongPlayerAutoDestory:
    310.       enabled: true
    311.       changers: '[SET]'
    312.       description: Returns if the song player(s) should destroy on finish.
    313.       syntax:
    314.       - '[(all [[of] the]|the)] [auto] destroy[s] of song[ ]player[s] %songplayers%'
    315.       - '%songplayers%[''s] song[ ]player[s] [auto] destroy[s]'
    316.     ExprSongPlayerFadeStart:
    317.       enabled: true
    318.       changers: '[SET]'
    319.       description: Returns the fade starting time of the song player(s).
    320.       syntax:
    321.       - '[(all [[of] the]|the)] fad(e|ing)[ ]start[ing] [time][s] of [song[ ]player[s]]
    322.         %songplayers%'
    323.       - '%songplayers%[''s] [song[ ]player[s]] fad(e|ing)[ ]start[ing] [time][s]'
    324.     ExprSongLayer:
    325.       enabled: true
    326.       description: Returns the layers of the song(s). The layers are like a chart
    327.         of all the notes.
    328.       syntax:
    329.       - '[(all [[of] the]|the)] layers of [song[s]] %song%'
    330.       - '%song%[''s] [song[s]] layers'
    331.     ExprLayerName:
    332.       enabled: true
    333.       changers: '[SET]'
    334.       description: Returns the name of the layer(s).
    335.       syntax:
    336.       - '[(all [[of] the]|the)] name[s] of layer[s] %layers%'
    337.       - '%layers%[''s] layer[s] name[s]'
    338.     ExprLayerVolume:
    339.       enabled: true
    340.       changers: '[SET]'
    341.       description: Returns the volume of the layer(s).
    342.       syntax:
    343.       - '[(all [[of] the]|the)] volume[s] of layer[s] %layers%'
    344.       - '%layers%[''s] layer[s] volume[s]'
    345.     ExprNotePitch:
    346.       enabled: true
    347.       description: Returns the pitch(s) of the Note(s). The return number is from
    348.         a byte.
    349.       syntax:
    350.       - '[(all [[of] the]|the)] pitch[s] of note[s] %notes%'
    351.       - '%notes%[''s] note[s] pitch[s]'
    352.     ExprNoteInstrument:
    353.       enabled: true
    354.       changers: '[SET]'
    355.       description: Returns the instrument(s) of the Note(s). The return number is
    356.         from a byte.
    357.       syntax:
    358.       - '[(all [[of] the]|the)] instrument[s] of [note[s]] %notes%'
    359.       - '%notes%[''s] [note[s]] instrument[s]'
    360.     ExprNoteKey:
    361.       enabled: true
    362.       changers: '[SET]'
    363.       description: Returns the key(s) of the Note(s). The return number is from a
    364.         byte. Key is what can be used to get the pitch. Subtract it by 33 or just
    365.         use the pitch from note syntax.
    366.       syntax:
    367.       - '[(all [[of] the]|the)] key[s] of note[s] %notes%'
    368.       - '%notes%[''s] note[s] key[s]'
    369.   Enums:
    370.     FadeType:
    371.       names:
    372.       - fade linear, fade straight, linear, straight
    373.       user: fadetypes?
    374.     SoundCategory:
    375.       names:
    376.       - master
    377.       - music
    378.       - record, records
    379.       - weather
    380.       - block, blocks
    381.       - hostile, monsters
    382.       - neutral
    383.       - player, players
    384.       - ambient
    385.       - voice, narrator
    386.       user: soundcategor(y|ies)
    If anyone runs into any issues/bugs or would like help, please private message a developer of FunkySk or use the discussion page. Provide as much information as you can about the issue/bug. Thanks.

Recent Updates

  1. Update to 1.15.2
  2. Update to 1.15
  3. Bug fixes

Recent Reviews

  1. Kangdil
  2. Hexivoid
    Hexivoid
    5/5,
    Version: 1.0.1c
    Works great! :D <3

    Well... now I have to think of something that brings me up to 50 characters...
  3. FunkyMoneyMan
    FunkyMoneyMan
    5/5,
    Version: 1.0.0
    Named after me :D. Sad that I can't make any songs of my own because I got a mac but whatever
    1. LimeGlass
      Author's Response
      Thanks for the review