diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d04b14d..ecae3a5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up JDK 11 + - name: Set up JDK 21 uses: actions/setup-java@v3 with: - java-version: '11' + java-version: '21' distribution: 'adopt' cache: gradle - name: Grant execute permission for gradlew @@ -32,43 +32,3 @@ jobs: with: name: nightly-jar-builds path: build/libs/*.jar -# Automatically build the project and run any configured tests for every push -# and submitted pull request. This can help catch issues that only occur on -# certain platforms or Java versions, and provides a first line of defence -# against bad commits. - -name: build -on: [pull_request, push] - -jobs: - build: - strategy: - matrix: - # Use these Java versions - java: [ - 21, - ] - # and run on both Linux and Windows - os: [ubuntu-latest, windows-2022] - runs-on: ${{ matrix.os }} - steps: - - name: checkout repository - uses: actions/checkout@v4 - - name: validate gradle wrapper - uses: gradle/wrapper-validation-action@v3 - - name: setup jdk ${{ matrix.java }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java }} - distribution: 'microsoft' - - name: make gradle wrapper executable - if: runner.os != 'Windows' - run: chmod +x ./gradlew - - name: build - run: ./gradlew clean build - - name: capture build artifacts - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v4 - with: - name: Artifacts - path: build/libs/ diff --git a/src/main/java/com/skquery/skquery/elements/conditions/CondMidi.java b/src/main/java/com/skquery/skquery/elements/conditions/CondMidi.java index f34b582..efa40a3 100644 --- a/src/main/java/com/skquery/skquery/elements/conditions/CondMidi.java +++ b/src/main/java/com/skquery/skquery/elements/conditions/CondMidi.java @@ -4,7 +4,6 @@ import ch.njol.skript.lang.Condition; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; -import ch.njol.util.Checker; import ch.njol.util.Kleenean; import org.bukkit.event.Event; @@ -30,12 +29,7 @@ public boolean init(Expression[] expressions, int matchedPattern, Kleenean is @Override public boolean check(Event event) { - return ID.check(event, new Checker() { - @Override - public boolean check(String title) { - return MidiUtil.isPlaying(title); - } - }, isNegated()); + return ID.check(event, MidiUtil::isPlaying, isNegated()); } @Override diff --git a/src/main/java/com/skquery/skquery/elements/events/EventRegistry.java b/src/main/java/com/skquery/skquery/elements/events/EventRegistry.java index 3f640c7..3716917 100644 --- a/src/main/java/com/skquery/skquery/elements/events/EventRegistry.java +++ b/src/main/java/com/skquery/skquery/elements/events/EventRegistry.java @@ -2,7 +2,6 @@ import ch.njol.skript.aliases.ItemType; import ch.njol.skript.registrations.EventValues; -import ch.njol.skript.util.Getter; import com.skquery.skquery.SkQuery; import com.skquery.skquery.annotations.AbstractTask; @@ -24,6 +23,7 @@ import org.bukkit.event.entity.SheepDyeWoolEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerToggleFlightEvent; @@ -39,18 +39,8 @@ public class EventRegistry extends AbstractTask { @Override public void run() { registerEvent("Enchant", EnchantItemEvent.class, "enchant"); - EventValues.registerEventValue(EnchantItemEvent.class, ItemStack.class, new Getter() { - @Override - public ItemStack get(EnchantItemEvent enchantItemEvent) { - return enchantItemEvent.getItem(); - } - }, 0); - EventValues.registerEventValue(EnchantItemEvent.class, Player.class, new Getter() { - @Override - public Player get(EnchantItemEvent enchantItemEvent) { - return enchantItemEvent.getEnchanter(); - } - }, 0); + EventValues.registerEventValue(EnchantItemEvent.class, ItemStack.class, EnchantItemEvent::getItem, 0); + EventValues.registerEventValue(EnchantItemEvent.class, Player.class, EnchantItemEvent::getEnchanter, 0); registerEvent("Sheep Dye", SheepDyeWoolEvent.class, "sheep dye"); @@ -61,104 +51,46 @@ public Player get(EnchantItemEvent enchantItemEvent) { registerEvent("Flight Toggle", PlayerToggleFlightEvent.class, "[player] toggl(e|ing) (flight|fly)", "[player] (flight|fly) toggl(e|ing)"); registerEvent("Inventory Click", InventoryClickEvent.class, "inventory click"); - EventValues.registerEventValue(InventoryClickEvent.class, ItemStack.class, new Getter() { - @Override - public ItemStack get(InventoryClickEvent inventoryClickEvent) { - return inventoryClickEvent.getCurrentItem(); - } - }, 0); + EventValues.registerEventValue(InventoryClickEvent.class, ItemStack.class, InventoryClickEvent::getCurrentItem, 0); registerEvent("Generic Move", PlayerMoveEvent.class, "any move[ment]"); registerEvent("Server Ping", ServerListPingEvent.class, "[server] [list] ping"); registerEvent("Item Projectile Hit", ItemProjectileHitEvent.class, "item [projectile] hit"); - EventValues.registerEventValue(ItemProjectileHitEvent.class, ItemType.class, new Getter() { - @Override - public ItemType get(ItemProjectileHitEvent itemProjectileHitEvent) { - return new ItemType(itemProjectileHitEvent.getProjectile().getItemStack()); - } - }, 0); - EventValues.registerEventValue(ItemProjectileHitEvent.class, LivingEntity.class, new Getter() { - @Override - public LivingEntity get(ItemProjectileHitEvent itemProjectileHitEvent) { - return itemProjectileHitEvent.getShooter(); - } - }, 0); - EventValues.registerEventValue(ItemProjectileHitEvent.class, Location.class, new Getter() { - @Override - public Location get(ItemProjectileHitEvent itemProjectileHitEvent) { - return itemProjectileHitEvent.getProjectile().getLocation(); - } - }, 0); + EventValues.registerEventValue(ItemProjectileHitEvent.class, ItemType.class, + (itemProjectileHitEvent) -> new ItemType(itemProjectileHitEvent.getProjectile().getItemStack()), 0); + EventValues.registerEventValue(ItemProjectileHitEvent.class, LivingEntity.class, + ItemProjectileHitEvent::getShooter, 0); + EventValues.registerEventValue(ItemProjectileHitEvent.class, Location.class, + (itemProjectileHitEvent)-> itemProjectileHitEvent.getProjectile().getLocation(), 0); registerEvent("Falling Block Land", EvtBlockLand.class, EntityChangeBlockEvent.class, "block land"); - EventValues.registerEventValue(EntityChangeBlockEvent.class, ItemStack.class, new Getter() { - @Override - public ItemStack get(EntityChangeBlockEvent entityChangeBlockEvent) { - return entityChangeBlockEvent.getEntity() instanceof FallingBlock ? new ItemStack(((FallingBlock) entityChangeBlockEvent.getEntity()).getBlockData().getMaterial()) : null; - } - }, 0); - EventValues.registerEventValue(EntityChangeBlockEvent.class, Entity.class, new Getter() { - @Override - public Entity get(EntityChangeBlockEvent entityChangeBlockEvent) { - return entityChangeBlockEvent.getEntity() instanceof FallingBlock ? entityChangeBlockEvent.getEntity() : null; - } - }, 0); + EventValues.registerEventValue(EntityChangeBlockEvent.class, ItemStack.class, + (entityChangeBlockEvent) -> entityChangeBlockEvent.getEntity() instanceof FallingBlock ? new ItemStack(((FallingBlock) entityChangeBlockEvent.getEntity()).getBlockData().getMaterial()) : null, 0); + EventValues.registerEventValue(EntityChangeBlockEvent.class, Entity.class, + (entityChangeBlockEvent) -> entityChangeBlockEvent.getEntity() instanceof FallingBlock ? entityChangeBlockEvent.getEntity() : null, 0); registerEvent("Close Inventory", InventoryCloseEvent.class, "inventory [window] close"); - EventValues.registerEventValue(InventoryCloseEvent.class, Inventory.class, new Getter() { - @Override - public Inventory get(InventoryCloseEvent inventoryCloseEvent) { - return inventoryCloseEvent.getInventory(); - } - }, 0); - EventValues.registerEventValue(InventoryCloseEvent.class, Player.class, new Getter() { - @Override - public Player get(InventoryCloseEvent inventoryCloseEvent) { - return inventoryCloseEvent.getPlayer() instanceof Player ? (Player) inventoryCloseEvent.getPlayer() : null; - } - }, 0); + EventValues.registerEventValue(InventoryCloseEvent.class, Inventory.class, InventoryEvent::getInventory, 0); + EventValues.registerEventValue(InventoryCloseEvent.class, Player.class, + (inventoryCloseEvent) -> inventoryCloseEvent.getPlayer() instanceof Player ? (Player) inventoryCloseEvent.getPlayer() : null, 0); registerEvent("Vehicle Collide With Block", VehicleBlockCollisionEvent.class, "vehicle (block collide|collide with block)"); - EventValues.registerEventValue(VehicleBlockCollisionEvent.class, Entity.class, new Getter() { - @Override - public Entity get(VehicleBlockCollisionEvent vehicleBlockCollisionEvent) { - return vehicleBlockCollisionEvent.getVehicle(); - } - }, 0); - - EventValues.registerEventValue(VehicleBlockCollisionEvent.class, Block.class, new Getter() { - @Override - public Block get(VehicleBlockCollisionEvent vehicleBlockCollisionEvent) { - return vehicleBlockCollisionEvent.getBlock(); - } - }, 0); + EventValues.registerEventValue(VehicleBlockCollisionEvent.class, Entity.class, VehicleBlockCollisionEvent::getVehicle, 0); + + EventValues.registerEventValue(VehicleBlockCollisionEvent.class, Block.class, VehicleBlockCollisionEvent::getBlock, 0); registerEvent("Vehicle Collide With Entity", VehicleBlockCollisionEvent.class, "vehicle (entity collide|collide with entity)"); - EventValues.registerEventValue(VehicleEntityCollisionEvent.class, Entity.class, new Getter() { - @Override - public Entity get(VehicleEntityCollisionEvent vehicleEntityCollisionEvent) { - return vehicleEntityCollisionEvent.getVehicle(); - } - }, 0); - - EventValues.registerEventValue(VehicleEntityCollisionEvent.class, Entity.class, new Getter() { - @Override - public Entity get(VehicleEntityCollisionEvent vehicleEntityCollisionEvent) { - return vehicleEntityCollisionEvent.getEntity(); - } - }, 0); + EventValues.registerEventValue(VehicleEntityCollisionEvent.class, Entity.class, VehicleEntityCollisionEvent::getVehicle, 0); + + EventValues.registerEventValue(VehicleEntityCollisionEvent.class, Entity.class, VehicleEntityCollisionEvent::getEntity, 0); registerEvent("*Script Options Header", ScriptOptionsEvent.class, "script options"); registerEvent("*Tab Complete", EvtAttachCompleter.class, AttachedTabCompleteEvent.class, "tab complet(er|ion) [for [command]] %string%"); - EventValues.registerEventValue(AttachedTabCompleteEvent.class, Player.class, new Getter() { - @Override - public Player get(AttachedTabCompleteEvent attachedTabCompleteEvent) { - return attachedTabCompleteEvent.getSender() instanceof Player ? ((Player) attachedTabCompleteEvent.getSender()) : null; - } - }, 0); + EventValues.registerEventValue(AttachedTabCompleteEvent.class, Player.class, + (e) -> e.getSender() instanceof Player ? ((Player) e.getSender()) : null, 0); try { SkQuery.getAddonInstance().loadClasses("com.skquery.skquery.elements", "events"); diff --git a/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderSize.java b/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderSize.java index 537985a..be23f21 100644 --- a/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderSize.java +++ b/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderSize.java @@ -70,7 +70,7 @@ public void change(Event event, Object[] delta, ChangeMode mode) { return; Timespan time = timespan.getSingle(event); double amount = ((Number) delta[0]).doubleValue(); - long milliseconds = time == null ? -1L : time.getMilliSeconds() / 1000L; + long milliseconds = time == null ? -1L : time.getAs(Timespan.TimePeriod.MILLISECOND) / 1000L; switch (mode) { case SET: for (WorldBorder border : borders.getArray(event)) { diff --git a/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderWarningTime.java b/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderWarningTime.java index 5deadaa..2fa762b 100644 --- a/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderWarningTime.java +++ b/src/main/java/com/skquery/skquery/elements/expressions/ExprBorderWarningTime.java @@ -46,7 +46,7 @@ public void change(Event event, Object[] delta, ChangeMode mode) { if (delta[0] == null) return; Timespan timespan = (Timespan) delta[0]; - Number time = timespan.getMilliSeconds() / 1000L; + Number time = timespan.getAs(Timespan.TimePeriod.MILLISECOND) / 1000L; switch (mode) { case SET: for (WorldBorder border : getExpr().getArray(event)) diff --git a/src/main/java/com/skquery/skquery/elements/expressions/ExprYaml.java b/src/main/java/com/skquery/skquery/elements/expressions/ExprYaml.java index a45e306..effa19c 100644 --- a/src/main/java/com/skquery/skquery/elements/expressions/ExprYaml.java +++ b/src/main/java/com/skquery/skquery/elements/expressions/ExprYaml.java @@ -1,4 +1,4 @@ -package com.skquery.skquery.elements.expressions; +package com.w00tmast3r.skquery.elements.expressions; import java.io.File; import java.io.IOException; @@ -58,7 +58,7 @@ public boolean init(Expression[] e, int matchedPattern, Kleenean isDelayed, P @Override public String toString(Event e, boolean arg1) { - return "[skellett] (file|y[a]ml) [file] (1�value|2�node[s]|3�node[s with] keys|4�list) %string% (in|at|from) [file] %string%"; + return "[skellett] (file|y[a]ml) [file] (1¦value|2¦node[s]|3¦node[s with] keys|4¦list) %string% (in|at|from) [file] %string%"; } @Override