MiSK by Moderocky

A Miscellaneous Addon for Skript 1.14+

Events

49

Expressions

1

Effects

2

Conditions

0

Types

0

Sections

0

Structures

0

Total

52

Big Re-work, better handling, fixed several bugs. New Villager syntax! 1808 days, 10 hours and 34 minutes ago

Although not a huge amount was added, this is probably the first release that I'm pretty confident is stable.
I also streamlined how the merchant/villager syntax is handled. Instead of registering merchants and villagers separately, they're now able to be used in the same patterns.
There's not actually a noticeable difference there, but it cut down the file size by a bit and it's a much better practice.
From now on, I'm going to do proper change-logs as well.

So, here we go!

Fixes:

  • All syntax that accepted %integer% now works properly
  • Fixed a conflict with skript-mirror 2.0's type
  • Fixed a types conflict between lootable objects and entities
  • Fixed several issues in the "disable" and "remove" effects
  • Fixed a few minor pathfinder issues

Additions:
  • Guardian beams now have a higher range limit (in theory)
  • Recipe properties now have some new handlers (see docs)
  • You no longer have to specify whether an object is a merchant or a villager, but you can if you want
  • New villager syntax: change profession, type (appearance), level and experience
  • Added a stop pathfinding effect
  • Price multiplier, uses and max uses syntax
  • You can now clear trades rather than using an empty list, but both do the same thing

Plans:
  • I've added a lot of new entity-handling stuff, some new pathfinder goals thingies
  • I'd expect another week or so before I can get the old SkStuff syntax working properly


I'd recommend you update ASAP. There were a lot of minor fixes. I also refactored things about five times between 0.3.5 and this, as well as cleaning up my code a bit.

As usual, any bugs -> discord me, or message me here. :)

View Update

Big Update! Guardian Lasers + Entity Syntax :D 1809 days, 17 hours and 59 minutes ago

In this update, I introduce the first test of Guardian Lasers into Skript! These are notoriously hard to do, and I had to get a little help from SkytAsul and his amazing library! :)

As well as this, I also laid the foundations for some cool entity syntax and conditions that might make life easier for people.

As vanilla Skript can't use NMS methods (due to licence issues) there are many other methods available to addon-makers.


Guardian Laser:

draw (guardian beam|laser) from %location% to %location% [[and] keep] for %integer% second[s]


Entity Conditions:

fire[ ]proof[ed]
# Checks whether an entity can be damaged by fire.
# Nether entities and things with fire resistance can't be.
# This only counts default Minecraft behaviour.
# If you have some strange plugin or system, it might miss it!

interactable
# I'm not 100% sure what this means.
# It seems to be whether you can interact with the entity in some way.
# Such as feeding it, or equipping it.

in water
# Checks whether an entity is in water.
# This includes waterlogged blocks, and partially submerged.

wet
# See above, but also if they are in rain.
# Useful to check if players can use their riptide/channelling enchantments!

[a] passenger
# Checks whether an entity is a passenger.

[a] vehicle
# Checks whether an entity is a legal vehicle.

swimming
# Checks whether an entity is swimming.
# I presume this refers to the 1.13+ swimming style


Entity Effects:

mount %entities% on %entity%
# Forces an illegal mounting.
# Use this to stack multiple passengers on a single entity.
# Use with CAUTION!

make %entities% invisible
make %entities% visible
# Toggles the visibility of an entity.
# Works like armour stand visibility.

move %entities% to %location%
# This forces an illegal in-world move.
# It's not a teleport, so entity passengers won't be dismounted.
# It also won't cause player screens to flicker.
# Use with CAUTION!

set [the] silent state of %entities% to %boolean%
# Toggle the noise of entities.
# True = silent
# False = noisy

set [the] swimming state of %entities% to %boolean%
# Toggles the swimming state of entities.
# True = swimming
# False = not swimming



I would like to add my syntax to the main docs sites, but I got a lot of push-back from other addon developers.
I'll keep asking, though. :)

As usual, let me know of any issues/suggestions.
My discord is Moderocky#0001

View Update

Quick Fix // For Paper -42 Users 1810 days, 12 hours and 16 minutes ago

Had to fix something to make this compatible with the latest Paper -42 build.
No idea why, but apparently it didn't like my merchant expression.

Normal Spigot users should have been unaffected, but I'd advise you to update anyway! :)

View Update

Entity Navigation + New 1.14 Inventory GUIs 1810 days, 16 hours and 1 minute ago

In this update, I've added the first of basic entity pathfinding and navigation.
Soon I will add the old SkStuff goals.

As well as this, I've also added all the new 1.14 inventory types to use as GUIs in Skript, as well as some other old ones (though might be unstable).

Some of these don't actually function (such as smokers and lecterns) and are entirely visual. Perhaps you will find a use for them!

New Syntax:


make %entities% walk to %location% [at speed %-number%]
make %entities% walk to %entity% [at speed %-number%]
# speed should be between 0.1 and 3, values outside this are dangerous but may work.
# the maximum distance depends on the Entity Tracking Range in your server config!
# This only works on animals/mobs
# armorstands, players, etc. do not work, and might return a big error. I'm not sure if I caught all of these.

open hopper named %string% to %players%
open dropper named %string% to %players%
open dispenser named %string% to %players%
open barrel named %string% to %players%
# containers

open ender chest named %string% to %players%
open grind[ ]stone named %string% to %players%
open lectern named %string% to %players%
# these are fake and might cause errors, use with caution!

open blast furnace named %string% to %players%
open smoker named %string% to %players%
# these don't actually smelt items, sadly :(

open loom named %string% to %players%
open cartography table named %string% to %players%
open stonecutter named %string% to %players%
# these might work! :)


I hope you enjoy! As usual, contact me if you find any bugs/problems or have suggestions for future updates.

View Update

Quick Fix // Sorry :( 1812 days, 7 hours and 24 minutes ago

Accidentally pushed from the wrong branch, and compiled with a couple of untested parts in. This one should work better/safer.

View Update

New Effects + Events 1812 days, 7 hours and 47 minutes ago

Making use of 1.14's snowball properties, you can now shoot a snowball that is disguised as an item.

New Additions:


make %entities% shoot %itemtype% [at speed %-number%]

For example:

make player shoot stick at speed 1


As well as this, there is a new Horse Jump event, which is not present in any other addon.

on horse jump:
# event-entity is the horse


You can now manipulate loot tables, and containers!
Lock/Unlock a container/tile entity (chests, barrels, furnaces, etc.)
lock %blocks% with [key] %string%

unlock %blocks%

%blocks% (is|are) locked



If you use PaperSpigot, you now have a loot-replenish event.
loot re(plenish|fill)[ing]



What's next?
  • More loot-table syntax
  • SkStuff's Pathfinders updated to 1.14
  • Persistent Data Containers

View Update

MiSK (Discontinued) 1812 days, 7 hours and 47 minutes ago

Misk - A Miscellaneous Addon

For Skript 1.14.1+


The purpose of this addon is to add a few bits and pieces of syntax that aren't present in vanilla Skript or in other add-ons.
Over time, I will also update syntax from abandoned add-ons, such as SkStuff.

Requirements (Things you must have!)


    Soft Dependencies (Recommended!)


      WARNING: This is a new release. There may be bugs. Please read the instructions at the bottom of this post, if you find one. :emoji_frowning:


      Current features (Currently in the plugin, available for use)


        Pipeline features (Partially finished)


          Planned features (Not started)


            Images and Examples (from my server)

            A Wandering Trader with custom recipes. Wait! That's illegal.



            A Custom Merchant Object using 1.14's new model data. Check out my custom item registry resource for more info.

            https://cdn.moderocky.com/mov/misk_ravager.mp4
            An example of controllable Ravagers, using the on vehicle steer: event with ProtocolLib.



            Official Documentation and Syntax?
            Click Here


            Custom Merchant:

            command /blob:
            trigger:
            set {_m} to a new merchant named "Trader"
            add (a new trade of (2 of gold ingot) and (stone) for (iron ingot named "bob")) to {_r::*}
            add (a new trade of (1 of gold ingot) and (air) for (gold ingot named "fred")) to {_r::*}
            add trades {_r::*} to merchant {_m}
            open merchant {_m} to player


            Locking a chest:

            on rightclick on chest:
            player's tool is stick
            cancel event
            lock clicked block with key "key name"
            broadcast "a chest was locked!"
            # you can now open this chest ONLY if your tool is named "key name"! :D


            Villager Trade Editing:

            set {_e} to target entity
            set {_r} to a new trade of stone and stick for slimeball
            add trade {_r} to villager {_e}


            Vehicles:
            (ProtocolLib)
            on vehicle steer:
            event-string is "SPACEBAR"
            push player's vehicle up at speed 10
            # maybe don't try this, else you'll end up in space...
            # this can be used to make controllable vehicles
            # if you need help/examples, you can ask me :)




            The plugin contains a MerchantUtils class.
            You can use this to easily mess with CMOs and villagers, as well as using syntax that isn't publically available yet!

            These are designed to simplify Bukkit methods. They will not change between versions (as Bukkit methods sometimes do).

            Add this to the top of your skript:
            import:
            com.moderocky.misk.utils.LootTableUtils
            com.moderocky.misk.utils.SkriptUtils
            com.moderocky.misk.utils.MerchantUtils


            You can then use the following methods in your code:

            set {variable} to LootTableUtils.newSeed()
            # returns a Java Random



            set {variable} to SkriptUtils.getItemStack({item-here})
            # returns a real Bukkit itemstack



            set {list} to MerchantUtils.tradeList()
            set {list} to MerchantUtils.tradeList({recipes})
            # returns a mutable Java List for MerchantRecipes
            # the second allows you to add a pre-existing collection



            set {recipe} to MerchantUtils.disableRecipe({recipe})
            set {recipe} to MerchantUtils.enableRecipe({recipe})
            MerchantUtils.disableRecipe(merchant, integer)
            MerchantUtils.enableRecipe(merchant, integer)
            # allows you to disable individual recipes from a merchant or from a villager/wandering trader



            set {recipe} to MerchantUtils.getRecipe(merchant, integer)
            # returns a recipe at an index. Indices go from 0+, like inventory slots



            MerchantUtils.merchant()
            MerchantUtils.merchant(name)
            MerchantUtils.merchant(tradelist)
            MerchantUtils.merchant(name, tradelist)
            MerchantUtils.merchant(recipes[ ])
            MerchantUtils.merchant(name, recipes[ ])
            # Simple CMO creators for every situation
            # The last two accept a collection. It's just to cover every possibility

            MerchantUtils.openMerchant(player, merchant)
            # Simple CMO creators for every situation


            And our two favourites...

            MerchantUtils.setResult(merchant, integer, itemstack)
            MerchantUtils.recipeWithResult(merchantrecipe, itemstack)
            # Bukkit doesn't allow this by default, it took me a while to work around!
            # Remember that these take ITEMSTACKS. Use the getItemStack() method.



            MerchantUtils.tradeCreator(itemstack, itemstack, itemstack)
            # A LOT simpler than Bukkit's constructor. Also handles all the hard work for you.
            # Bukkit doesn't allow this by default, it took me a while to work around!
            # Remember that these take ITEMSTACKS. Use the getItemStack() method.




            Found a Bug?!?


              If the answer to these is yes, then you should contact me!
              Discord: Moderocky#0001

              If you find a bug, contact me here or on discord: Moderocky#0001 and you can get support.

              Got a suggestion/feature request?
              Contact me on Discord!

              Need Skript help?
              SkUnity Discord: https://discord.gg/RBhvPG8

              View Update

              © Copyright 2014-2024 skUnity

              All rights reserved.