diff --git a/src/main/java/ch/njol/skript/doc/AvailableEvents.java b/src/main/java/ch/njol/skript/doc/AvailableEvents.java new file mode 100644 index 00000000000..6785177e1fa --- /dev/null +++ b/src/main/java/ch/njol/skript/doc/AvailableEvents.java @@ -0,0 +1,17 @@ +package ch.njol.skript.doc; + +import org.bukkit.event.Event; + +import java.lang.annotation.*; + +/** + * Provides a list of {@link org.bukkit.event.Event}s that this syntax element can be used in. + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface AvailableEvents { + + Class[] value(); + +} diff --git a/src/main/java/ch/njol/skript/doc/Events.java b/src/main/java/ch/njol/skript/doc/Events.java index 592cdc1bb82..cd4ab6c3229 100644 --- a/src/main/java/ch/njol/skript/doc/Events.java +++ b/src/main/java/ch/njol/skript/doc/Events.java @@ -11,10 +11,15 @@ /** * @author Peter Güttinger + * + * @deprecated + * This annotation is deprecated, please use {@link AvailableEvents} instead + * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented +@Deprecated(since = "INSERT VERSION") public @interface Events { /** * A list of {@link SkriptEventInfo#getName() name(s)} of {@link SkriptEvent events} this expression is useful for. diff --git a/src/main/java/ch/njol/skript/doc/JSONGenerator.java b/src/main/java/ch/njol/skript/doc/JSONGenerator.java index 98ccac05eb7..7ddd38a95bf 100644 --- a/src/main/java/ch/njol/skript/doc/JSONGenerator.java +++ b/src/main/java/ch/njol/skript/doc/JSONGenerator.java @@ -36,7 +36,7 @@ public class JSONGenerator extends DocumentationGenerator { /** * The current version of the JSON generator */ - public static final Version JSON_VERSION = new Version(1, 0); + public static final Version JSON_VERSION = new Version(2, 0); private static final Gson GSON = new GsonBuilder() .disableHtmlEscaping() @@ -44,10 +44,16 @@ public class JSONGenerator extends DocumentationGenerator { .serializeNulls() .create(); + private static final Map, List>> events = new HashMap<>(); + public JSONGenerator(File templateDir, File outputDir) { super(templateDir, outputDir); } + static { + cacheEvents(); + } + /** * @return The version of the JSON generator */ @@ -117,8 +123,9 @@ private static JsonObject generatedAnnotatedElement(SyntaxElementInfo syntaxI syntaxJsonObject.add("examples", null); } - Events events = syntaxClass.getAnnotation(Events.class); - syntaxJsonObject.add("events", events == null ? null : convertToJsonArray(events.value())); + AvailableEvents availableEvents = syntaxClass.getAnnotation(AvailableEvents.class); + syntaxJsonObject.add("events", getSkriptEvents(availableEvents)); + RequiredPlugins requirements = syntaxClass.getAnnotation(RequiredPlugins.class); syntaxJsonObject.add("requirements", requirements == null ? null : convertToJsonArray(requirements.value())); @@ -129,6 +136,23 @@ private static JsonObject generatedAnnotatedElement(SyntaxElementInfo syntaxI return syntaxJsonObject; } + private static @Nullable JsonArray getSkriptEvents(@Nullable AvailableEvents availableEvents) { + if (availableEvents == null || availableEvents.value().length == 0) + return null; + JsonArray skriptEvents = new JsonArray(); + for (Class event : availableEvents.value()) { + if (events.get(event) == null) + continue; + for (SkriptEventInfo skriptEvent : events.get(event)) { + JsonObject skriptEventJson = new JsonObject(); + skriptEventJson.addProperty("id", skriptEvent.getDocumentationID() == null ? skriptEvent.getId() : skriptEvent.getDocumentationID()); + skriptEventJson.addProperty("name", skriptEvent.getName()); + skriptEvents.add(skriptEventJson); + } + } + return skriptEvents; + } + /** * Generates the documentation JsonObject for an event * @@ -372,6 +396,14 @@ private static JsonArray cleanPatterns(String... strings) { return convertToJsonArray(strings); } + private static void cacheEvents() { + for (SkriptEventInfo eventInfo : Skript.getEvents()) { + for (Class event : eventInfo.events) { + events.computeIfAbsent(event, key -> new ArrayList<>()).add(eventInfo); + } + } + } + /** * Writes the documentation JsonObject to an output path * diff --git a/src/main/java/ch/njol/skript/expressions/ExprAbsorbedBlocks.java b/src/main/java/ch/njol/skript/expressions/ExprAbsorbedBlocks.java index c436a0474c6..da4a9c104ee 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprAbsorbedBlocks.java +++ b/src/main/java/ch/njol/skript/expressions/ExprAbsorbedBlocks.java @@ -3,17 +3,13 @@ import java.util.Iterator; import java.util.List; +import ch.njol.skript.doc.*; import org.bukkit.block.BlockState; import org.bukkit.event.Event; import org.bukkit.event.block.SpongeAbsorbEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -24,6 +20,7 @@ @Name("Absorbed blocks") @Description("The blocks absorbed by a sponge block.") +@AvailableEvents(SpongeAbsorbEvent.class) @Events("sponge absorb") @Examples("the absorbed blocks") @Since("2.5") diff --git a/src/main/java/ch/njol/skript/expressions/ExprAppliedEffect.java b/src/main/java/ch/njol/skript/expressions/ExprAppliedEffect.java index 02e6a8688a9..80c191cec21 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprAppliedEffect.java +++ b/src/main/java/ch/njol/skript/expressions/ExprAppliedEffect.java @@ -21,6 +21,7 @@ "\telse if applied effect = secondary effect:", "\t\tbroadcast \"Is Secondary\"" }) +@AvailableEvents(BeaconEffectEvent.class) @Events("Beacon Effect") @RequiredPlugins("Paper") @Since("2.10") diff --git a/src/main/java/ch/njol/skript/expressions/ExprAppliedEnchantments.java b/src/main/java/ch/njol/skript/expressions/ExprAppliedEnchantments.java index f2b0b79ee11..0632fe39c41 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprAppliedEnchantments.java +++ b/src/main/java/ch/njol/skript/expressions/ExprAppliedEnchantments.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.Event; import org.bukkit.event.enchantment.EnchantItemEvent; @@ -7,11 +8,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -26,6 +22,7 @@ " Deleting or removing the applied enchantments will prevent the item's enchantment."}) @Examples({"on enchant:", "\tset the applied enchantments to sharpness 10 and fire aspect 5"}) +@AvailableEvents(EnchantItemEvent.class) @Events("enchant") @Since("2.5") public class ExprAppliedEnchantments extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprAttacked.java b/src/main/java/ch/njol/skript/expressions/ExprAttacked.java index 5b2ed4e51cb..b090100aaaf 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprAttacked.java +++ b/src/main/java/ch/njol/skript/expressions/ExprAttacked.java @@ -2,6 +2,7 @@ import java.lang.reflect.Array; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.EventRestrictedSyntax; import ch.njol.util.coll.CollectionUtils; import org.bukkit.entity.Entity; @@ -16,11 +17,6 @@ import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.entity.EntityData; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; @@ -37,6 +33,8 @@ "\tvictim is a creeper", "\tdamage the attacked by 1 heart"}) @Since("1.3, 2.6.1 (projectile hit event)") +@AvailableEvents({EntityDamageEvent.class, EntityDeathEvent.class, + VehicleDamageEvent.class, VehicleDestroyEvent.class, ProjectileHitEvent.class}) @Events({"damage", "death", "projectile hit"}) public class ExprAttacked extends SimpleExpression implements EventRestrictedSyntax { diff --git a/src/main/java/ch/njol/skript/expressions/ExprAttacker.java b/src/main/java/ch/njol/skript/expressions/ExprAttacker.java index bf1e6d9f20e..a5fe99dcbed 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprAttacker.java +++ b/src/main/java/ch/njol/skript/expressions/ExprAttacker.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.EventRestrictedSyntax; import ch.njol.util.coll.CollectionUtils; import org.bukkit.entity.Entity; @@ -13,11 +14,6 @@ import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -37,6 +33,8 @@ " health of attacker is less than or equal to 2", " damage victim by 1 heart"}) @Since("1.3") +@AvailableEvents({EntityDamageEvent.class, EntityDeathEvent.class, + VehicleDamageEvent.class, VehicleDestroyEvent.class}) @Events({"damage", "death", "destroy"}) public class ExprAttacker extends SimpleExpression implements EventRestrictedSyntax { diff --git a/src/main/java/ch/njol/skript/expressions/ExprBeaconValues.java b/src/main/java/ch/njol/skript/expressions/ExprBeaconValues.java index 887a0a0cc56..07c9e09b0ae 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprBeaconValues.java +++ b/src/main/java/ch/njol/skript/expressions/ExprBeaconValues.java @@ -37,6 +37,7 @@ "add 1 to range of {_block}" }) @RequiredPlugins("Paper (range)") +@AvailableEvents({PlayerChangeBeaconEffectEvent.class, BeaconEffectEvent.class, BeaconActivatedEvent.class, BeaconDeactivatedEvent.class}) @Events({"Beacon Effect", "Beacon Toggle", "Beacon Change Effect"}) @Since("2.10") public class ExprBeaconValues extends PropertyExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprClicked.java b/src/main/java/ch/njol/skript/expressions/ExprClicked.java index 536da33b70f..1cd5d5e680b 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprClicked.java +++ b/src/main/java/ch/njol/skript/expressions/ExprClicked.java @@ -2,6 +2,7 @@ import java.lang.reflect.Array; +import ch.njol.skript.doc.*; import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.event.Event; @@ -17,11 +18,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.aliases.ItemType; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.entity.EntityData; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; @@ -41,6 +37,7 @@ "\tshow the inventory of the clicked block to the player" }) @Since("1.0, 2.2-dev35 (more clickable things)") +@AvailableEvents({PlayerInteractEntityEvent.class, PlayerInteractAtEntityEvent.class, InventoryClickEvent.class, EnchantItemEvent.class, PlayerInteractEvent.class}) @Events({"click", "inventory click"}) public class ExprClicked extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprCommand.java b/src/main/java/ch/njol/skript/expressions/ExprCommand.java index 8cb71f77e34..b8d21efd861 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprCommand.java +++ b/src/main/java/ch/njol/skript/expressions/ExprCommand.java @@ -1,6 +1,7 @@ package ch.njol.skript.expressions; import ch.njol.skript.command.ScriptCommandEvent; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.EventRestrictedSyntax; import ch.njol.util.coll.CollectionUtils; import org.bukkit.event.Event; @@ -9,11 +10,6 @@ import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -32,6 +28,7 @@ "\t\t\tmessage \"You're not allowed to use commands during the game\"", "\t\t\tcancel the event"}) @Since("2.0, 2.7 (support for script commands)") +@AvailableEvents({PlayerCommandPreprocessEvent.class, ServerCommandEvent.class, ScriptCommandEvent.class}) @Events("command") public class ExprCommand extends SimpleExpression implements EventRestrictedSyntax { diff --git a/src/main/java/ch/njol/skript/expressions/ExprCommandSender.java b/src/main/java/ch/njol/skript/expressions/ExprCommandSender.java index 2d71a3b2e0e..87646a8b324 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprCommandSender.java +++ b/src/main/java/ch/njol/skript/expressions/ExprCommandSender.java @@ -1,13 +1,12 @@ package ch.njol.skript.expressions; +import ch.njol.skript.command.ScriptCommandEvent; +import ch.njol.skript.doc.*; import org.bukkit.command.CommandSender; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.expressions.base.EventValueExpression; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.server.ServerCommandEvent; @Name("Command Sender") @Description({ @@ -21,6 +20,7 @@ "\tlog \"%executor% used command /%command% %arguments%\" to \"commands.log\"" }) @Since("2.0") +@AvailableEvents({PlayerCommandPreprocessEvent.class, ServerCommandEvent.class, ScriptCommandEvent.class}) @Events("command") public class ExprCommandSender extends EventValueExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprDamage.java b/src/main/java/ch/njol/skript/expressions/ExprDamage.java index 962e20262f2..b71820f46f7 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprDamage.java +++ b/src/main/java/ch/njol/skript/expressions/ExprDamage.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerItemDamageEvent; @@ -9,11 +10,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.bukkitutil.HealthUtils; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -36,6 +32,7 @@ "\tincrease the damage by 2" }) @Since("1.3.5, 2.8.0 (item damage event)") +@AvailableEvents({EntityDamageEvent.class, VehicleDamageEvent.class, PlayerItemDamageEvent.class}) @Events({"Damage", "Vehicle Damage", "Item Damage"}) public class ExprDamage extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEgg.java b/src/main/java/ch/njol/skript/expressions/ExprEgg.java index 17b18ad73f1..67e66f07d58 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEgg.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEgg.java @@ -1,19 +1,17 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.entity.Egg; import org.bukkit.event.Event; +import org.bukkit.event.player.PlayerEggThrowEvent; import org.jetbrains.annotations.Nullable; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.expressions.base.EventValueExpression; @Name("The Egg") @Description("The egg thrown in a Player Egg Throw event.") @Examples("spawn an egg at the egg") +@AvailableEvents(PlayerEggThrowEvent.class) @Events("Egg Throw") @Since("2.7") public class ExprEgg extends EventValueExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEnchantItem.java b/src/main/java/ch/njol/skript/expressions/ExprEnchantItem.java index cf06ff046bc..526c252bdea 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEnchantItem.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEnchantItem.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.enchantment.EnchantItemEvent; import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -8,11 +9,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.aliases.ItemType; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -28,6 +24,7 @@ "\tset the enchanted item to a diamond chestplate", "on enchant prepare:", "\tset the enchant item to a wooden sword"}) +@AvailableEvents({EnchantItemEvent.class, PrepareItemEnchantEvent.class}) @Events({"enchant prepare", "enchant"}) @Since("2.5") public class ExprEnchantItem extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEnchantingExpCost.java b/src/main/java/ch/njol/skript/expressions/ExprEnchantingExpCost.java index 4f9a52763dd..d37764d09fe 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEnchantingExpCost.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEnchantingExpCost.java @@ -1,16 +1,12 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.enchantment.EnchantItemEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -25,6 +21,7 @@ "This is number that was displayed in the enchantment table, not the actual number of levels removed."}) @Examples({"on enchant:", "\tsend \"Cost: %the displayed enchanting cost%\" to player"}) +@AvailableEvents(EnchantItemEvent.class) @Events("enchant") @Since("2.5") public class ExprEnchantingExpCost extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEnchantmentBonus.java b/src/main/java/ch/njol/skript/expressions/ExprEnchantmentBonus.java index 0e599582871..6792194b6da 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEnchantmentBonus.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEnchantmentBonus.java @@ -1,15 +1,11 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.enchantment.PrepareItemEnchantEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -21,6 +17,7 @@ @Description("The enchantment bonus in an enchant prepare event. This represents the number of bookshelves affecting/surrounding the enchantment table.") @Examples({"on enchant:", "\tsend \"There are %enchantment bonus% bookshelves surrounding this enchantment table!\" to player"}) +@AvailableEvents(PrepareItemEnchantEvent.class) @Events("enchant prepare") @Since("2.5") public class ExprEnchantmentBonus extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEnchantmentOffer.java b/src/main/java/ch/njol/skript/expressions/ExprEnchantmentOffer.java index e96f501b1a2..533f1a49ee9 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEnchantmentOffer.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEnchantmentOffer.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; +import ch.njol.skript.doc.*; import org.bukkit.enchantments.EnchantmentOffer; import org.bukkit.event.Event; import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -12,12 +13,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.RequiredPlugins; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -32,6 +27,7 @@ @Examples({"on enchant prepare:", "\tsend \"Your enchantment offers are: %the enchantment offers%\" to player"}) @Since("2.5") +@AvailableEvents(PrepareItemEnchantEvent.class) @Events("enchant prepare") @RequiredPlugins("1.11 or newer") public class ExprEnchantmentOffer extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprEvtInitiator.java b/src/main/java/ch/njol/skript/expressions/ExprEvtInitiator.java index aa454c71df3..3172d81f282 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprEvtInitiator.java +++ b/src/main/java/ch/njol/skript/expressions/ExprEvtInitiator.java @@ -1,11 +1,7 @@ package ch.njol.skript.expressions; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -24,6 +20,7 @@ "\tholder of event-initiator-inventory is a chest", "\tbroadcast \"Item transport happening at %location at holder of event-initiator-inventory%!\"" }) +@AvailableEvents(InventoryMoveItemEvent.class) @Events("Inventory Item Move") @Since("2.8.0") public class ExprEvtInitiator extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprExperience.java b/src/main/java/ch/njol/skript/expressions/ExprExperience.java index aba4975419e..fffbe78e2d5 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprExperience.java +++ b/src/main/java/ch/njol/skript/expressions/ExprExperience.java @@ -42,6 +42,8 @@ "\tadd 70 to dropped experience", }) @Since("2.1, 2.5.3 (block break event), 2.7 (experience change event), 2.10 (breeding, fishing)") +@AvailableEvents({ExperienceSpawnEvent.class, BlockBreakEvent.class, + PlayerExpChangeEvent.class, EntityBreedEvent.class, PlayerFishEvent.class}) @Events({"experience spawn", "break / mine", "experience change", "entity breeding"}) public class ExprExperience extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprExplodedBlocks.java b/src/main/java/ch/njol/skript/expressions/ExprExplodedBlocks.java index d67b502f56b..c5275bbce55 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprExplodedBlocks.java +++ b/src/main/java/ch/njol/skript/expressions/ExprExplodedBlocks.java @@ -3,6 +3,7 @@ import java.util.List; import ch.njol.skript.classes.Changer.ChangeMode; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.EventRestrictedSyntax; import ch.njol.util.coll.CollectionUtils; import org.bukkit.block.Block; @@ -11,11 +12,6 @@ import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser; @@ -42,6 +38,7 @@ "", "on explode:", "\tadd blocks above event-entity to exploded blocks"}) +@AvailableEvents(EntityExplodeEvent.class) @Events("explode") @Since("2.5, 2.8.6 (modify blocks)") public class ExprExplodedBlocks extends SimpleExpression implements EventRestrictedSyntax { diff --git a/src/main/java/ch/njol/skript/expressions/ExprExplosionBlockYield.java b/src/main/java/ch/njol/skript/expressions/ExprExplosionBlockYield.java index d38b373cfb3..ac4234b0165 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprExplosionBlockYield.java +++ b/src/main/java/ch/njol/skript/expressions/ExprExplosionBlockYield.java @@ -1,16 +1,12 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityExplodeEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -25,6 +21,7 @@ "Attempting to change the yield to a value less than 0 will have no effect."}) @Examples({"on explode:", "set the explosion's block yield to 10%"}) +@AvailableEvents(EntityExplodeEvent.class) @Events("explosion") @Since("2.5") public class ExprExplosionBlockYield extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprExplosionYield.java b/src/main/java/ch/njol/skript/expressions/ExprExplosionYield.java index 78605dbef38..3fbf5847517 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprExplosionYield.java +++ b/src/main/java/ch/njol/skript/expressions/ExprExplosionYield.java @@ -1,16 +1,13 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.checkerframework.checker.units.qual.A; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -25,6 +22,7 @@ " Read this wiki page for more information"}) @Examples({"on explosion prime:", "\tset the yield of the explosion to 10"}) +@AvailableEvents(ExplosionPrimeEvent.class) @Events("explosion prime") @Since("2.5") public class ExprExplosionYield extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprFertilizedBlocks.java b/src/main/java/ch/njol/skript/expressions/ExprFertilizedBlocks.java index 9c8cc950ab0..35ac3a56e0d 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprFertilizedBlocks.java +++ b/src/main/java/ch/njol/skript/expressions/ExprFertilizedBlocks.java @@ -3,17 +3,12 @@ import java.util.Iterator; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.block.BlockFertilizeEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.RequiredPlugins; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -24,6 +19,7 @@ @Name("Fertilized Blocks") @Description("The blocks fertilized in block fertilize events.") @RequiredPlugins("Minecraft 1.13 or newer") +@AvailableEvents(BlockFertilizeEvent.class) @Events("block fertilize") @Examples("the fertilized blocks") @Since("2.5") diff --git a/src/main/java/ch/njol/skript/expressions/ExprFinalDamage.java b/src/main/java/ch/njol/skript/expressions/ExprFinalDamage.java index 324ded1aef7..fc2f4b196c8 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprFinalDamage.java +++ b/src/main/java/ch/njol/skript/expressions/ExprFinalDamage.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityDamageEvent; import org.jetbrains.annotations.Nullable; @@ -7,11 +8,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.bukkitutil.HealthUtils; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -22,8 +18,9 @@ @Name("Final Damage") @Description("How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed.") @Examples({"send \"%final damage%\" to victim"}) -@Since("2.2-dev19") +@AvailableEvents(EntityDamageEvent.class) @Events("damage") +@Since("2.2-dev19") public class ExprFinalDamage extends SimpleExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHatchingNumber.java b/src/main/java/ch/njol/skript/expressions/ExprHatchingNumber.java index 49228742570..1f15142545d 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHatchingNumber.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHatchingNumber.java @@ -2,11 +2,7 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -26,6 +22,7 @@ "on player egg throw:", "\tset the hatching number to 10" }) +@AvailableEvents(PlayerEggThrowEvent.class) @Events("Egg Throw") @Since("2.7") public class ExprHatchingNumber extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHatchingType.java b/src/main/java/ch/njol/skript/expressions/ExprHatchingType.java index c5b8639657c..7517c72d8cf 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHatchingType.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHatchingType.java @@ -3,11 +3,7 @@ import ch.njol.skript.Skript; import ch.njol.skript.bukkitutil.EntityUtils; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.entity.EntityData; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; @@ -26,6 +22,7 @@ "on player egg throw:", "\tset the hatching entity type to a primed tnt" }) +@AvailableEvents(PlayerEggThrowEvent.class) @Events("Egg Throw") @Since("2.7") public class ExprHatchingType extends SimpleExpression> { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHealAmount.java b/src/main/java/ch/njol/skript/expressions/ExprHealAmount.java index 5410d2ccc5d..a4f411281fb 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHealAmount.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHealAmount.java @@ -1,6 +1,7 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityRegainHealthEvent; import org.jetbrains.annotations.Nullable; @@ -8,11 +9,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -27,6 +23,7 @@ "\tincrease the heal amount by 2", "\tremove 0.5 from the healing amount" }) +@AvailableEvents(EntityRegainHealthEvent.class) @Events("heal") @Since("2.5.1") public class ExprHealAmount extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHealReason.java b/src/main/java/ch/njol/skript/expressions/ExprHealReason.java index bc6602eb8b3..bd99600dcc5 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHealReason.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHealReason.java @@ -1,13 +1,10 @@ package ch.njol.skript.expressions; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.expressions.base.EventValueExpression; import ch.njol.skript.registrations.EventValues; +import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; @Name("Heal Reason") @@ -17,6 +14,7 @@ "\theal reason is satiated", "\tsend \"You ate enough food and gained full health back!\"" }) +@AvailableEvents(EntityRegainHealthEvent.class) @Events("heal") @Since("2.5") public class ExprHealReason extends EventValueExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHealth.java b/src/main/java/ch/njol/skript/expressions/ExprHealth.java index 9459a1b20d4..4f9ac17a11e 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHealth.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHealth.java @@ -10,6 +10,7 @@ import ch.njol.util.coll.CollectionUtils; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Event; +import org.bukkit.event.entity.EntityDamageEvent; import org.jetbrains.annotations.Nullable; /** @@ -19,6 +20,7 @@ @Description("The health of a creature, e.g. a player, mob, villager, etc. The minimum value is 0, and the maximum is the creature's max health (e.g. 10 for players).") @Examples({"message \"You have %health% HP left.\""}) @Since("1.0") +@AvailableEvents(EntityDamageEvent.class) @Events("damage") public class ExprHealth extends PropertyExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHoverList.java b/src/main/java/ch/njol/skript/expressions/ExprHoverList.java index 16c2036f70d..8abcbd8fd2c 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHoverList.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHoverList.java @@ -37,6 +37,7 @@ }) @Since("2.3") @RequiredPlugins("Paper 1.12.2 or newer") +@AvailableEvents(PaperServerListPingEvent.class) @Events("server list ping") public class ExprHoverList extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprInventoryCloseReason.java b/src/main/java/ch/njol/skript/expressions/ExprInventoryCloseReason.java index 41191362b22..c7f6d592709 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprInventoryCloseReason.java +++ b/src/main/java/ch/njol/skript/expressions/ExprInventoryCloseReason.java @@ -1,12 +1,7 @@ package ch.njol.skript.expressions; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.RequiredPlugins; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.expressions.base.EventValueExpression; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; @@ -23,6 +18,7 @@ "\tinventory close reason is teleport", "\tsend \"Your inventory closed due to teleporting!\" to player" }) +@AvailableEvents(InventoryCloseEvent.class) @Events("Inventory Close") @RequiredPlugins("Paper") @Since("2.8.0") diff --git a/src/main/java/ch/njol/skript/expressions/ExprLevel.java b/src/main/java/ch/njol/skript/expressions/ExprLevel.java index b3273130b75..843a090802a 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprLevel.java +++ b/src/main/java/ch/njol/skript/expressions/ExprLevel.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityDeathEvent; @@ -10,11 +11,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.effects.Delay; import ch.njol.skript.expressions.base.SimplePropertyExpression; @@ -25,8 +21,9 @@ @Description("The level of a player.") @Examples({"reduce the victim's level by 1", "set the player's level to 0"}) -@Since("unknown (before 2.1)") +@AvailableEvents(PlayerLevelChangeEvent.class) @Events("level change") +@Since("unknown (before 2.1)") public class ExprLevel extends SimplePropertyExpression { static { register(ExprLevel.class, Long.class, "level", "players"); diff --git a/src/main/java/ch/njol/skript/expressions/ExprLevelProgress.java b/src/main/java/ch/njol/skript/expressions/ExprLevelProgress.java index 7c682609082..a870470fc11 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprLevelProgress.java +++ b/src/main/java/ch/njol/skript/expressions/ExprLevelProgress.java @@ -1,15 +1,12 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.entity.Player; import org.bukkit.event.Event; +import org.bukkit.event.player.PlayerLevelChangeEvent; import org.jetbrains.annotations.Nullable; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.expressions.base.SimplePropertyExpression; import ch.njol.util.Math2; @@ -34,8 +31,9 @@ "\t\t\tset level progress of the loop-player to 0.99", "on xp spawn:", "\tcancel event"}) -@Since("2.0") +@AvailableEvents(PlayerLevelChangeEvent.class) @Events("level change") +@Since("2.0") public class ExprLevelProgress extends SimplePropertyExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprMaxHealth.java b/src/main/java/ch/njol/skript/expressions/ExprMaxHealth.java index cfe64906bf0..af057e08ad8 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprMaxHealth.java +++ b/src/main/java/ch/njol/skript/expressions/ExprMaxHealth.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Event; import org.jetbrains.annotations.Nullable; @@ -7,11 +8,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.bukkitutil.HealthUtils; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.expressions.base.SimplePropertyExpression; /** @@ -24,7 +20,6 @@ "spawn a giant", "set the last spawned entity's max health to 1000"}) @Since("2.0") -@Events({"damage", "death"}) public class ExprMaxHealth extends SimplePropertyExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprMe.java b/src/main/java/ch/njol/skript/expressions/ExprMe.java index a365c38bea6..cc6f69eaeef 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprMe.java +++ b/src/main/java/ch/njol/skript/expressions/ExprMe.java @@ -1,5 +1,6 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Event; @@ -7,10 +8,6 @@ import ch.njol.skript.Skript; import ch.njol.skript.command.EffectCommandEvent; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -20,6 +17,8 @@ @Name("Me") @Description("A 'me' expression that can be used in players' effect commands only.") @Examples({"!heal me", "!kick myself", "!give a diamond axe to me"}) +@AvailableEvents(EffectCommandEvent.class) +@Events("Effect Command") @Since("2.1.1") public class ExprMe extends SimpleExpression { diff --git a/src/main/java/ch/njol/skript/expressions/ExprMessage.java b/src/main/java/ch/njol/skript/expressions/ExprMessage.java index 15c9dbc37de..2f929780945 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprMessage.java +++ b/src/main/java/ch/njol/skript/expressions/ExprMessage.java @@ -51,8 +51,9 @@ "on broadcast:", "\tset broadcast message to \"&a[BROADCAST] %broadcast message%\"" }) -@Since("1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message), 2.9.0 (clear message), 2.10 (broadcasted message)") +@AvailableEvents({AsyncPlayerChatEvent.class, PlayerJoinEvent.class, PlayerQuitEvent.class, PlayerKickEvent.class, EntityDeathEvent.class, BroadcastMessageEvent.class}) @Events({"chat", "join", "quit", "death", "broadcast"}) +@Since("1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message), 2.9.0 (clear message), 2.10 (broadcasted message)") public class ExprMessage extends SimpleExpression { @SuppressWarnings("unchecked") diff --git a/src/main/java/ch/njol/skript/expressions/ExprProtocolVersion.java b/src/main/java/ch/njol/skript/expressions/ExprProtocolVersion.java index f2fb55d0dd1..ef9f10dd43c 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprProtocolVersion.java +++ b/src/main/java/ch/njol/skript/expressions/ExprProtocolVersion.java @@ -1,17 +1,13 @@ package ch.njol.skript.expressions; +import ch.njol.skript.doc.*; import org.bukkit.event.Event; +import org.bukkit.event.server.ServerListPingEvent; import org.jetbrains.annotations.Nullable; import com.destroystokyo.paper.event.server.PaperServerListPingEvent; import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.RequiredPlugins; -import ch.njol.skript.doc.Since; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -35,9 +31,10 @@ @Examples({"on server list ping:", "\tset the version string to \"<light green>Version: <orange>%minecraft version%\"", "\tset the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always"}) -@Since("2.3") -@RequiredPlugins("Paper 1.12.2 or newer") +@AvailableEvents(ServerListPingEvent.class) @Events("server list ping") +@RequiredPlugins("Paper 1.12.2 or newer") +@Since("2.3") public class ExprProtocolVersion extends SimpleExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprReadiedArrow.java b/src/main/java/ch/njol/skript/expressions/ExprReadiedArrow.java index 47a122dee40..74c9642783d 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprReadiedArrow.java +++ b/src/main/java/ch/njol/skript/expressions/ExprReadiedArrow.java @@ -1,11 +1,7 @@ package ch.njol.skript.expressions; import ch.njol.skript.Skript; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -24,8 +20,9 @@ "\tif selected arrow is not a spectral arrow:", "\t\tcancel event" }) -@Since("2.8.0") +@AvailableEvents(PlayerReadyArrowEvent.class) @Events("ready arrow") +@Since("2.8.0") public class ExprReadiedArrow extends SimpleExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprSentCommands.java b/src/main/java/ch/njol/skript/expressions/ExprSentCommands.java index 3e6c3f4cebd..0c6b3835e9e 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprSentCommands.java +++ b/src/main/java/ch/njol/skript/expressions/ExprSentCommands.java @@ -2,17 +2,14 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.events.EvtPlayerCommandSend; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; +import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent; import com.google.common.collect.Lists; import org.bukkit.event.Event; import org.bukkit.event.player.PlayerCommandSendEvent; @@ -34,8 +31,9 @@ "\tset command list to command list where [input does not contain \":\"]", "\tremove \"help\" from command list" }) -@Since("2.8.0") +@AvailableEvents(PlayerCommandSendEvent.class) @Events("send command list") +@Since("2.8.0") public class ExprSentCommands extends SimpleExpression { static { diff --git a/src/main/java/ch/njol/skript/expressions/ExprVersionString.java b/src/main/java/ch/njol/skript/expressions/ExprVersionString.java index 407dfec0d0b..5ba8fa802e8 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprVersionString.java +++ b/src/main/java/ch/njol/skript/expressions/ExprVersionString.java @@ -2,12 +2,7 @@ import ch.njol.skript.Skript; import ch.njol.skript.classes.Changer.ChangeMode; -import ch.njol.skript.doc.Description; -import ch.njol.skript.doc.Events; -import ch.njol.skript.doc.Examples; -import ch.njol.skript.doc.Name; -import ch.njol.skript.doc.RequiredPlugins; -import ch.njol.skript.doc.Since; +import ch.njol.skript.doc.*; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; import ch.njol.skript.lang.SkriptParser.ParseResult; @@ -16,6 +11,7 @@ import ch.njol.util.coll.CollectionUtils; import com.destroystokyo.paper.event.server.PaperServerListPingEvent; import org.bukkit.event.Event; +import org.bukkit.event.server.ServerListPingEvent; import org.jetbrains.annotations.Nullable; @Name("Version String") @@ -29,9 +25,10 @@ "\tset the protocol version to 0 # 13w41a (1.7), so it will show the version string always", "\tset the version string to \"<light green>Version: <orange>%minecraft version%\"" }) -@Since("2.3") -@RequiredPlugins("Paper 1.12.2+") +@AvailableEvents(ServerListPingEvent.class) @Events("Server List Ping") +@RequiredPlugins("Paper 1.12.2+") +@Since("2.3") public class ExprVersionString extends SimpleExpression { private static final boolean PAPER_EVENT_EXISTS = Skript.classExists("com.destroystokyo.paper.event.server.PaperServerListPingEvent");