Skip to content

Commit

Permalink
Deal with conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
TheLimeGlass committed Jul 7, 2023
2 parents d6f2d04 + 549ebc3 commit 59de80f
Show file tree
Hide file tree
Showing 30 changed files with 1,312 additions and 267 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ dependencies {
shadow group: 'org.bstats', name: 'bstats-bukkit', version: '3.0.2'
shadow group: 'net.kyori', name: 'adventure-text-serializer-bungeecord', version: '4.3.0'

implementation group: 'io.papermc.paper', name: 'paper-api', version: '1.20-R0.1-SNAPSHOT'
implementation group: 'io.papermc.paper', name: 'paper-api', version: '1.20.1-R0.1-SNAPSHOT'
implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.annotation', version: '2.2.700'

// Comes from Minecraft including Guava or Gson
Expand Down Expand Up @@ -261,7 +261,7 @@ void createTestTask(String name, String desc, String environments, int javaVersi
}
}

def latestEnv = 'java17/paper-1.20.json'
def latestEnv = 'java17/paper-1.20.1.json'
def latestJava = 17
def oldestJava = 8

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ groupid=ch.njol
name=skript
version=2.7.0-beta3
jarName=Skript.jar
testEnv=java17/paper-1.20
testEnv=java17/paper-1.20.1
testEnvJavaVersion=17
63 changes: 36 additions & 27 deletions src/main/java/ch/njol/skript/classes/data/BukkitClasses.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerQuitEvent.QuitReason;
import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.inventory.Inventory;
Expand Down Expand Up @@ -1459,29 +1460,29 @@ public String toVariableNameString(GameRule o) {
);

Classes.registerClass(new ClassInfo<>(EnchantmentOffer.class, "enchantmentoffer")
.user("enchant[ment][ ]offers?")
.name("Enchantment Offer")
.description("The enchantmentoffer in an enchant prepare event.")
.examples("on enchant prepare:",
"\tset enchant offer 1 to sharpness 1",
"\tset the cost of enchant offer 1 to 10 levels")
.since("2.5")
.parser(new Parser<EnchantmentOffer>() {
@Override
public boolean canParse(ParseContext context) {
return false;
}

@Override
public String toString(EnchantmentOffer eo, int flags) {
return EnchantmentType.toString(eo.getEnchantment(), flags) + " " + eo.getEnchantmentLevel();
}

@Override
public String toVariableNameString(EnchantmentOffer eo) {
return "offer:" + EnchantmentType.toString(eo.getEnchantment()) + "=" + eo.getEnchantmentLevel();
}
}));
.user("enchant[ment][ ]offers?")
.name("Enchantment Offer")
.description("The enchantmentoffer in an enchant prepare event.")
.examples("on enchant prepare:",
"\tset enchant offer 1 to sharpness 1",
"\tset the cost of enchant offer 1 to 10 levels")
.since("2.5")
.parser(new Parser<EnchantmentOffer>() {
@Override
public boolean canParse(ParseContext context) {
return false;
}
@Override
public String toString(EnchantmentOffer eo, int flags) {
return EnchantmentType.toString(eo.getEnchantment(), flags) + " " + eo.getEnchantmentLevel();
}
@Override
public String toVariableNameString(EnchantmentOffer eo) {
return "offer:" + EnchantmentType.toString(eo.getEnchantment()) + "=" + eo.getEnchantmentLevel();
}
}));

Classes.registerClass(new EnumClassInfo<>(Attribute.class, "attributetype", "attribute types")
.user("attribute ?types?")
Expand All @@ -1496,14 +1497,21 @@ public String toVariableNameString(EnchantmentOffer eo) {
.description("Represents the environment of a world.")
.since("2.7"));

if (Skript.classExists("io.papermc.paper.world.MoonPhase")) {
if (Skript.classExists("io.papermc.paper.world.MoonPhase"))
Classes.registerClass(new EnumClassInfo<>(MoonPhase.class, "moonphase", "moon phases")
.user("(lunar|moon) ?phases?")
.name("Moon Phase")
.description("Represents the phase of a moon.")
.since("2.7")
.requiredPlugins("Paper 1.16+"));
}
.requiredPlugins("Paper 1.16+")
.since("2.7"));

if (Skript.classExists("org.bukkit.event.player.PlayerQuitEvent$QuitReason"))
Classes.registerClass(new EnumClassInfo<>(QuitReason.class, "quitreason", "quit reasons")
.user("(quit|disconnect) ?(reason|cause)s?")
.name("Quit Reason")
.description("Represents a quit reason from a player quit server event.")
.requiredPlugins("Paper 1.16.5+")
.since("INSERT VERSION"));

if (Skript.classExists("org.bukkit.entity.Display")) {
Classes.registerClass(new ClassInfo<>(Display.class, "display")
Expand Down Expand Up @@ -1532,6 +1540,7 @@ public String toVariableNameString(EnchantmentOffer eo) {
.description("Represents the transform setting of an item display.")
.since("INSERT VERSION"));
}

}

}
126 changes: 98 additions & 28 deletions src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,40 +18,24 @@
*/
package ch.njol.skript.classes.data;

import ch.njol.skript.Skript;
import ch.njol.skript.aliases.Aliases;
import ch.njol.skript.aliases.ItemType;
import ch.njol.skript.command.CommandEvent;
import ch.njol.skript.events.bukkit.ScriptEvent;
import ch.njol.skript.events.bukkit.SkriptStartEvent;
import ch.njol.skript.events.bukkit.SkriptStopEvent;
import ch.njol.skript.registrations.EventValues;
import ch.njol.skript.util.BlockStateBlock;
import ch.njol.skript.util.BlockUtils;
import ch.njol.skript.util.DelayedChangeBlock;
import ch.njol.skript.util.Direction;
import ch.njol.skript.util.EnchantmentType;
import ch.njol.skript.util.Getter;
import ch.njol.skript.util.slot.InventorySlot;
import ch.njol.skript.util.slot.Slot;
import com.destroystokyo.paper.event.block.AnvilDamagedEvent;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
import io.papermc.paper.event.entity.EntityMoveEvent;
import io.papermc.paper.event.player.PlayerInventorySlotChangeEvent;
import io.papermc.paper.event.player.PlayerTradeEvent;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.FireworkEffect;
import org.bukkit.GameMode;
import org.bukkit.Keyed;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.GameMode;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.AbstractVillager;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Firework;
Expand All @@ -62,7 +46,6 @@
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Vehicle;
import org.bukkit.entity.AbstractVillager;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockCanBuildEvent;
import org.bukkit.event.block.BlockDamageEvent;
Expand All @@ -87,6 +70,7 @@
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityEvent;
import org.bukkit.event.entity.EntityPickupItemEvent;
import org.bukkit.event.entity.EntityResurrectEvent;
import org.bukkit.event.entity.EntityTameEvent;
import org.bukkit.event.entity.FireworkExplodeEvent;
import org.bukkit.event.entity.HorseJumpEvent;
Expand Down Expand Up @@ -124,9 +108,13 @@
import org.bukkit.event.player.PlayerItemBreakEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.event.player.PlayerItemDamageEvent;
import org.bukkit.event.player.PlayerItemHeldEvent;
import org.bukkit.event.player.PlayerItemMendEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerPickupArrowEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerQuitEvent.QuitReason;
import org.bukkit.event.player.PlayerRiptideEvent;
import org.bukkit.event.player.PlayerShearEntityEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
Expand All @@ -145,6 +133,7 @@
import org.bukkit.event.world.PortalCreateEvent;
import org.bukkit.event.world.StructureGrowEvent;
import org.bukkit.event.world.WorldEvent;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView;
Expand All @@ -154,10 +143,29 @@
import org.bukkit.potion.PotionEffectType;
import org.eclipse.jdt.annotation.Nullable;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.destroystokyo.paper.event.block.AnvilDamagedEvent;
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;

import ch.njol.skript.Skript;
import ch.njol.skript.aliases.Aliases;
import ch.njol.skript.aliases.ItemType;
import ch.njol.skript.command.CommandEvent;
import ch.njol.skript.events.bukkit.ScriptEvent;
import ch.njol.skript.events.bukkit.SkriptStartEvent;
import ch.njol.skript.events.bukkit.SkriptStopEvent;
import ch.njol.skript.registrations.EventValues;
import ch.njol.skript.util.BlockStateBlock;
import ch.njol.skript.util.BlockUtils;
import ch.njol.skript.util.DelayedChangeBlock;
import ch.njol.skript.util.Direction;
import ch.njol.skript.util.EnchantmentType;
import ch.njol.skript.util.Getter;
import ch.njol.skript.util.slot.InventorySlot;
import ch.njol.skript.util.slot.Slot;
import io.papermc.paper.event.entity.EntityMoveEvent;
import io.papermc.paper.event.player.PlayerInventorySlotChangeEvent;
import io.papermc.paper.event.player.PlayerTradeEvent;

/**
* @author Peter Güttinger
Expand Down Expand Up @@ -1644,5 +1652,67 @@ public Location get(LootGenerateEvent event) {
}
}, EventValues.TIME_NOW);
}

// EntityResurrectEvent
EventValues.registerEventValue(EntityResurrectEvent.class, Slot.class, new Getter<Slot, EntityResurrectEvent>() {
@Override
@Nullable
public Slot get(EntityResurrectEvent event) {
EquipmentSlot hand = event.getHand();
EntityEquipment equipment = event.getEntity().getEquipment();
if (equipment == null || hand == null)
return null;
return new ch.njol.skript.util.slot.EquipmentSlot(equipment,
(hand == EquipmentSlot.HAND) ? ch.njol.skript.util.slot.EquipmentSlot.EquipSlot.TOOL
: ch.njol.skript.util.slot.EquipmentSlot.EquipSlot.OFF_HAND);
}
}, EventValues.TIME_NOW);

// PlayerItemHeldEvent
EventValues.registerEventValue(PlayerItemHeldEvent.class, Slot.class, new Getter<Slot, PlayerItemHeldEvent>() {
@Override
@Nullable
public Slot get(PlayerItemHeldEvent event) {
return new InventorySlot(event.getPlayer().getInventory(), event.getNewSlot());
}
}, EventValues.TIME_NOW);
EventValues.registerEventValue(PlayerItemHeldEvent.class, Slot.class, new Getter<Slot, PlayerItemHeldEvent>() {
@Override
@Nullable
public Slot get(PlayerItemHeldEvent event) {
return new InventorySlot(event.getPlayer().getInventory(), event.getPreviousSlot());
}
}, EventValues.TIME_PAST);

// PlayerPickupArrowEvent
// This event value is restricted to MC 1.14+ due to an API change which has the return type changed
// which throws a NoSuchMethodError if used in a 1.13 server.
if (Skript.isRunningMinecraft(1, 14))
EventValues.registerEventValue(PlayerPickupArrowEvent.class, Projectile.class, new Getter<Projectile, PlayerPickupArrowEvent>() {
@Override
public Projectile get(PlayerPickupArrowEvent event) {
return event.getArrow();
}
}, EventValues.TIME_NOW);

EventValues.registerEventValue(PlayerPickupArrowEvent.class, ItemStack.class, new Getter<ItemStack, PlayerPickupArrowEvent>() {
@Override
@Nullable
public ItemStack get(PlayerPickupArrowEvent event) {
return event.getItem().getItemStack();
}
}, EventValues.TIME_NOW);

//PlayerQuitEvent
if (Skript.classExists("org.bukkit.event.player.PlayerQuitEvent$QuitReason"))
EventValues.registerEventValue(PlayerQuitEvent.class, QuitReason.class, new Getter<QuitReason, PlayerQuitEvent>() {
@Override
@Nullable
public QuitReason get(PlayerQuitEvent event) {
return event.getReason();
}
}, EventValues.TIME_NOW);

}

}
33 changes: 31 additions & 2 deletions src/main/java/ch/njol/skript/classes/data/DefaultFunctions.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import org.bukkit.World;
import org.bukkit.util.Vector;
import org.eclipse.jdt.annotation.Nullable;
import org.joml.AxisAngle4f;
import org.joml.Quaternionf;

import ch.njol.skript.Skript;
Expand Down Expand Up @@ -309,7 +308,37 @@ public Number[] executeSimple(Object[][] params) {
}.description("Returns the minimum number from a list of numbers.")
.examples("min(1) = 1", "min(1, 2, 3, 4) = 1", "min({some list variable::*})")
.since("2.2"));


Functions.registerFunction(new SimpleJavaFunction<Number>("clamp", new Parameter[]{
new Parameter<>("values", DefaultClasses.NUMBER, false, null),
new Parameter<>("min", DefaultClasses.NUMBER, true, null),
new Parameter<>("max", DefaultClasses.NUMBER, true, null)
}, DefaultClasses.NUMBER, false) {
@Override
public @Nullable Number[] executeSimple(Object[][] params) {
Number[] values = (Number[]) params[0];
Double[] clampedValues = new Double[values.length];
double min = ((Number) params[1][0]).doubleValue();
double max = ((Number) params[2][0]).doubleValue();
// we'll be nice and swap them if they're in the wrong order
double trueMin = Math.min(min, max);
double trueMax = Math.max(min, max);
for (int i = 0; i < values.length; i++) {
double value = values[i].doubleValue();
clampedValues[i] = Math.max(Math.min(value, trueMax), trueMin);
}
return clampedValues;
}
}).description("Clamps one or more values between two numbers.")
.examples(
"clamp(5, 0, 10) = 5",
"clamp(5.5, 0, 5) = 5",
"clamp(0.25, 0, 0.5) = 0.25",
"clamp(5, 7, 10) = 7",
"clamp((5, 0, 10, 9, 13), 7, 10) = (7, 7, 10, 9, 10)",
"set {_clamped::*} to clamp({_values::*}, 0, 10)")
.since("INSERT VERSION");

// misc

Functions.registerFunction(new SimpleJavaFunction<World>("world", new Parameter[] {
Expand Down
Loading

0 comments on commit 59de80f

Please sign in to comment.