Skellett - The beast addon!

Addon Skellett - The beast addon! 2.0.10

  • 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!

Added:
- Beta support for SQLite or any SQL driver. You can now input your class path and SQLite option.
- Added create a blank map.

Fixed:
- Fixed a critial bug when connecting to MySQL using the connect syntax.
- Small bugs

Syntax:
code_language.skript:
Expressions:
      
    #Returns a new blank map created for a world
    [skellett] [a] new map[[ ]view] (for|from|with) [world] %world%
I made the Stylish scoreboards anti-flicker. No changes to the syntax or anything. I just rewrote the system so it doesn't flicker anymore :emoji_grinning:

I have tested it and with a TPS of 19.95+ you will get no flicker at all. But if you start to drop FPS like below 19.95 you start to see some flicker. This only happens when you contantly update the scoreboard ticks at a time like in this video. It won't flicker at all if you don't update by a tick everytime.

In this video i'm updating 15 lines every tick. Which is insane and you can see no flicker running 19.96+ tps (In the video) but when it drops like I said you will notice flicker. This is shown in the video.


Example script:

code_language.skript:
function animate(p: player):
    add "&a", "&b", "&c", "&d", "&e", "&1", "&2", "&3", "&4", "&5", "&6", "&7", "&8", "&9" and "&f" to {_d::*}
    set {_t} to "This is some text made for testing yeeeeeeeeeeeeeee!"
    set {_num} to a random integer out of {list::*}
    remove {_num} from {list::*}
    #set {_time} to "%random integer between 1 and 3% ticks" parsed as timespan
    loop (the length of {_t}) times:
        wait a tick
        set {_s} to subtext of {_t} from characters loop-number to (loop-number + 32)
        set the text of id "%{_p}%Slot%{_num}%" to "%{_d::%{_num}%}%&6%{_s}%"
command /testing:
    trigger:       
        add "&a", "&b", "&c", "&d", "&e", "&1", "&2", "&3", "&4", "&5", "&6", "&7", "&8", "&9" and "&f" to {_d::*}
        if stylish scoreboard "T-%player%" does not exist:
            create new stylish scoreboard named "T-%player%"
            loop 15 times:
                if loop-number is not 15:
                    add loop-number to {list::*}
                create a new id based score "%player%Slot%loop-number%" with text "%{_d::%loop-number%}%" slot loop-number for stylish scoreboard "T-%player%"
        set title of stylish scoreboard "T-%player%" to "&a&lSkellett"
        set stylish scoreboard of player to "T-%player%"
        set the text of id "%player%Slot15" to "&a&lSkellett stylish scoreboards ftw"
        loop 50 times:
            animate(player)
            wait "%random integer between 1 and 10% ticks" parsed as timespan
        delete {list::*}
        wait a second
        message "done"
        loop 15 times:
            delete the id based score "%player%Slot%loop-number%" in stylish scoreboard "T-%player%"
        delete stylish scoreboard "T-%player%"
        loop 15 times:
            delete the id based score "%player%Slot%loop-number%" in stylish scoreboard "TEST-%player%"
        delete stylish scoreboard "TEST-%player%"

If you find any bugs with the stylish scoreboards please tell me and downgrade to 1.8.1.

Hope you enjoy!

Make something cool with stylish scoreboards? Send me a gif/image I would love to see it :emoji_grinning:
Thanks to @Sashie for guiding me as to where the methods where :emoji_grinning:

Added:

- Clientside world borders. This means that these borders are only seen to a player.

Fixed:
- Some bug fixes

Syntax:

code_language.skript:
Client borders:

    Expressions:
     
        #Changers: set (Location)
        #Info: The location ignores the y coordinate
        [client [side]] [world] border center [location] (for|of) %player%
        %player%'s [client [side]] [world] border center [location]
     
        #Changers: set, add, remove and reset (Number)
        #Info: Resetting it returns it to like how a new border would be made
        [client [side]] [world] border size (for|of) %player%
        %player%'s [client [side]] [world] border size
     
        #Changers: set, add, remove and reset (Number)
        #Info: Resetting it returns it to like how a new border would be made
        [client [side]] [world] border [damage] buffer (for|of) %player%
        %player%'s [client [side]] [world] border [damage] buffer
     
        #Changers: set, add, remove and reset (Number)
        #Info: Resetting it returns it to like how a new border would be made
        [client [side]] [world] border damage [amount] (for|of) %player%
        %player%'s [client [side]] [world] border damage [amount]
     
        #Changers: set, add, remove and reset (Integer)
        #Info: Resetting it returns it to like how a new border would be made
        [client [side]] [world] border warning [time] (for|of) %player%
        %player%'s [client [side]] [world] border warning [time]
     
        #Changers: set, add, remove and reset (Integer)
        #Info: Resetting it returns it to like how a new border would be made
        [client [side]] [world] border warning distance (for|of) %player%
        %player%'s [client [side]] [world] border warning distance
Example script:
code_language.skript:
command /b:
    trigger:
        set client border warning distance of player to 100
        set client border center location of player to player's location
        broadcast "&6%client border center location of player%"
        broadcast "%client border size of player%"
        loop 20 times:
            set client border size of player to loop-number
            broadcast "%client border size of player%"
            wait a second
        reset client border warning distance of player
Info:
- There are two new config options added. The first one is to save and get any changes that were made when using the using client borders. You can enable and disable this. The second option is to change the client borders into world borders. You can make the worldborders act like normal borders aswell.

#SpreadLoveForGavin
This update doesn't add much for the spigot side of things. This version is mainly used to support the new SkellettProxy update. You can read more about it here https://forums.skunity.com/resources/skellettproxy.87/update?update=225

I fixed a few small bugs though.

Enjoy and thanks for over 300 downloads :emoji_grinning: It means alot. Thank you.
  • Like
Reactions: FUZIK
Added:
- Update inventory
- Open book client side
- Hitbox sizes of entities
- Player viewing credits
- Entity in water
- Full spawner support

Fixed:
- Add page with string not working
- More null pointers

Syntax:
code_language.skript:
Effects:
 
   update [the] (inventory|menu|gui) %inventory%
 
   open book %itemstack% to %player%
 
Expressions:
 
   [the] hitbox length of %entity%
   %entity%'s hitbox length
   [the] length of %entity%'s hitbox
 
   [the] hitbox width of %entity%
   %entity%'s hitbox width
   [the] width of %entity%'s hitbox
 
Conditions:

   [player] %player% (1¦is|2¦is(n't| not)) viewing [the] credits
 
   [entity] %entity% (1¦is|2¦is(n't| not)) in water

Spawners:

   Expressions:
 
       #Changers: set, add and remove (Integer)
       delay (of|from) spawner [at] %block%
       %block%'s spawn[er] delay
       spawn[er] delay (of|from) %block%
    
       #Changers: set (String)
       (entity|mob|creature) [type] (of|from) spawner [at] %block%
       %block%'s spawn[er] (entity|mob|creature) [type]
    
   Effects:
 
       (make|force) spawner [at] %block% to spawn [[a[n]] entity]
    
   Events:
 
       [on] spawner spawn:
        
           #Get the spawner used to spawn the entity
           event-block
        
           #Get entity spawned
           event-entity
Example script:
code_language.skript:
#command /egg:
#    trigger:
#        set {_p} to the eggwars player player
#        broadcast "%{_p}%"
command /hello:
    trigger:
        if enchantments of player's tool are set:
            loop all enchantments on player's tool:
                add "%loop-enchantment% %enchantment level of loop-enchantment in player's tool%" to {_enchantments::*}
            broadcast "%{_enchantments::*}%"
command /i <itemtype>:
    trigger:
        give player arg 1
#on npc rightclick:
#    if id of npc event-npc is 6:
#        make event-player execute command "say hi"
command /hi:
    trigger:
        open "HOPPER" to player
        wait 2 seconds
        open "BEACON" to player
#on join:
#    while player is online:
#        wait a second
#        if player is viewing the credits:
#            broadcast "&aYes"
#        else:
#            broadcast "no"
command /test: 
    trigger:
        skellett nms of target entity
command /example:
    trigger:
        if target entity is in water:
            broadcast "&bYes"
        else:
            broadcast "no"
command /spawnTest:
    trigger:
        set mob type of spawner target block to "Zombie"
        message "%mob of spawner target block%"
on spawner spawn:
    broadcast "%event-block%"
    broadcast "%event-entity%"
command /size:
    trigger:
        message "%target entity%: %hitbox length of target entity% x %hitbox width of target entity%"
command /search <text>:
    trigger:
        message " "
        loop all packettypes:
            if "%loop-value%" contains "%arg 1%":
                message "&6%loop-value%"
        message " "
command /openBook:
    trigger:
        set {_item} to slot player's current hotbar slot of player
        set slot player's current hotbar slot of player to a written book
        add page "&4&l&m-&a&l*&4&l&m__ &2&l&nSkellett&4&l&m __&a&l*&4&l&m-&r%nl%%nl%%nl%%nl%%nl%%nl%%nl%%nl%%nl%%nl%           &dHot" to player's tool
        open book player's tool to player
        set slot player's current hotbar slot of player to {_item}

Info:
- Skellett has had weekly updates for nearly 3+ months now. That's how we do it!
- I'm sick right now. So that may or may not decrease my productivity.
- I'm starting to play around with NMS stuff now. As you can tell by this update. None of it expect spawners can be obtained in Spigot. This all uses NMS with Reflections. Meaning you won't have to worry about Skellett breaking on version changes. Unlike the others. I will tend to keep it that way aswell.
- Everything in Spigot is pretty much possible in Skellett so i'm moving to NMS now. If you have any suggestions or things that are possible, feel free to tell me :emoji_grinning:

GG
Added:
- Custom name toggle
- Multiple slot expression

Fixed:

- Fixed creating scoreboard not working
- Fixed some bugs
- Fixed some null pointers

Changed:
code_language.skript:
[a] [new] (npc|citizen) [with] (name[d]|id|string) %string% [and] [with] [entity [type]] %string%
[a] [new] npc [with] [entity [type]] %string% [and] [with] (name[d]|id|string) %string%

Syntax:
code_language.skript:
Expressions:
 
    #Changers: set (Boolean)
    [skellett] custom name visib(le|ility) of %entity%
    [skellett] visib(le|ility) of %entity%'s custom name
   
    #Changers: set, reset, remove, remove all and delete (ItemStack)
    [items (from|of|in)] slots %numbers% (from|of|in) %inventory%
Added:
- Citizen get Npc by ID or Entity
- PlayerPoints support
- SkellettProxy online status

Fixed:
- Folders being generated when using the create file syntax or using yaml with a file that didn't exist.
- Fixed Seemless potion's syntax not working.
- Fixed a critical bug that made Skellett not work on 1.8-1.10 versions
- Fixed some null pointers

Syntax:


code_language.skript:
Npc:
    
    Expressions:
        
        [the] (npc|citizen) (of|from) entity %entity%
        
        [the] (npc|citizen) (of|from) [id] %number%

PlayerPoints:
    
    Expressions:
    
        #Changers: set, add, remove/subtract, remove all and delete
        [the] [player[ ]]points of [(player|uuid)] %string%
        [(player|uuid)] %string%'s [player[ ]]points
        
    Effects:
    
        pay %string% %number% [player[ ]]points from %string%['s account]
        [(force|make)] %string% [to] pay %number% [player[ ]]points to %string%
        
SkellettProxy:

    Expressions:
    
        [the] [(skellett[ ][(cord|proxy)]|bungee[ ][cord])] online [status] of (skellett[ ][(cord|proxy)]|bungee[ ][cord]) server %string%

Please note that you will need the latest SkellettProxy in order to use the new SkellettProxy syntax.
  • Like
Reactions: FUZIK
Yes it's true. For the first time in Skript history you will now be able to run ANY effect on another server connected to your bungeecord! This means cross variable sharing, Data transfering and so much more!

Added:

- CROSS BUNGEECORD EFFECT
- BETA BUNGEE EVENTS
- Full control over all servers and Bungeecord (Mainly a feature for myself)
- Communication between all servers
- Probably alot of bugs. If you find any please report

Fixed:
- Some bugs

Syntax:
code_language.skript:
[on] (skellett[ ][(cord|proxy)]|bungee[ ][cord]) player (disconnect|leave)

eval[uate] [skript] [code] %string% (on|from) [the] [bungee[ ][cord]] [server] %string%

Example script:
code_language.skript:
on script load:
    evaluate "set {testing} to ""&6&lYES""" on bungeecord server "Tests2"
    evaluate "broadcast ""&6&lWhat the actual ****!!!!!""" on bungeecord server "Tests2"
    broadcast "sent"
on bungee player leave:
    broadcast "%event-player%"


Info:
- I'm currently working on more bungeecord event plus event values for them. (This is litterally madness to code. Currently the events work but the event-values and data don't)
- I am planning on making bungeecord expressions aswell.
- If you find any bugs or small null pointers please notify me of it.
- Thank you for 100 downloads on SkUnity. It means alot <3
- Don't forget to leave a 5 star review as this is litterally madness right now :emoji_grinning:
- I have been working on this project for a week non stop. I have just been so hooked into making this a reality, well now it's finally a thing.
- The Bungee events are currently under beta testing. Feel free to try them if you please. You will need to setup a port and enable the Events node found in the SkellettProxy.yml all features from the events are in beta so just be cautious about that. They shouldn't be harmless to your server in any ways.

The string used for the server string in the Max players and Evaluate syntax is the name of the server from the server.properties. So if the name of a bungeecord connected server is Test2 is in the server.properties. That is what the string will be. If this is still confusing and you don't get how to make it work, feel free to contact me.

This version needs SkellettProxy 1.2.5+ to run

Leave a like xD
Added:
- Support for the new server watcher in SkellettProxy
- Added Max players of bungeecord server
code_language.skript:
[the] max[imum] [amount] [of] players for (skellett[ ][(cord|proxy)]|bungee[ ][cord]) server %string%
- Added get Entity from uuid
code_language.skript:
[skellett] entity (from [the]|of) (uuid|[universal] unique id) %string%

Fixed/Changed:
- Changed syntaxs
code_language.skript:
[skellett] [get] item[s] (of|in|inside|within) entity %entity%
[skellett] (size|number|amount) of item[[ ]stack] %itemstack%

Info:
If you use SkellettProxy you need the latest 1.2.4 update https://forums.skunity.com/resources/skellettproxy.87/update?update=127
Fixed/Changed:
- Changed syntax:
code_language.skript:
[skellett] (size|number|amount) of item[[ ]stack] %itemstack%
- A few null pointers
- SkellettProxy issue
- 1.8.8 issue
- Small syntax issues.

I have been doing alot of testing on minor things to make sure Skellett is as stable as can be :emoji_muscle: