Skip to content

Commit 42314ee

Browse files
committed
Fix a couple bugs
1 parent 7e1387d commit 42314ee

3 files changed

Lines changed: 23 additions & 27 deletions

File tree

src/main/java/org/skriptlang/skript/bukkit/spawners/elements/events/EvtSpawnerSpawn.java

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
import ch.njol.skript.lang.SyntaxStringBuilder;
99
import ch.njol.util.coll.CollectionUtils;
1010
import com.destroystokyo.paper.event.entity.PreSpawnerSpawnEvent;
11-
import org.bukkit.Material;
12-
import org.bukkit.block.Block;
1311
import org.bukkit.entity.EntityType;
1412
import org.bukkit.event.Event;
1513
import org.bukkit.event.entity.EntityEvent;
@@ -26,12 +24,12 @@
2624
public class EvtSpawnerSpawn extends SkriptEvent {
2725

2826
public static void register(SyntaxRegistry registry) {
29-
Class<? extends Event>[] events = CollectionUtils.array(SpawnerSpawnEvent.class, PreSpawnerSpawnEvent.class);
30-
String pattern = "[:pre] spawner spawn[ing] [of %-entitydatas%]";
27+
Class<? extends Event>[] events = CollectionUtils.array(SpawnerSpawnEvent.class);
28+
String pattern = "mob:mob spawner spawn[ing] [of %-entitydatas%]";
3129

3230
if (SpawnerUtils.IS_RUNNING_1_21) {
33-
events = CollectionUtils.array(SpawnerSpawnEvent.class, PreSpawnerSpawnEvent.class, TrialSpawnerSpawnEvent.class);
34-
pattern = "[:pre] [:trial] spawner spawn[ing] [of %-entitydatas%]";
31+
events = CollectionUtils.array(SpawnerSpawnEvent.class, TrialSpawnerSpawnEvent.class);
32+
pattern = "[:trial|:mob] spawner spawn[ing] [of %-entitydatas%]";
3533
}
3634

3735
registry.register(BukkitRegistryKeys.EVENT, BukkitSyntaxInfos.Event.builder(EvtSpawnerSpawn.class, "Spawner Spawn")
@@ -47,14 +45,15 @@ public static void register(SyntaxRegistry registry) {
4745
);
4846
}
4947

50-
private boolean pre;
5148
private boolean trial;
49+
private boolean mob;
5250
private Literal<EntityData<?>> entityDatas;
5351

5452
@Override
5553
public boolean init(Literal<?>[] args, int matchedPattern, ParseResult parseResult) {
56-
pre = parseResult.hasTag("pre");
5754
trial = parseResult.hasTag("trial");
55+
mob = parseResult.hasTag("mob");
56+
System.out.println(mob);
5857
//noinspection unchecked
5958
entityDatas = (Literal<EntityData<?>>) args[0];
6059
return true;
@@ -63,12 +62,6 @@ public boolean init(Literal<?>[] args, int matchedPattern, ParseResult parseResu
6362

6463
@Override
6564
public boolean check(Event event) {
66-
if (pre && event instanceof PreSpawnerSpawnEvent preEvent) {
67-
Block block = preEvent.getSpawnerLocation().getBlock();
68-
if (trial && block.getType() != Material.TRIAL_SPAWNER)
69-
return false;
70-
}
71-
7265
if (entityDatas != null) {
7366
EntityType currentType = null;
7467

@@ -90,23 +83,25 @@ public boolean check(Event event) {
9083
return false;
9184
}
9285

93-
if (pre) {
94-
return event instanceof PreSpawnerSpawnEvent;
95-
} else if (trial) {
86+
if (trial) {
9687
return event instanceof TrialSpawnerSpawnEvent;
97-
} else {
88+
} else if (mob) {
9889
return event instanceof SpawnerSpawnEvent;
9990
}
91+
92+
return true;
10093
}
10194

10295
@Override
10396
public String toString(@Nullable Event event, boolean debug) {
10497
SyntaxStringBuilder builder = new SyntaxStringBuilder(event, debug);
10598

106-
if (pre)
107-
builder.append("pre");
108-
if (trial)
99+
if (trial) {
109100
builder.append("trial");
101+
} else if (mob) {
102+
builder.append("mob");
103+
}
104+
110105
builder.append("spawner spawn");
111106
if (entityDatas != null)
112107
builder.append("of", entityDatas);

src/main/java/org/skriptlang/skript/bukkit/spawners/elements/expressions/spawner/spawnerdata/ExprSpawnerData.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,11 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
6969

7070
if (!dataType.isTrial() && data instanceof SkriptMobSpawnerData mobData) {
7171
SpawnerUtils.applyToMobSpawner(object, mobData);
72-
} else if (dataType == SpawnerDataType.TRIAL
72+
} else if (
73+
dataType == SpawnerDataType.TRIAL
7374
&& SpawnerUtils.isTrialSpawner(object)
74-
&& data instanceof SkriptTrialSpawnerData trialData)
75-
{
75+
&& data instanceof SkriptTrialSpawnerData trialData
76+
) {
7677
trialData.applyDataToTrialSpawner(SpawnerUtils.getTrialSpawner(object), ominous);
7778
}
7879
}

src/main/java/org/skriptlang/skript/bukkit/spawners/util/SpawnerUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ public static void applyToMobSpawner(Object object, SkriptMobSpawnerData data) {
173173
* @return the SkriptSpawnerData if the object is a valid spawner for the given data type, null otherwise
174174
*/
175175
public static SkriptSpawnerData getDataFromObject(Object object, SpawnerDataType dataType) {
176-
if (dataType.isMob() && isCreatureSpawner(object)) {
176+
if ((dataType.isMob() || dataType.isAny()) && isCreatureSpawner(object)) {
177177
return SkriptMobSpawnerData.fromSpawner(getCreatureSpawner(object));
178-
} else if (dataType.isMob() && isSpawnerMinecart(object)) {
178+
} else if ((dataType.isMob() || dataType.isAny()) && isSpawnerMinecart(object)) {
179179
return SkriptMobSpawnerData.fromSpawner(getSpawnerMinecart(object));
180-
} else if (dataType.isTrial() && isTrialSpawner(object)) {
180+
} else if ((dataType.isTrial() || dataType.isAny()) && isTrialSpawner(object)) {
181181
return SkriptTrialSpawnerData.fromTrialSpawner(getTrialSpawner(object));
182182
}
183183
return null;

0 commit comments

Comments
 (0)