1.8.2latestInternal ChangesNov 5, 2017 · Fixed conflicts with Skript dev32+. · Fixed issues from issues tacker. · Added support to use a list of permissions in execute command with permission effect. Example: Code (skript (Unknown Language)): execute player command "/cmd" with permissions "first.permission" and "second.permission" Internal changes: · Changed documentation generator system, cleaned the code and added support for other types of files (markdown, json and yaml). · Added an ID field for docs generator, useful for external docs tools. (Thanks to @eyesniper2) · Fixes for gui manager system. · Using gradle as dependency manager. · Changed the package from me.tuke.sktuke to com.github.tukenuke.tuske.1.8.1Important bug fixes.Jul 14, 2017 [+] Added: · Added support for on break event in effect cancel drops. It allows you to prevent the drops of event-block. (For 1.12+ only) [+] Fixed: · Fixed a issue with Advanced GUIs caused by the last update. If you are in TuSKe 1.8 and use advanced guis, it's recommended that you update it. · Some final fixes for Recipe Manager: Shapeless recipe now works fully to accept custom ingredients. · Also some fixes for recipes for 1.11.2 and lower: Due to code mistake, it wasn't properly checking its version, causing some console errors when registering recipes. It affects if you are in 1.12 too, due to key change of recipes from bukkit:%random uuid% to tuske:%increasing number (See last update changelog about it).1.81.12 Recipes support, fixes and small additions.Jul 1, 2017 [+] Added: · Expressions to create knowledge books containing recipes: Code (YAML): #A list of recipes of a knowledge book. Can be edited. knowledge (s| recipes ) of %itemstack% %itemstack%'[s] knowledge(s| recipes) #Returns a knowledge book with given recipes %itemstack% with [recipes] %recipes% · Added a syntax filter for evaluate effect. Read more about it at documentation or in TuSKe's config file. · Added support for version dependent stuffs (player data expression...). · Added support for 1.12 recipes: · It keeps the same if you are in 1.11.2 or lower, but now the recipes has ids and the recipes must be registered at server startup (in script/skript load event). Why? Because if a player joins a server and he has a recipe knowledge that was registered by TuSKe and it wasn't registered yet, it will spam your console saying that the recipe with id X couldn't be found. So to avoid it, you will need to register all your recipes at server startup. · Custom recipes doesn't show up in recipe book. Why? I don't know, maybe Bukkit forgot about it? · Since the recipes had some changes in 1.12 and they are supported now in TuSKe, if you used previous version in 1.12 server you might see some console spam saying that couldn't find a recipe X. This is because every TuSKe recipe will be registered with id tuske:%last recipe id + 1%, while previously bukkit registered them as bukkit:%random uuid%. · Added a simple expression to get the id and plugin owner of a recipe: Code (YAML): recipe id of %recipe% #For TuSKe it will return as 'tuske:%number%' while for vanilla as 'minecraft:%result item name%' recipe owner of %recipe% #It returns the plugin that registered this (old plugins will return as 'Bukkit') or vanilla recipe [=] Changed: · The slot parameter in effects from simple gui (format a gui slot ...) now is optional, which means it will format the next avaliable slot (not formatted yet). Code (YAML): ]format gui slot of player with stone #It will set the slot 0 format gui slot of player with stone #It will set the slot 1 #And so on... · Also, just another option, if you use value -1 it will format last slot id + 1. · Why -1? Because this is the only avaliable id (since slot goes from 0 to ...), and to not gets more confusing adding more syntaxes and stuffs. Code (YAML): ]format gui slot 10 of player with stone #Normal, slot 10 format gui slot -1 of player with stone #It will get the last slot + 1, in this case, slot 11. [#] Fixed: · Fixed issues for the effects with section, if the code inside of a section contains a delay effect (wait effect for example), it will wait the whole trigger instead of jumping to outside of section. · Currently only the create gui and evaluate effect was affected by this. · Fixed the expression rarity of %custom enchantment% not being registered. · Fixed some conflicts between types values. · Fixed ingredients of %recipe% not working for 1.12 due to API changes. · Fixed custom shapeless recipes not working properly in some cases. · Simple GUIs and Advanced GUIs shares the same new click listener: it disables itself and doesn't conflict with Skript when cancelling it. · Fixed local variables not working in run when close gui effect. · Fixed a long load time due to a issue while saving the config. Wow, that's the hugest fixes list I've released. Just download it above or uses /tuske to update.1.7.7Fixed conflicts between typesMay 29, 2017 [#] Fixed issue with conflicts between inventory type and gamemode (both had same value: creative). It's important to update it even if you didn't have that issue yet.1.7.6Fixed error from last updateMay 28, 2017 [#] Fixed a console error with format a gui slot ... to run gui event from last update.1.7.5GUI Manager 2, Custom Recipe fixes, Performance increased, Documentation generatorMay 28, 2017 [+] Added: · GUI Manager 2: New features, new syntaxes, faster and better. See the new tutorial · Option to remove a specific recipe. .SpoilerTarget">Spoiler: Example Code (skript (Unknown Language)): remove all recipes of {_tool} from all recipes loop all recipes of {_tool}: remove loop-recipe from all recipes - loop all recipes of {_tool}: delete loop-recipe #Remove from server reset loop-recipe #In case it is a custom recipe, it will delete only the custom recipe, #remainning the default vanilla recipe (where it only checks the id and data). · New evaluate effect: Some additions compared the one from SkQuery. .SpoilerTarget">Spoiler: Example Syntax: Code (skript (Unknown Language)): evaluate [logging [[the] error[s]] in %variable list%]: (%strings%|<.+>) Description: It allows you to parse a string as skript code and execute it. The main difference is that it does support multiple lines at once and can be parse a code from a section, examples: Code (skript (Unknown Language)): evaluate: "kill player" evaluate: "broadcast ""Hello""" #Using quotes evaluate: broadcast "Hello" #Quotes not needed, it can parse directly from it set {_effect} to "send" evaluate: if player is a op: %{_effect}% "True" #Before parsing the code, it will convert all expressions/variables to text evaluate logging errors in {_errors::*}: "this is not a valid Skript effect/condition" if {_errors::*} is set: #It will contains a skript error loop {_errors::*}: send loop-value # The error message format is: # <Error message>: <wrong expression> (TuSKe/evaluate.sk, line <line of code>, '<whole line>') # The file 'TuSKe/evaluate.sk' is fictitious, it doesn't create one. · Added documentation generator for all addons. · It will create a file containing everything from a addon separated. · Some useful informations like return type and changers of an expression, event values of an event and the possible values of a type. All types have its own file separated since is not possible to determine which addon it is from. · Also, there is a new online documentation at wiki page. This is a working progress of automatic documentation generator. · Added new event for SimpleClans: Code (YAML): [on] clan chat : #It is called when a player say something in private clan chat. player : Who sent the message event-clan : The clan, the same as "player's clan" event-string : The message. Currently it can't be setted (I forgot about that ). Next release I will make a expression for it cancellable [=] Changed · Better performance changes. · More self triggable stuffs. What does it means? Some stuffs that are only enabled when they are beeing used. · The custom events (on anvil merge, on anvil rename, on inventory move ...) is one of example above. Before, those events were based of inventory click event, where it was checking this event even when you are not using the custom events. But now, the listener is disabled if you are not using them. · The GUI Manager also follow that rules: It will only use the inventory click event when there is a GUI open. How does it works? · A GUI is opened to a player > The inventory checking is enabled for a single the player > The player closes the GUI > The inventory checking is disabled. · Some internal stuffs that uses that idea. [#] Fixed: · Fixes for Recipe Manager: · Throwing a console error when registering a shaped recipe. · Shapped recipes that are lower than 3x3 was returning missing air ingredients in ingredients of %recipe%. · Items with same ingredients (id an data) but with different nbt (name, lore ...) weren't working properly when crafting, now it does. But a warning · It has a visual bug when you have the condition above and you switch the ingredients to make 2 recipes different, sometimes the result item becomes invisible, but the item still there. I tried using update inventory of player but no success. · all commands was returning Skript commands as skript:<command>. · Fixed the updater, sometimes it doesn't check the version properly. If you didn't have problems with the updater, just execute /tuske update plugin or install it manually.1.7.3Update 1.7.3: Fixed effects with functionsFeb 24, 2017 [#] Fixed effects/expressions that was using a function in it (evaluate function and gui manager): · Throwing a error in case you were using new parser from Bensku's fork. · The function getting the last value in a loop.1.7.2Update 1.7.2: Fixed GUI function effect and new expression.Feb 22, 2017 [#] Fixed effects/expressions related to functions: Some effects was using a workaround to make possible to get a function (in GUI Manager specifically) and it was bugging sometimes when the function has complex parameters (more than one parameter or/and list parameters). For GUI Manager: Now it's possible to run a function even if it wasn't loaded yet or is below the code. So it's possible to make like this: Code (YAML): make gui slot 0 of player with stone to run function doSomething ( ) #Som lines below... function doSomething(i : int = 1 ) : broadcast "Hello there!" Or call the own function that the effect is inside: Code (YAML): function openGUI(p : Player, type : String ): if arg is "1" : open virtual chest inventory named "Example 1" to {_p } make gui slot 0 of {_p } with stone named "Go to page 2" to run function openGUI ( {_p }, "2" ) else if arg is "2" : open virtual chest inventory named "Example 2" to {_p } make gui slot 0 of {_p } with stone named "Go back to page 1" to run function openGUI ( {_p }, "1" ) [+] Added an expression to get the last attacker of a entity. Code (YAML): last attacker of %entity% %entity%'[s] last attacker Note: There is a possibility to this expression return a block, I tried some damages that is caused by blocks and I couldn't make it detect the Block. I'm not sure if it is normal or was fixed in new Spigot releases. This expression returns null if the entity didn't get any damage yet or wasn't caused by a entity. Code (YAML): on damage : send "%last attacker of victim%" to victim wait a tick send "%last attacker of victim%" to victim #The last attacker will be the 'attacker' because it is a tick later.1.7.1Update 1.7.1: Full recipe support, GUI Manager remade part one and general stuffs.Feb 14, 2017 Some of these things aren't new if you was using some beta releases. I plan to release some beta versions before release some big stuffs, so if you want to know what's new, just check there. Tl;DR: · Recipe support. · Damage modifiers. · A regex type. · Added general stuffs. · Fixed lot of things. [+] Added full recipe support. Minecraft doesn't check for name and lore of ingredients of a recipe. So, with that I decided to make some stuffs to make it possible So far, check out this wiki to see some informations about it. Code (skript (Unknown Language)): #Effects (create|register) [new] [custom] shaped recipe with (return|result) %itemstack% using [ingredients] %itemstacks% [with shape %strings%] (create|register) [new] [custom] shapeless recipe with (return|result) %itemstack% using [ingredients] %itemstacks% (create|register) [new] [custom] furnace recipe with (return|result) %itemstack% using [source] %itemstack% [with experience %number%] #Expressions: [the] shape of %recipe% [the] furnace level of %recipe% #This and the one above isn't too much necessary, just in case you want some recipe's info. recipe from ingredients %itemstacks% Note: Soonly, the expression result item of %itemstacks/recipe% won't accept the itemstacks anymore. Use recipe from ingredients %itemstacks% instead. Code (skript (Unknown Language)): #Previously: set {_resultItem} to result item of stone #will return a stone buttom #Now: set {_resultItem} to result item of recipe from ingredients stone Note 2: In the effects to register a shaped or shapeless recipe, you need to include the custom in the pattern, so it will accept custom ingredients. [#] Fixed the expression recipe from ingredients %itemstacks% (previously result item of %itemstacks%), not it can detect most of recipes easily only by its ingredients. [+] Added a expression to get damage modifiers. It is used in on death event. Code (skript (Unknown Language)): damage [modifier] %damage modifier% Type: Damage modifier: absorption - This represents the damage reduction caused by the absorption potion effect. armor - This represents the damage reduction caused by wearing armor. base - This represents the amount of damage being done. blocking - This represents the damage reduction caused by blocking, only present for Players. hard hat - This represents the damage reduced by a wearing a helmet when hit by a falling block. magic - This represents the damage reduction caused by the combination of: Armor enchantments Witch's potion resistance resistance - This represents the damage reduction caused by the Resistance potion effect. Example: Code (skript (Unknown Language)): on damage: if damage magic is set: clear damage magic #Will set the value to 0 else if damage armor is set: add 10 to damage armor You can add, remove and set values, clear/delete values is the same to set to 0 and reset will set the value to the first value before all changes. [+] Added a type %regex%. It is used in regex expressions to parse the regex pattern. Also added an expression to check what was wrong on last pattern. Code (skript (Unknown Language)): #Expression: [last] regex [parser] error #Example set {_regex} to "(.*" parsed as regex if last regex parser error is set: send regex error to player #It will show that the pattern doesn't have a closing bracket. set {_result} to regex replace "(.*)" with "$3" in "whatever" if last regex parser error is set: send regex error to player #It will send that there isn't any group 3 in the pattern. So this include to make a little change in all stuffs related to regex. to accept %string/regex% in the pattern, like Code (skript (Unknown Language)): %string% [regex] matches %string/regex% [+] Added general stuffs. Code (skript (Unknown Language)): #Expression: file [location] of command %string% command %string%'[s] file location offline player from [uuid] %string% #Only necessary in case you don't have latest Bensku's fork. [jukebox] record of %block% #Returns an itemstack, you can set it, but only the material, setting to air make the song stop #Effect: eject record [(of|from)] %block% #Stop the song and pull the record off [=] Changes: Code (skript (Unknown Language)): #From [all] commands #To [all] [registered] [script] commands If you use script in the pattern, the expression will return only the commands that came from Skript. [#] Fixed the auto update since the previous source to check changed the link. Now it checks in the github. Just update it with /tuske update plugin if you are 1.7-beta+.1.7Update v1.7: Fixes, removed an event and regex expressionsNov 7, 2016 I was hoping to release something new for v1.7, but I couldn't get it on time, so I will have to delay it. [+] Added 2 new expressions for regex things: Thanks @Syst3ms for the suggestion. Code (YAML): regex split %string% (with|using) [pattern] %string% #It returns a list of string, splitting by regex pattern #Example: set {_value::* } to regex split "&cColored &4thing &ehere" with pattern "&[a-f,A-F,0-9]" #Result: Colored, thing and here #Basically it will split by color codes regex replace [ all ] [pattern ] %string% with [group[[s][/s]s]] %string% in %string% #Replace a pattern with an group in some string. #To get the match group, you have to use '$<GroupIdMatch>' #Note: this is an expression, not a effect. #Example: set {_NumbersOnly } to regex replace all pattern ".(\d)+" with "$1" in "A1B2C3D4E5F6G7H8" #It will remove everything that isn't a number set {_NumbersOnly } to regex replace all pattern "&[a-f,A-F,0-9]" with "" in "&cColored &4thing &ehere" #It will remove all color codes for example [-] Completly removed the event on player start/stop move and the conditions of it, player is stopped/walking. It was supposed to be a test thing but it doesn't work great. Whenever I have time to fix it, I will put it again. [#] Fixed the expression virtual inventory. It was causing a console error if you don't have SkQuery. Probably there are more fixes that I don't remember. [-] Changed the syntax: From: Code (YAML): new %inventory type% inventory [with size %integer%] [with (name|title) %string%] To: Code (YAML): virtual %inventory type% inventory [with size %integer%] [(named|with (name|title)) %string%] Download at the top or use /tuske update plugin to update.1.6.9.6Update 1.6.9.5: Fixed conflict with Skript.Oct 21, 2016 [-] Changed: From: Code (YAML): %inventory type% [inventory] [with size %integer%] [with (name|title) %string%] To: Code (YAML): new %inventory type% inventory [with size %integer%] [with (name|title) %string%] The %inventory type% has a player value that was conflicting with some things and because the whole expression was basically optional. [#] Fixed the command/tuske ench give <Enchantment> <Level>. Actually I didn't even tested it if it is really fixed. But it was a simple mistake that was causing it, so it might work. Download at main page or update by command.1.6.9.5Update 1.6.9.5: GUI Event, Command Infos, Virtual Inventory,Oct 20, 2016 [+] Added new effects and expressions: · The expressiondropped experienceused forBlock Breakevent, now works withDeathandFurnace Extract(SharpSK) events.I will probably help to add this to Bensku's fork too because it already have a similiar expression for that. So basically: Code (YAML): on death of pig : clear dropped experiencie on furnace extract : #SharpSK add 100 xp to dropped experience · Expressions to get some info about commands. Code (YAML): [ all ] commands #Returns all registred commands #These ones are to get some commands info from Skript or other plugin's commands. #All of them could be edited, but I couldn't make it. I think it is only edited while #the server is loading, and I'm too lazy and without time to test it, maybe for next update. description of command %string% | command %string%'[s] description main [command ] of command %string% | command %string%'[s] main [command] permission of command %string% | command %string%'[s] permission permission message of command %string% | command %string%'[s] permission message aliases of command %string% | command %string%'[s] aliases plugin [owner ] of command %string% | command %string%'[s] plugin [owner] usage of command %string% | command %string%'[s] usage · A expression to return a blank inventory (See the comments below): Code (YAML): #This one I only did it cause it was a request, a lot of addons already have it. #It's just to complement the GUI Manager %inventorytype% [inventory] [with size %integer%] [with (name|title) %string%] #Notes: The size is the number of rows (from 1 to 6) and is only for chest type (obviously). #You can't open merchant, crafting and creative's inventories types. Why? Minecraft don't let it. #The type 'anvil' only works for 1.10 (I didn't tested with 1.9, but 1.8.8 doesn't work). Why? Bukkit bug. #The type 'beacon' doesn't work for any versions (I tested with git-Spigot-90f61bc-29e1d72 (MC: 1.10.2)). Why? Bukkit bug. #The types 'ender chest' is the same of chest with size 3 and 'player' is the same of chest with size 4. Why? Bukkit bug... wait no... just kidding, wrong copy and paste. The inventories types are the same of the Skript : chest, anvil, dropper, dispenser, enchanting, furnace, brewing and hopper. #You can use it with Open Inventory Effect · A interesting effect to register a master permission. Code (YAML): (register|create ) master permission %string% What doest it do? Simple: It will register a master permission, for example:MyScript.*, with that you can give the main permission for a palyer and it will works with all sub permissions likeMyScript.Admin,MyScript.Player... For example, if the player has permissionMyScript.*: Code (YAML): if player has permission "MyScript.*" : #True if player has permission "MyScript.Admin.*" : #True if player has permission "MyScript.Player.*" : #True if player has permission "MyScript.Main" : #True if player has permission "MyScript" : #False It is already used in normal plugins, but Skript didn't provide a way to make it. You don't need to register it twice(for example, register one forMyScript.*and another forMyScript.Admin.*), and you just need to make it once. · And an effect to make a player execute a command with a temporary permission (Same thing from last update, but in effect). Code (YAML): [execute ] [the ] %players% command %strings% with perm[ission] %string% [-] Removed the expression highest block at %location%, There is an addon (MundoSK) that already have it before I even make it. (And also I said that I was going to remove it a long time ago). [+] Edited: Added new effect and event for GUI Manager: Code (YAML): (format|create|make ) [a ] gui slot %numbers% of %players% with %itemstack% to run [gui click] event It will call a specific event when a player clicks on a gui slot: Code (YAML): [on ] gui (action|click ) #Values: player : the player who clicked on item. event-inventory : The inventory (can only be the top inventory, so ... ) event-number : The slot number event-item : the item in cursor of the player event-string : the click type (left, right ... ) Now you can make some cool customizable stuffs. Note: this event is only called when using the effect above. Well, those are the last things that I had saved, so nothing new for next month. Just download at main page or use /tuske update plugin if you have 1.6.7+. Actually, it will, that's why I named this update with 1.6.9.5 and not 1.7, I think it will be a cool new feature.1.6.9Update 1.6.9: New things and fixedOct 8, 2016 [+] Added new expressions and conditions: Code (YAML): #Conditions %livingentities% (is|are) [a] (hostile|neutral|passive) [mob] %livingentities% (is|are)(n't| not) [a] (hostile|neutral|passive) [mob] #Returns if a living entity is hostile/neutral/passive. #Note: neutral mobs can return true with "is hostile" condition #when they are in hostile condition: #e.g the light level at spider is less than 10, a wolf is close of a sheep %livingentities% (is|are) ageable %livingentities% can grow up %livingentities% (is|are)(n't| not) ageable %livingentities% can(n't| not) grow up #Returns true if the living entity has a baby form. %livingentities% (is|are) tameable %livingentities% (is|are)(n't| not) tameable #Returns true if the living entity can be tamed. #Expressions [ all ] [registred ] recipes #return a list of all recipes of server. #You need to use the other expressions to get the result/ingredients [the ] last color of %string% %string%'[s] last color #Return the last color of the string. #In "&cSomething &areally &4&lcool" will return the "&4&l" split %string% (with|by|using) %number% char[aracter][s] %string% [split] (with|by|using) %number% char[aracter][s] #It will split the sting separating by number of char. #It's useful to send message (Use 60 in %number% for chat) #or set the lore of items #e.g.: In "Some cool text here" using 10 char, it will return "Some cool " and "text here" A new effect and event for GUI Manager: (format|create|make) [a] gui slot %integer% of %players% with %itemstack% to run [gui click] event It will call a specific event when a player clicks on it: Code (YAML): [on ] gui (action|click ) #Values: player : the player who clicked on item. event-inventory : The inventory (can only be the top inventory, so ... ) event-number : The slot number event-item : the item in cursor of the player event-string : the click type (left, right ... ) #Example: on gui click : set {_clickedItem } to slot event-number of event-inventory #The clicked item if name of {_clickedItem} is "Click to buy/sell your sword": if event-string is "left" or "shift left": if event-item is a diamond sword : #The item in cursor set cursor item to air #Umbaska add 1000 to player's money else if event-string is "right" or "shift right": if money of player is more or equal to 1000 : give any sword to player remove 1000 from player's money Now you can make some cool customizable stuffs. Note: this event is only called when using the effect above. [=] Changed the effects of GUI Manager: #Changed: to run %sender% command %string% [as op] #to: to run %sender% command %string% [with permission %string% ] It will temporarily give a permission to a player instead of temporary op. It's more safely because the permission is gone if the server crash somehow. Also made some little changes at all syntaxes, nothing that will conflict with your codes, it will just fit better. Code (YAML): (format|create|make ) [a ] gui slot %integers% of %players% with %itemstack% [to [do] nothing] (format|create|make ) [a ] gui slot %integers% of %players% with %itemstack% to close [(using|with) %string/click action% [(button|click|action)]] (format|create|make ) [a ] gui slot %integers% of %players% with %itemstack% to [close then] (run|exe[cute]) %command sender% command %string% [(using|with) perm[ission] %string%] [[(,| and) ](using|with) %string/click action% [[(,| and) ](button|click|action)]] [[(,| and) ](with|using) cursor [item] %itemstack%] (format|create|make ) [a ] gui slot %integers% of %players% with %itemstack% to [close then] run function %function% [[(,| and) ](using|with) %string/click action% [(button|click|action)]] [[(,| and) ](with|using) cursor [item] %itemstack%] [#] Fixed a bug from last update that was executing the last command of the loop in command format gui. I'm currently busy this month (and probably the next one), so don't expect any further updates until there. I will still around and I will only update to fix or add compatibility to next minecraft version, so it won't have new things. I also have to remake almost everything to make a clean code and I will make a new feature that can be interesting, in my opinion. I think that's all, I should have posted this update a week ago just for these simple fix, but I didn't finish what I was trying to do, so I let it to the next month. You can download it at the main page or execute the command "/tuske update plugin" if you have 1.6.7.1.6.7Update 1.6.7: Bug fixes and new EventSep 14, 2016 [+] Added a config file, Auto Updater and Metrics. The config file is only to disable these options. By default, the plugin will send metrics and check for updates, but it won't auto update your. I don't recommend to enable the auto update in your main server as it was always worst ideia and also I can't guarantee that the plugin is free of bugs that can come in newest updates. You can still update the plugin using the command /tuske. [+] Added a main command "/tuske". You can reload the config/enchantments file, check, download and update for newest updates and manage the enchantments. [+] Added new event and expression: The experience that a block will drop on break event. You can edit it. #Expression [the] dropped [e]xp[erience] [orb[s]] This event is called when a player drags a item in a inventory. It doesn't work with player's creative inventory. #Event [on] inventory drag Values: · event-inventory - The inventory · event-string - The drag type. It can return "single" if it was with right click or "even" if it was with left click. · [event-]dragged(-| )slots - A list of number of slots that the player dragged the item. · [event-]dragged(-| )item - The item in cursor after the items have been dragged. It can return <none> if the amount of items in cursor is 0. · [event-]old(-| )dragged(-| )item or event-item - The item in cursor before the items have been dragged. For example: If you drag 64 diamonds for 2 slots with right click, the old-dragged-item will be 64 diamonds, and the dragged-item will be 62 diamonds. [+] Added support for colored lore name for custom enchantments. [#] Fixed a tons of bugs, including the condition has custom enchantment , the expression alphabetical order , event values for events Anvil Combine and Anvil Rename and Custom Enchantments not working for 1.10.2. [#] Fixed a visual bug with GUI Manager. If a player try to steal a item and close the inventory at same time, the item will appear in player's inventory, but he couldn't make use of this item as well. It was only a visual bug, don't worry, any items of your GUI haven't been stolen.1.6.4Small fixSep 2, 2016 [#] Just to fix what the previous version broke, to run a function/command with a click action.1.6.3Update 1.6.3: FixesSep 1, 2016 [#] Fixed two console errors with GUI Manager, one of them even if you wasn't using the gui syntaxes. It's recommended to update to avoid any problems.1.6.2Update 1.6.2: GUI ManagerAug 31, 2016 [+] Added new effect and expression for Functions (from Skript 2.2+): It's a simple syntaxe, it's just to run a function from a string name Effect: evaluate function %strings% [with %objects% ] Expression: result of function %string% [with %objects% ] [+] Added a gui manager: I decided to make my own gui manager since the other way has a lot of simple bugs, and then I made some new features for that too. I will post a simple tutorial explaining how to use later: Effects: (format|create|make) [a] gui slot %numbers% of %players% with %itemstack% to [do] nothing (format|create|make) [a] gui slot %numbers% of %players% with %itemstack% to close [using %click action% [(button|click|action)]] (format|create|make) [a] gui slot %numbers% of %players% with %itemstack% to [close then] run %command sender% command %string% [as op] [using %click action% [(button|click|action)]] [with cursor [item] %itemstack% ] (format|create|make) [a] gui slot %numbers% of %players% with %itemstack% to [close then] run function %function% [using %click action% [(button|click|action)]] [with cursor [item] %itemstack% ] (unformat|remove) [the] gui slot %numbers% of %players% (unformat|remove) [all] [the] gui slots of %players% Condition: %player% has [a] gui #Check if has any gui in his open inventory slot %number% of %player% is a gui #Check if a slot is a gui1.6Update 1.6: Regex, RGB and FixesAug 19, 2016 [+] Added new condition and event-value: It requires a little knowledge with Regex. It returns true when a string matches a combination of characters. %string% [regex] matches %string% Example: if "hello" regex matches "(hey|hi|hello)": send "It will be showed." else: send "It won't ." Click to expand... Added a simple value to On Inventory Move event: %event-string% - It will return the click type of this event. In this case, only these three: "shift right", "shift left" and "number key". [#] Improved some expressions to make them settable: Now you can get the RGB from colors. (red|green|blue) colo[u]r of %item stacks/colors% R[ed, ]G[reen and ]B[blue] [colo[u]r[s]] of %item stacks/colors% Also, now you can set the values to leather armors. add 1 to red color of held item set rgb colours of held item to rgb colours of black set rgb colors of {_PlayerEquipments::} to {_RGB::} #The variable needs at least 3 numbers and only it will be setted, the rest is ignored. [#] Rewritten the code of custom enchantments. The condition has custom enchantment wasn't work sometimes. So, if the lore name of custom enchantment has a special character (like chinese words), probably it wasn't work properly. The problem is that .yml files doesn't work properly with these characters, so you will have to make this to fix it: on skript load: set lore name of <custom enchantment> to "The name with special characters" Click to expand... It will make the plugin loads the right name for the enchantment. You will have to do this for every custom enchantment with special characters. If you didn't have this problem, just skip it. [#] Fixed some expressions. 1.5.9Update 1.5.9: Languages, Inventory Event and fixes.Aug 8, 2016 [+] Added new event for complementing the inventory event: [on] inventory move This is called when a player move a item using shift + click or the number keys to another inventory. It returns: %event-item% - The item that will be moved. %event-inventory-one% - The inventory that this item came from. %event-inventory-two% - The inventory that the item will be moved to. %event-slot-one% - The slot that the item came from. %event-slot-two% - The slot that the item will be moved to. For now, it's a test event, so it will only trigger between inventories that are storable, in this case chest, ender chest, dispenser, dropper and hopper. [+] Added new expressions for languages: (locale|language) of %player% It will return the language of the player's minecraft. e.g. en_US, en_UK, pt_BR. [the] [json] client id of %item type/entity/enchantment% Returns a ID that it can be used in JSON to send client name of something. This is more interesting for those who has a non-english server or a multi-language one. If you want to know how to use it, see below. [#] Fixed expressions of recipes of item, it should work fully now. [#] Fixed a error in console for older versions, more specifically for modded jars. Some people are having problems to load the plugin with 1.9-1.10 servers. This update might work since I didn't have time for fix it or even found this error. So if it doesn't work, please wait one or two days. .SpoilerTarget">Spoiler: JSON Client ID This will be used for json messages (/tellraw), so you will need to know a little about it. If you use: set {_s} to json client id of stick Click to expand... it will return the string "item.stick.name", with that, you can use the json option "translate", basically it will send a message to a player and he will see the name of item of his language. For example: execute console command "/tellraw %player% {translate:""%{_s}%""}" Click to expand... A player who was the language en_US will see this message as "Stick", the player with pt_BR will see "Graveto" and it's so on. More examples: execute console command "/tellraw %player% [{translate:""%client id of held item%"",hoverEvent:{action: ""show_text"",value: ""Amazing Item""}]" execute console command "/tellraw %player% [{text:""You are holding a ""},{translate:""%client id of held item%""}]" Click to expand... If you have any doubt of how to use, as always, send me a PM or comment in discussion section. Oh, some details: - Some blocks, like double step blocks, might returns a null value (a empty string, not the "<none>"), I will fix that soon to work properly. - Some items only has translation in newest versions of minecraft. - Don't try it for 1.7.10 yet. Probably it will give to you a beautiful console error.1.5.7Update 1.5.7: Fixes and new event!Jul 29, 2016 [+] Added a new event and a simple expression. Expression: online time of server #Returns how long your server has been online. Event: [on] spawner spawn #Returns the %entity% that has spawned and the %block% (the mob spawner) [#] Fixed bug with [total] [e]xp of %player% that was not returning the right value after the player uses the enchantment table or have their level edited by Skript. [#] Fixed bug with ingredients of %recipe% that was returning bugged items if you use a plugin to create new recipes. [#] Fixed bug with level of [custom enchantment] %custom enchantment% of %itemstack% returning 0 sometimes. [-] The expression highiest block at %location% will be removed in next update.1.5.5Update 1.5.5: Small fix.Jul 19, 2016 [-] Removed a debug message when player is enchanting a item. This update is only necessary in case you use Custom Enchantments.1.5.4Update 1.5.4: Small fixes and new expression.Jul 18, 2016 [+] Added new expression: R[ed, ]G[reen and ]B[blue] [colors] of %itemstack% This will return a list with 3 integers of RGB color of some item. e.g. 255, 125 and 39. [#] Fixed some bugs in condition has a clan, expressions item's recipes and drops of block.1.5.3Update 1.5.3: Fix, custom enchantments and new Events!Jul 17, 2016 [+] Added new easiest way to create custom enchantments. Now, all you have to do is register a custom enchantment and then set the values to it. Syntaxes: (register|create) [a] [new] [custom] enchantment with id [name] %string% unregister [the] [custom] enchantment %custom enchantment% max level of %custom enchantment% rarity of %custom enchantment% [lore] name of %custom enchantment% accepted items for %custom enchantment% conflicts for %custom enchantment% enabled for %custom enchantment% See main page to see how to create a custom enchantment with these syntaxes. [+] Added tag GlobalRarity, in configuration section of custom enchantments, thats will adjust the values of rarity. See how on main page. [+] Added 3 new events, 1 condition and 1 expression: Expression: Returns a number of RGB color of any leather armor. leather (red|green|blue) color of %itemstack% Events: [on] player starts (move|walk). Returns %player% and %event-location%. [on] player stops (move|walk). Returns %player% [on] [player] item damage. Returns %player%, %event-item% and %item-damage% Condition: %player% is (moving|walking|stopped) [#] Fixed bugs with condition %itemstack% has custom enchantment , expression page %integer% of %objects% with %integer% lines , and the rarity of custom enchantments that was making rarity from 3 to 5 being too common. All these syntaxes will be at documentation a few hours later, and them you will see more details of them.1.5.1Small fixJul 6, 2016 I forgot some debug messages in expression %online time of player%. Sorry for that, that happens. So, if you saw some broadcast messages like "tem" in your server, it comes from here.1.5Update 1.5: Custom enchantments!Jul 6, 2016 · Added custom enchantments. Basically you can create your customized enchantments. At main page there is a tutorial of how to do this. .SpoilerTarget">Spoiler: Syntaxes Expressions: level of custom enchantment %custom enchantment% of %itemstack% [all] custom enchantments of %itemstack% %itemstack% with custom enchantment[s] %custom enchantments% Condition: %itemstack% has custom enchantment %custom enchantment% · Added chat tags for LegendChat. .SpoilerTarget">Spoiler: Syntaxes Expressions: chat tag %string% of %player% chat tags of %player% · Temporary fix for Landlord.1.1Update 1.1:Jun 25, 2016 · Added recipes of %itemstack%, ingredients of %recipe% and result item of %itemstacks/recipe%. · Removed support for GriefPrevention because another addon already have it. · Added player data of %offlineplayer%. With this, you can get a offline player as if he was online. So you can check his money, inventory, ender chest, whatever. But, to edit some of theses things, you will have to use: save [player] data of %player%. If you don't use, the changes that you made (e.g. remove some money, give some item) won't apply. But keep in your mind: Don't use this to make some stupid effects (like kill entity, kick player), it's unnecessary and probably, can do something that may not be good to your server (crash). .SpoilerTarget">Spoiler: Example: Example of player's data: Code (Text): set {_offlineplayer} to "Tuke_Nuke" parsed as offline player if {_offlineplayer} is not online: set {_player} to player data of {_offlineplayer} #Convert from %offlineplayer% to %player% add 100 to money of {_player} save data of {_player} #Doesn't need to be below of the change, #can be at the end of code too. · Added max durability of %itemstack%. It's obvius, returns the max durability. · Added support for Landlord: .SpoilerTarget">Spoiler: Syntaxes: Expressions: land[lord] claim at %location/chunk% #Returns %landclaim%. land[lord] owner of %landclaim% #Returns %offlineplayer%. landflag %landflag% of %landclaim% for (everyone|friends) #Returns %boolean% and you can edit. land[lord] friends of %landclaim% #Returns %offlineplayers%. land[lord] location of %landclaim%. #Returns %location%. land[lord] claims of %player%. #Returns a list of %landclaim%. Effects: claim land[lord] at %location/chunk% for %player% unclaim land[lord] at %location/chunk% · Removed offline inventory of %player% because now you can use player data of %offlineplayer% to do this.
Similar projects
Script →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta