Skip to content

Commit 26facfa

Browse files
authored
Merge pull request #116 from SkriptLang/feature/2.9
2.9 support
2 parents afa90a3 + 27b4488 commit 26facfa

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

.github/workflows/gradle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
steps:
1313
- name: Checkout repo
1414
uses: actions/checkout@v2
15-
- name: Set up JDK 1.8
15+
- name: Set up JDK 11
1616
uses: actions/setup-java@v1
1717
with:
18-
java-version: 1.8
18+
java-version: 11
1919
- name: Grant execute permission for gradlew
2020
run: chmod +x gradlew
2121
- name: Build with Gradle

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import org.apache.tools.ant.filters.ReplaceTokens
22

33
group 'com.btk5h.skript-mirror'
4-
version '2.4'
4+
version '2.5'
55

66
apply plugin: 'java'
77

@@ -28,13 +28,13 @@ processResources {
2828
}
2929

3030
compileJava {
31-
sourceCompatibility = '1.8'
32-
targetCompatibility = '1.8'
31+
sourceCompatibility = '11'
32+
targetCompatibility = '11'
3333
options.encoding = 'UTF-8'
3434
}
3535

3636
dependencies {
3737
implementation 'org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT'
38-
implementation 'com.github.SkriptLang:Skript:2.8.0'
38+
implementation 'com.github.SkriptLang:Skript:2.9.0'
3939
implementation 'org.eclipse.jdt:org.eclipse.jdt.annotation:1.1.0'
4040
}

src/main/java/org/skriptlang/reflect/java/elements/events/EvtByReflection.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import ch.njol.skript.Skript;
44
import ch.njol.skript.lang.Literal;
55
import ch.njol.skript.lang.SkriptEvent;
6-
import ch.njol.skript.lang.SkriptParser;
6+
import ch.njol.skript.lang.SkriptParser.ParseResult;
77
import ch.njol.skript.lang.Trigger;
88
import com.btk5h.skriptmirror.JavaType;
99
import com.btk5h.skriptmirror.SkriptMirror;
@@ -22,21 +22,32 @@
2222
public class EvtByReflection extends SkriptEvent {
2323

2424
static {
25-
Skript.registerEvent("*reflection", EvtByReflection.class, BukkitEvent.class, "[1:all] %javatypes%");
25+
Skript.registerEvent("*reflection", EvtByReflection.class, BukkitEvent.class, "%javatypes%");
2626
}
2727

2828
private static class MyEventExecutor implements EventExecutor {
2929
private final Class<? extends Event> eventClass;
30+
private final ListeningBehavior listeningBehavior;
3031
private final Trigger trigger;
3132

3233
public MyEventExecutor(Class<? extends Event> eventClass, Trigger trigger) {
3334
this.eventClass = eventClass;
35+
this.listeningBehavior = ListeningBehavior.UNCANCELLED;
36+
this.trigger = trigger;
37+
}
38+
39+
public MyEventExecutor(Class<? extends Event> eventClass, ListeningBehavior listeningBehavior, Trigger trigger) {
40+
this.eventClass = eventClass;
41+
this.listeningBehavior = listeningBehavior;
3442
this.trigger = trigger;
3543
}
3644

3745
@Override
3846
public void execute(Listener listener, Event event) throws EventException {
3947
if (eventClass.isInstance(event)) {
48+
if (event instanceof Cancellable && !listeningBehavior.matches(((Cancellable) event).isCancelled()))
49+
return;
50+
4051
Event scriptEvent;
4152
scriptEvent = event instanceof Cancellable
4253
? new CancellableBukkitEvent((Cancellable) event) : new BukkitEvent(event);
@@ -77,12 +88,11 @@ public void setCancelled(boolean cancel) {
7788
}
7889

7990
private Class<? extends Event>[] classes;
80-
private boolean ignoreCancelled;
8191
private Listener listener;
8292

8393
@SuppressWarnings("unchecked")
8494
@Override
85-
public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult) {
95+
public boolean init(Literal<?>[] args, int matchedPattern, ParseResult parseResult) {
8696
JavaType[] javaTypes = ((Literal<JavaType>) args[0]).getArray();
8797

8898
classes = new Class[javaTypes.length];
@@ -99,8 +109,6 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
99109
classes[i] = (Class<? extends Event>) clazz;
100110
}
101111

102-
ignoreCancelled = (parseResult.mark & 1) != 1;
103-
104112
listener = new Listener() {};
105113

106114
return true;
@@ -114,10 +122,10 @@ public boolean check(Event event) {
114122
@Override
115123
public boolean postLoad() {
116124
for (Class<? extends Event> eventClass : classes) {
117-
EventExecutor executor = new MyEventExecutor(eventClass, trigger);
125+
EventExecutor executor = new MyEventExecutor(eventClass, listeningBehavior, trigger);
118126

119127
Bukkit.getPluginManager()
120-
.registerEvent(eventClass, listener, getEventPriority(), executor, SkriptMirror.getInstance(), ignoreCancelled);
128+
.registerEvent(eventClass, listener, getEventPriority(), executor, SkriptMirror.getInstance(), listeningBehavior == ListeningBehavior.UNCANCELLED);
121129
}
122130
return true;
123131
}
@@ -126,12 +134,20 @@ public void unload() {
126134
HandlerList.unregisterAll(listener);
127135
}
128136

137+
@Override
138+
public boolean isListeningBehaviorSupported() {
139+
return true;
140+
}
141+
129142
@SuppressWarnings("unchecked")
130143
@Override
131144
public Class<? extends Event>[] getEventClasses() {
132145
boolean hasUncancellable = false;
133146
boolean hasCancellable = false;
134147

148+
if (classes == null)
149+
return new Class[]{BukkitEvent.class};
150+
135151
for (Class<? extends Event> eventClass : classes) {
136152
if (Cancellable.class.isAssignableFrom(eventClass)) {
137153
hasCancellable = true;
@@ -151,8 +167,7 @@ public Class<? extends Event>[] getEventClasses() {
151167

152168
@Override
153169
public String toString(Event e, boolean debug) {
154-
return (ignoreCancelled ? "all " : "")
155-
+ Arrays.stream(classes)
170+
return Arrays.stream(classes)
156171
.map(Class::getSimpleName)
157172
.collect(Collectors.joining(", "));
158173
}

0 commit comments

Comments
 (0)