@@ -137,7 +137,7 @@ public static double log(Object object) {
137
137
//endregion
138
138
139
139
//region Generic
140
- public static AtomicVariable get_atomic_literal (Object atomic ) { // todo returning atomics
140
+ public static AtomicVariable get_atomic_literal (Object atomic ) {
141
141
if (atomic instanceof AtomicVariable variable ) return variable ;
142
142
else return AtomicVariable .wrap (atomic );
143
143
}
@@ -186,27 +186,38 @@ public static MethodAccessor<Object> get_java_method(Object owner, Object name,
186
186
else {
187
187
arguments = new Class []{(Class <?>) parameters };
188
188
}
189
- return Mirror . of (( owner )). useProvider ( Skript . LOADER ).method (name + "" , arguments );
189
+ return mirror ( owner ).method (name + "" , arguments );
190
190
}
191
191
192
192
public static MethodAccessor <Object > get_java_method (Object owner , Object name ) {
193
- return Mirror . of (( owner )). useProvider ( Skript . LOADER ).method (name + "" );
193
+ return mirror ( owner ).method (name + "" );
194
194
}
195
195
196
196
public static boolean has_java_field (Object owner , Object name ) {
197
- return Mirror . of (( owner )). useProvider ( Skript . LOADER ).field ((name ) + "" ) != null ;
197
+ return mirror ( owner ).field ((name ) + "" ) != null ;
198
198
}
199
199
200
200
public static Object get_java_field (Object owner , Object name ) {
201
- final FieldAccessor <?> accessor = Mirror . of (( owner )). useProvider ( Skript . LOADER ).field ((name ) + "" );
201
+ final FieldAccessor <?> accessor = mirror ( owner ).field ((name ) + "" );
202
202
if (accessor == null ) return null ;
203
203
return accessor .get ();
204
204
}
205
205
206
206
public static Void set_java_field (Object owner , Object name , Object value ) {
207
- Mirror . of (( owner )). useProvider ( Skript . LOADER ).field ((name ) + "" ).set ((value ));
207
+ mirror ( owner ).field ((name ) + "" ).set ((value ));
208
208
return null ;
209
209
}
210
+
211
+ private static Mirror <?> mirror (Object owner ) {
212
+ if (owner == null ) return null ;
213
+ if (owner instanceof Class <?> type ) {
214
+ if (type .getName ().startsWith ("skript" )) return Mirror .of (type ).useProvider (Skript .LOADER );
215
+ return Mirror .of (type );
216
+ } else {
217
+ if (owner .getClass ().getName ().startsWith ("skript" )) return Mirror .of (owner ).useProvider (Skript .LOADER );
218
+ return Mirror .of (owner );
219
+ }
220
+ }
210
221
//endregion
211
222
212
223
//region Thread Handlers
0 commit comments