Skip to content

Commit

Permalink
add statisticincrementevent
Browse files Browse the repository at this point in the history
  • Loading branch information
aabssmc committed Jul 22, 2024
1 parent b27e997 commit 013f509
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 20 deletions.
33 changes: 33 additions & 0 deletions src/main/java/lol/aabss/skuishy/elements/general/Types.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import ch.njol.skript.registrations.Classes;
import ch.njol.skript.util.EnumUtils;
import io.papermc.paper.datapack.Datapack;
import org.bukkit.Statistic;
import org.bukkit.entity.SpawnCategory;
import org.bukkit.potion.PotionType;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -103,5 +104,37 @@ public boolean canParse(@NotNull ParseContext context) {
})
);
}
if (Classes.getClassInfoNoError("statistic") == null) {
EnumUtils<Statistic> stats = new EnumUtils<>(Statistic.class, "statistic");
Classes.registerClass(new ClassInfo<>(Statistic.class, "statistic")
.user("statistics?")
.name("Statistic")
.description("Represents a statistic of a player.")
.since("2.8")
.parser(new Parser<>() {

@Override
@Nullable
public Statistic parse(@NotNull String input, @NotNull ParseContext context) {
return stats.parse(input);
}

@Override
public boolean canParse(@NotNull ParseContext context) {
return true;
}

@Override
public @NotNull String toVariableNameString(Statistic type) {
return type.name().replaceAll("_", " ").toLowerCase();
}

@Override
public @NotNull String toString(Statistic type, int flags) {
return toVariableNameString(type);
}
})
);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import io.papermc.paper.event.block.PlayerShearBlockEvent;
import io.papermc.paper.event.player.*;
import org.bukkit.Material;
import org.bukkit.Statistic;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemFrame;
Expand All @@ -20,8 +21,8 @@
import org.bukkit.event.entity.PlayerLeashEntityEvent;
import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class PlayerEvents extends SkriptEvent {

Expand Down Expand Up @@ -388,7 +389,6 @@ public Player get(PlayerItemCooldownEvent e) {
}
}, 0);

// player show entity
if (Skript.classExists("org.bukkit.event.player.PlayerShowEntityEvent")) {
Skript.registerEvent("Player - Show Entity", PlayerEvents.class, PlayerShowEntityEvent.class,
"[player] show[n] entity"
Expand All @@ -410,7 +410,6 @@ public Entity get(PlayerShowEntityEvent e) {
}, 0);
}

// player stonecutter recipe select
Skript.registerEvent("Player - Stonecutter Recipe Select", PlayerEvents.class, PlayerStonecutterRecipeSelectEvent.class,
"[player] stone[ ]cutter recipe select[ed]"
)
Expand All @@ -424,7 +423,6 @@ public Player get(PlayerStonecutterRecipeSelectEvent e) {
}
}, 0);

// player take lectern book
Skript.registerEvent("Player - Take Lectern Book", PlayerEvents.class, PlayerTakeLecternBookEvent.class,
"[player] (take|took) lectern book"
)
Expand All @@ -450,7 +448,6 @@ public ItemStack get(PlayerTakeLecternBookEvent e) {
}
}, 0);

// player track entity
if (Skript.classExists("io.papermc.paper.event.player.PlayerTrackEntityEvent")) {
Skript.registerEvent("Player - Track Entity", PlayerEvents.class, PlayerTrackEntityEvent.class,
"[player] track[ed] entity"
Expand All @@ -472,7 +469,6 @@ public Entity get(PlayerTrackEntityEvent e) {
}, 0);
}

// player untrack entity
if (Skript.classExists("io.papermc.paper.event.player.PlayerUntrackEntityEvent")) {
Skript.registerEvent("Player - Untrack Entity", PlayerEvents.class, PlayerUntrackEntityEvent.class,
"[player] untrack[ed] entity"
Expand All @@ -494,27 +490,52 @@ public Entity get(PlayerUntrackEntityEvent e) {
}, 0);
}

// pre player attack entity
if (Skript.classExists("io.papermc.paper.event.player.PrePlayerAttackEntityEvent")) {
Skript.registerEvent("Player - Pre-Attack Entity", PlayerEvents.class, PrePlayerAttackEntityEvent.class,
"pre[ |-]player attack[ed] entity"
if (Skript.classExists("org.bukkit.event.player.PlayerStatisticIncrementEvent")) {
Skript.registerEvent("Player - Statistic Increment", PlayerEvents.class, PlayerStatisticIncrementEvent.class,
"[player] stat[istic] increment"
)
.description("Called before a player attacks an entity.")
.examples("on pre player attack entity:")
.since("2.0");
EventValues.registerEventValue(PrePlayerAttackEntityEvent.class, Player.class, new Getter<>() {
.description("Called when a player statistic is incremented.\n" +
"This event is not called for some high frequency statistics, e. g. movement based statistics.")
.examples("on async preplayer login:")
.since("2.8");
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, Player.class, new Getter<>() {
@Override
public Player get(PrePlayerAttackEntityEvent e) {
public Player get(PlayerStatisticIncrementEvent e) {
return e.getPlayer();
}
}, 0);
EventValues.registerEventValue(PrePlayerAttackEntityEvent.class, Entity.class, new Getter<>() {
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, Integer.class, new Getter<>() {
@Override
public Entity get(PrePlayerAttackEntityEvent e) {
return e.getAttacked();
public Integer get(PlayerStatisticIncrementEvent e) {
return e.getNewValue();
}
}, 0);
}, 1);
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, Integer.class, new Getter<>() {
@Override
public Integer get(PlayerStatisticIncrementEvent e) {
return e.getPreviousValue();
}
}, -1);
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, org.bukkit.entity.EntityType.class, new Getter<>() {
@Override
public org.bukkit.entity.EntityType get(PlayerStatisticIncrementEvent e) {
return e.getEntityType();
}
}, -1);
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, Material.class, new Getter<>() {
@Override
public Material get(PlayerStatisticIncrementEvent e) {
return e.getMaterial();
}
}, -1);
EventValues.registerEventValue(PlayerStatisticIncrementEvent.class, Statistic.class, new Getter<>() {
@Override
public Statistic get(PlayerStatisticIncrementEvent e) {
return e.getStatistic();
}
}, -1);
}

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
public class EffCopyPersistentData extends Effect {

static {
Skript.registerEffect(EffEditPersistentData.class,
Skript.registerEffect(EffCopyPersistentData.class,
"(:replace|copy) persistent data [container] from %persistentdatacontainer% to %persistentdatacontainers%");
}

Expand Down
1 change: 1 addition & 0 deletions src/main/resources/lang/default.lang
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ types:
skinmodel: skinmodel¦s @a
namespacedkey: namespacedkey¦s @a
persistentdatacontainer: [persistent ?]data ?container¦s @a
statistic: statistic¦s @a

hologramclicktype: hologram ?click ?type¦s @a
hologram: hologram¦s @a
Expand Down

0 comments on commit 013f509

Please sign in to comment.