Skip to content

Commit 1f37f7d

Browse files
committed
Fix tests
1 parent 8e3e5c5 commit 1f37f7d

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/main/java/ch/njol/skript/expressions/base/EventValueExpression.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
import org.skriptlang.skript.util.Priority;
3333

3434
import java.lang.reflect.Array;
35+
import java.util.Arrays;
36+
import java.util.HashSet;
37+
import java.util.Set;
3538

3639
/**
3740
* A useful class for creating default expressions. It simply returns the event value of the given type.
@@ -161,12 +164,11 @@ public static <T> void register(Class<? extends EventValueExpression<T>> express
161164
}
162165

163166
private final EventValueRegistry registry = Skript.instance().registry(EventValueRegistry.class);
167+
public final Set<Class<? extends Event>> events = new HashSet<>();
164168

165169
private final Class<?> componentType;
166170
private final Class<? extends T> type;
167171

168-
@SuppressWarnings("unchecked")
169-
private Class<? extends Event>[] events = new Class[0];
170172
private @Nullable Changer<? super T> changer;
171173
private final boolean single;
172174
private final boolean exact;
@@ -231,7 +233,7 @@ public boolean init() {
231233
ParseLogHandler log = SkriptLogger.startParseLogHandler();
232234
try {
233235
boolean hasValue = false;
234-
events = parser.getCurrentEvents();
236+
Class<? extends Event>[] events = parser.getCurrentEvents();
235237
if (events == null) {
236238
assert false;
237239
return false;
@@ -252,6 +254,7 @@ public boolean init() {
252254
return false;
253255
}
254256
log.printLog();
257+
this.events.addAll(Arrays.asList(events));
255258
return true;
256259
} finally {
257260
log.stop();
@@ -346,7 +349,7 @@ public void change(Event event, @Nullable Object[] delta, ChangeMode mode) {
346349

347350
@Override
348351
public boolean setTime(int time) {
349-
events = getParser().getCurrentEvents();
352+
Class<? extends Event>[] events = getParser().getCurrentEvents();
350353
if (events == null) {
351354
assert false;
352355
return false;
@@ -356,6 +359,10 @@ public boolean setTime(int time) {
356359
if (getEventValuesForTime(event, EventValue.TIME_PAST).successful()
357360
|| getEventValuesForTime(event, EventValue.TIME_FUTURE).successful()) {
358361
super.setTime(time);
362+
// Since the time was changed, we now need to re-initialize the parse time events we already got. START
363+
this.events.clear();
364+
init();
365+
// END
359366
return true;
360367
}
361368
}

0 commit comments

Comments
 (0)