Skip to content

Commit e16944a

Browse files
committed
Register placeholder pattern for custom syntax
1 parent 9ec3526 commit e16944a

File tree

9 files changed

+25
-5
lines changed

9 files changed

+25
-5
lines changed

src/main/java/org/skriptlang/reflect/syntax/condition/elements/CustomCondition.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ public String toString(Event e, boolean debug) {
7474
@Override
7575
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
7676
SkriptParser.ParseResult parseResult) {
77+
// prevent the user from using the placeholder pattern we register in order to satisfy the registration requirements
78+
if (matchedPattern == 1) {
79+
return false;
80+
}
81+
7782
which = StructCustomCondition.lookup(SkriptUtil.getCurrentScript(), matchedPattern);
7883

7984
if (which == null) {

src/main/java/org/skriptlang/reflect/syntax/condition/elements/StructCustomCondition.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public class StructCustomCondition extends CustomSyntaxStructure<ConditionSyntax
5757
static final Map<ConditionSyntaxInfo, Boolean> parseSectionLoaded = new HashMap<>();
5858

5959
static {
60-
Skript.registerCondition(CustomCondition.class);
60+
Skript.registerCondition(CustomCondition.class, "this is here because at least one pattern is required");
6161
Optional<SyntaxInfo<? extends Condition>> info = SkriptMirror.getAddonInstance().syntaxRegistry().syntaxes(SyntaxRegistry.CONDITION).stream()
6262
.filter(i -> i.type() == CustomCondition.class)
6363
.findFirst();

src/main/java/org/skriptlang/reflect/syntax/effect/elements/CustomEffect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ public String toString(Event e, boolean debug) {
7272
@Override
7373
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
7474
SkriptParser.ParseResult parseResult) {
75+
// prevent the user from using the placeholder pattern we register in order to satisfy the registration requirements
76+
if (matchedPattern == 1) {
77+
return false;
78+
}
79+
7580
which = StructCustomEffect.lookup(SkriptUtil.getCurrentScript(), matchedPattern);
7681

7782
if (which == null) {

src/main/java/org/skriptlang/reflect/syntax/effect/elements/StructCustomEffect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class StructCustomEffect extends CustomSyntaxStructure<EffectSyntaxInfo>
5151
static final Map<EffectSyntaxInfo, Boolean> parseSectionLoaded = new HashMap<>();
5252

5353
static {
54-
Skript.registerEffect(CustomEffect.class);
54+
Skript.registerEffect(CustomEffect.class, "this is here because at least one pattern is required");
5555
Optional<SyntaxInfo<? extends Effect>> info = SkriptMirror.getAddonInstance().syntaxRegistry().syntaxes(SyntaxRegistry.EFFECT).stream()
5656
.filter(i -> i.type() == CustomEffect.class)
5757
.findFirst();

src/main/java/org/skriptlang/reflect/syntax/event/elements/CustomEvent.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ public class CustomEvent extends SkriptEvent {
3434

3535
@Override
3636
public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult) {
37+
// prevent the user from using the placeholder pattern we register in order to satisfy the registration requirements
38+
if (matchedPattern == 1) {
39+
return false;
40+
}
41+
3742
which = StructCustomEvent.lookup(SkriptUtil.getCurrentScript(), matchedPattern);
3843

3944
if (which == null) {

src/main/java/org/skriptlang/reflect/syntax/event/elements/StructCustomEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public boolean canCreateWith(String node) {
6262
static final Map<EventSyntaxInfo, Boolean> parseSectionLoaded = new HashMap<>();
6363

6464
static {
65-
Skript.registerEvent("custom event", CustomEvent.class, BukkitCustomEvent.class);
65+
Skript.registerEvent("custom event", CustomEvent.class, BukkitCustomEvent.class, "this is here because at least one pattern is required");
6666
Optional<BukkitSyntaxInfos.Event<?>> info = SkriptMirror.getAddonInstance().syntaxRegistry().syntaxes(BukkitRegistryKeys.EVENT).stream()
6767
.filter(i -> i.type() == CustomEvent.class)
6868
.findFirst();

src/main/java/org/skriptlang/reflect/syntax/expression/elements/CustomExpression.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ public void change(Event e, Object[] delta, Changer.ChangeMode mode) {
259259
@Override
260260
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
261261
SkriptParser.ParseResult parseResult) {
262+
// prevent the user from using the placeholder pattern we register in order to satisfy the registration requirements
263+
if (matchedPattern == 1) {
264+
return false;
265+
}
266+
262267
which = StructCustomExpression.lookup(SkriptUtil.getCurrentScript(), matchedPattern);
263268

264269
if (which == null) {

src/main/java/org/skriptlang/reflect/syntax/expression/elements/StructCustomConstant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class StructCustomConstant extends CustomSyntaxStructure<ConstantSyntaxIn
3939

4040
static {
4141
// noinspection unchecked
42-
Skript.registerExpression(CustomExpression.class, Object.class, ExpressionType.SIMPLE);
42+
Skript.registerExpression(CustomExpression.class, Object.class, ExpressionType.SIMPLE, "this is here because at least one pattern is required");
4343
Optional<SyntaxInfo<?>> info = SkriptMirror.getAddonInstance().syntaxRegistry().elements().stream()
4444
.filter(i -> Expression.class.isAssignableFrom(i.type()))
4545
.filter(i -> i.type() == CustomExpression.class)

src/main/java/org/skriptlang/reflect/syntax/expression/elements/StructCustomExpression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected Class<?> getValue(String value) {
8888

8989
static {
9090
// noinspection unchecked
91-
Skript.registerExpression(CustomExpression.class, Object.class, ExpressionType.PATTERN_MATCHES_EVERYTHING);
91+
Skript.registerExpression(CustomExpression.class, Object.class, ExpressionType.PATTERN_MATCHES_EVERYTHING, "this is here because at least one pattern is required");
9292
Optional<SyntaxInfo<?>> info = SkriptMirror.getAddonInstance().syntaxRegistry().elements().stream()
9393
.filter(i -> Expression.class.isAssignableFrom(i.type()))
9494
.filter(i -> i.type() == CustomExpression.class)

0 commit comments

Comments
 (0)