Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit e47aa9b

Browse files
committed
Added.
1 parent 9e7b538 commit e47aa9b

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package me.asleepp.skript_itemsadder.elements.effects;
2+
3+
import ch.njol.skript.Skript;
4+
import ch.njol.skript.doc.Description;
5+
import ch.njol.skript.doc.Examples;
6+
import ch.njol.skript.doc.Name;
7+
import ch.njol.skript.lang.Effect;
8+
import ch.njol.skript.lang.Expression;
9+
import ch.njol.skript.lang.SkriptParser;
10+
import ch.njol.util.Kleenean;
11+
import dev.lone.itemsadder.api.CustomEntity;
12+
import org.bukkit.entity.Entity;
13+
import org.bukkit.event.Event;
14+
15+
import javax.annotation.Nullable;
16+
@Name("Make Entity Play Animation")
17+
@Description({"Makes an ItemsAdder entity play an animation."})
18+
@Examples({"make jonesy play animation defaultdance"})
19+
public class EffMakeEntityPlayAnimation extends Effect {
20+
21+
private Expression<Entity> entityExpr;
22+
private Expression<String> animationIdExpr;
23+
24+
25+
static {
26+
Skript.registerEffect(EffMakeEntityPlayAnimation.class, new String[] {"(make|force) %entities% [to] play (anim|animation) %string%"});
27+
}
28+
@Override
29+
protected void execute(Event e) {
30+
Entity[] entities = entityExpr.getAll(e);
31+
String animationId = animationIdExpr.getSingle(e);
32+
33+
if (entities == null || animationId == null) {
34+
return;
35+
}
36+
37+
for (Entity entity : entities) {
38+
CustomEntity customEntity = CustomEntity.byAlreadySpawned(entity);
39+
if (customEntity != null) {
40+
customEntity.playAnimation(animationId);
41+
}
42+
}
43+
}
44+
45+
@Override
46+
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
47+
entityExpr = (Expression<Entity>) exprs[0];
48+
animationIdExpr = (Expression<String>) exprs[1];
49+
return true;
50+
}
51+
52+
@Override
53+
public String toString(@Nullable Event e, boolean debug) {
54+
return null;
55+
}
56+
57+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package me.asleepp.skript_itemsadder.elements.effects;
2+
3+
import ch.njol.skript.Skript;
4+
import ch.njol.skript.doc.Description;
5+
import ch.njol.skript.doc.Examples;
6+
import ch.njol.skript.doc.Name;
7+
import ch.njol.skript.lang.Effect;
8+
import ch.njol.skript.lang.Expression;
9+
import ch.njol.skript.lang.SkriptParser;
10+
import ch.njol.util.Kleenean;
11+
import dev.lone.itemsadder.api.CustomEntity;
12+
import org.bukkit.Location;
13+
import org.bukkit.event.Event;
14+
15+
import javax.annotation.Nullable;
16+
@Name("Spawn ItemsAdder Entity")
17+
@Description({"Spawns an ItemsAdder entity."})
18+
@Examples({"spawn custom entity john_wick at player's location"})
19+
public class EffSpawnCustomEntity extends Effect {
20+
21+
private Expression<String> entityIdExpr;
22+
private Expression<Location> locationExpr;
23+
24+
static {
25+
Skript.registerEffect(EffSpawnCustomEntity.class, new String[] {"(spawn|summon) [the] (custom|ia|itemsadder) (entity|mob) %string% at %locations%"});
26+
}
27+
28+
@Override
29+
protected void execute(Event e) {
30+
String entityId = entityIdExpr.getSingle(e);
31+
Location[] locations = locationExpr.getAll(e);
32+
33+
if (entityId == null || locations == null) {
34+
return;
35+
}
36+
37+
for (Location location : locations) {
38+
CustomEntity customEntity = CustomEntity.spawn(entityId, location);
39+
if (customEntity == null) {
40+
Skript.error("Please provide a valid CustomEntity ID.");
41+
return;
42+
}
43+
}
44+
}
45+
46+
@Override
47+
public String toString(@Nullable Event e, boolean debug) {
48+
return null;
49+
}
50+
51+
@Override
52+
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
53+
return false;
54+
}
55+
}

0 commit comments

Comments
 (0)