Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 2 additions & 42 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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/
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<String>() {
@Override
public boolean check(String title) {
return MidiUtil.isPlaying(title);
}
}, isNegated());
return ID.check(event, MidiUtil::isPlaying, isNegated());
}

@Override
Expand Down
118 changes: 25 additions & 93 deletions src/main/java/com/skquery/skquery/elements/events/EventRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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<ItemStack, EnchantItemEvent>() {
@Override
public ItemStack get(EnchantItemEvent enchantItemEvent) {
return enchantItemEvent.getItem();
}
}, 0);
EventValues.registerEventValue(EnchantItemEvent.class, Player.class, new Getter<Player, EnchantItemEvent>() {
@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");

Expand All @@ -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<ItemStack, InventoryClickEvent>() {
@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<ItemType, ItemProjectileHitEvent>() {
@Override
public ItemType get(ItemProjectileHitEvent itemProjectileHitEvent) {
return new ItemType(itemProjectileHitEvent.getProjectile().getItemStack());
}
}, 0);
EventValues.registerEventValue(ItemProjectileHitEvent.class, LivingEntity.class, new Getter<LivingEntity, ItemProjectileHitEvent>() {
@Override
public LivingEntity get(ItemProjectileHitEvent itemProjectileHitEvent) {
return itemProjectileHitEvent.getShooter();
}
}, 0);
EventValues.registerEventValue(ItemProjectileHitEvent.class, Location.class, new Getter<Location, ItemProjectileHitEvent>() {
@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<ItemStack, EntityChangeBlockEvent>() {
@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<Entity, EntityChangeBlockEvent>() {
@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<Inventory, InventoryCloseEvent>() {
@Override
public Inventory get(InventoryCloseEvent inventoryCloseEvent) {
return inventoryCloseEvent.getInventory();
}
}, 0);
EventValues.registerEventValue(InventoryCloseEvent.class, Player.class, new Getter<Player, InventoryCloseEvent>() {
@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<Entity, VehicleBlockCollisionEvent>() {
@Override
public Entity get(VehicleBlockCollisionEvent vehicleBlockCollisionEvent) {
return vehicleBlockCollisionEvent.getVehicle();
}
}, 0);

EventValues.registerEventValue(VehicleBlockCollisionEvent.class, Block.class, new Getter<Block, VehicleBlockCollisionEvent>() {
@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<Entity, VehicleEntityCollisionEvent>() {
@Override
public Entity get(VehicleEntityCollisionEvent vehicleEntityCollisionEvent) {
return vehicleEntityCollisionEvent.getVehicle();
}
}, 0);

EventValues.registerEventValue(VehicleEntityCollisionEvent.class, Entity.class, new Getter<Entity, VehicleEntityCollisionEvent>() {
@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<Player, AttachedTabCompleteEvent>() {
@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");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.skquery.skquery.elements.expressions;
package com.w00tmast3r.skquery.elements.expressions;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -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] (1value|2node[s]|3node[s with] keys|4list) %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
Expand Down