Skip to content

Commit 6e3e390

Browse files
committed
Fix #22
1 parent ac1e879 commit 6e3e390

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/main/java/com/btk5h/skriptmirror/skript/reflect/EvtByReflection.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,20 +92,21 @@ public void setCancelled(boolean cancel) {
9292
}
9393
}
9494

95-
private static void registerEvent(Class<? extends Event> event, EventPriority priority, boolean ignoreCancelled) {
95+
private static void registerEvent(Class<? extends Event> event, EventPriority priority) {
9696
PriorityListener listener = listeners[priority.ordinal()];
9797
Set<Class<? extends Event>> events = listener.getEvents();
9898

9999
if (!events.contains(event)) {
100100
events.add(event);
101101
Bukkit.getPluginManager()
102-
.registerEvent(event, listener, priority, executor, SkriptMirror.getInstance(), ignoreCancelled);
102+
.registerEvent(event, listener, priority, executor, SkriptMirror.getInstance(), false);
103103
}
104104

105105
}
106106

107107
private Class<? extends Event>[] classes;
108108
private EventPriority priority;
109+
private boolean ignoreCancelled;
109110

110111
@SuppressWarnings("unchecked")
111112
@Override
@@ -126,18 +127,23 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
126127
priority = SkriptConfig.defaultEventPriority.value();
127128
}
128129

129-
boolean ignoreCancelled = (parseResult.mark & 1) != 1;
130+
ignoreCancelled = (parseResult.mark & 1) != 1;
130131

131132
for (Class<? extends Event> cls : classes) {
132-
registerEvent(cls, priority, ignoreCancelled);
133+
registerEvent(cls, priority);
133134
}
134135

135136
return true;
136137
}
137138

138139
@Override
139140
public boolean check(Event e) {
140-
Class<? extends Event> eventClass = ((BukkitEvent) e).getEvent().getClass();
141+
Event extractedEvent = ((BukkitEvent) e).getEvent();
142+
Class<? extends Event> eventClass = extractedEvent.getClass();
143+
144+
if (extractedEvent instanceof Cancellable && ((Cancellable) extractedEvent).isCancelled() && ignoreCancelled)
145+
return false;
146+
141147
if (priority == ((BukkitEvent) e).getPriority()) {
142148
for (Class<? extends Event> cls : classes) {
143149
if (cls == eventClass) {

0 commit comments

Comments
 (0)