Skip to content

Commit 2303c91

Browse files
authored
Deprecate ExprRawExpression pattern and add new ones, plus cleanup. (#135)
1 parent fc62c54 commit 2303c91

File tree

1 file changed

+29
-23
lines changed

1 file changed

+29
-23
lines changed
Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.btk5h.skriptmirror.skript.custom;
22

33
import ch.njol.skript.Skript;
4-
import ch.njol.skript.classes.Changer;
4+
import ch.njol.skript.classes.Changer.ChangeMode;
55
import ch.njol.skript.lang.Expression;
66
import ch.njol.skript.lang.ExpressionType;
7-
import ch.njol.skript.lang.SkriptParser;
7+
import ch.njol.skript.lang.SkriptParser.ParseResult;
88
import ch.njol.skript.lang.util.SimpleExpression;
99
import ch.njol.util.Kleenean;
1010
import com.btk5h.skriptmirror.WrappedEvent;
@@ -15,16 +15,27 @@
1515
public class ExprRawExpression extends SimpleExpression<Expression> {
1616
static {
1717
Skript.registerExpression(ExprRawExpression.class, Expression.class, ExpressionType.COMBINED,
18+
"[the] (raw|underlying) expression[s] of %objects%",
19+
"%objects%'[s] (raw|underlying) expression[s]",
1820
"[the] raw [expression] %objects%");
1921
}
2022

2123
private Expression<?> expr;
2224

2325
@Override
24-
protected Expression[] get(Event e) {
26+
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
27+
if (matchedPattern == 2)
28+
Skript.warning("Using 'raw %objects%' is deprecated, please use 'the (raw|underlying) expression of %objects%' instead. " +
29+
"If you meant to use Skript's 'raw %strings%' expression, try 'raw string within %objects%'.");
30+
expr = SkriptUtil.defendExpression(exprs[0]);
31+
return SkriptUtil.canInitSafely(expr);
32+
}
33+
34+
@Override
35+
protected Expression<?>[] get(Event event) {
2536
Expression<?> expr = this.expr;
26-
if (expr instanceof ExprExpression && e instanceof CustomSyntaxEvent) {
27-
expr = ((ExprExpression) expr).getExpression(e);
37+
if (expr instanceof ExprExpression<?> exprExpr && event instanceof CustomSyntaxEvent) {
38+
expr = exprExpr.getExpression(event);
2839
if (expr == null)
2940
return null;
3041
expr = expr.getSource();
@@ -33,22 +44,12 @@ protected Expression[] get(Event e) {
3344
}
3445

3546
@Override
36-
public boolean isSingle() {
37-
return true;
38-
}
39-
40-
@Override
41-
public Class<? extends Expression> getReturnType() {
42-
return Expression.class;
43-
}
44-
45-
@Override
46-
public Class<?>[] acceptChange(Changer.ChangeMode changeMode) {
47+
public Class<?>[] acceptChange(ChangeMode changeMode) {
4748
return expr instanceof ExprExpression ? new Class[] {Object[].class} : null;
4849
}
4950

5051
@Override
51-
public void change(Event event, Object[] delta, Changer.ChangeMode changeMode) {
52+
public void change(Event event, Object[] delta, ChangeMode changeMode) {
5253
if (!(expr instanceof ExprExpression && event instanceof CustomSyntaxEvent))
5354
return;
5455

@@ -68,14 +69,19 @@ public void change(Event event, Object[] delta, Changer.ChangeMode changeMode) {
6869
}
6970

7071
@Override
71-
public String toString(Event event, boolean debug) {
72-
return "raw " + expr.toString(event, debug);
72+
public boolean isSingle() {
73+
return true;
7374
}
7475

7576
@Override
76-
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
77-
SkriptParser.ParseResult parseResult) {
78-
expr = SkriptUtil.defendExpression(exprs[0]);
79-
return SkriptUtil.canInitSafely(expr);
77+
@SuppressWarnings("rawtypes")
78+
public Class<? extends Expression> getReturnType() {
79+
return Expression.class;
80+
}
81+
82+
@Override
83+
public String toString(Event event, boolean debug) {
84+
return "the underlying expression of " + expr.toString(event, debug);
8085
}
86+
8187
}

0 commit comments

Comments
 (0)