1
1
package com .btk5h .skriptmirror .skript .custom ;
2
2
3
3
import ch .njol .skript .Skript ;
4
- import ch .njol .skript .classes .Changer ;
4
+ import ch .njol .skript .classes .Changer . ChangeMode ;
5
5
import ch .njol .skript .lang .Expression ;
6
6
import ch .njol .skript .lang .ExpressionType ;
7
- import ch .njol .skript .lang .SkriptParser ;
7
+ import ch .njol .skript .lang .SkriptParser . ParseResult ;
8
8
import ch .njol .skript .lang .util .SimpleExpression ;
9
9
import ch .njol .util .Kleenean ;
10
10
import com .btk5h .skriptmirror .WrappedEvent ;
15
15
public class ExprRawExpression extends SimpleExpression <Expression > {
16
16
static {
17
17
Skript .registerExpression (ExprRawExpression .class , Expression .class , ExpressionType .COMBINED ,
18
+ "[the] (raw|underlying) expression[s] of %objects%" ,
19
+ "%objects%'[s] (raw|underlying) expression[s]" ,
18
20
"[the] raw [expression] %objects%" );
19
21
}
20
22
21
23
private Expression <?> expr ;
22
24
23
25
@ 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 ) {
25
36
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 );
28
39
if (expr == null )
29
40
return null ;
30
41
expr = expr .getSource ();
@@ -33,22 +44,12 @@ protected Expression[] get(Event e) {
33
44
}
34
45
35
46
@ 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 ) {
47
48
return expr instanceof ExprExpression ? new Class [] {Object [].class } : null ;
48
49
}
49
50
50
51
@ Override
51
- public void change (Event event , Object [] delta , Changer . ChangeMode changeMode ) {
52
+ public void change (Event event , Object [] delta , ChangeMode changeMode ) {
52
53
if (!(expr instanceof ExprExpression && event instanceof CustomSyntaxEvent ))
53
54
return ;
54
55
@@ -68,14 +69,19 @@ public void change(Event event, Object[] delta, Changer.ChangeMode changeMode) {
68
69
}
69
70
70
71
@ Override
71
- public String toString ( Event event , boolean debug ) {
72
- return "raw " + expr . toString ( event , debug ) ;
72
+ public boolean isSingle ( ) {
73
+ return true ;
73
74
}
74
75
75
76
@ 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 );
80
85
}
86
+
81
87
}
0 commit comments