@@ -137,7 +137,7 @@ public static double log(Object object) {
137137 //endregion
138138
139139 //region Generic
140- public static AtomicVariable get_atomic_literal (Object atomic ) { // todo returning atomics
140+ public static AtomicVariable get_atomic_literal (Object atomic ) {
141141 if (atomic instanceof AtomicVariable variable ) return variable ;
142142 else return AtomicVariable .wrap (atomic );
143143 }
@@ -186,27 +186,38 @@ public static MethodAccessor<Object> get_java_method(Object owner, Object name,
186186 else {
187187 arguments = new Class []{(Class <?>) parameters };
188188 }
189- return Mirror . of (( owner )). useProvider ( Skript . LOADER ).method (name + "" , arguments );
189+ return mirror ( owner ).method (name + "" , arguments );
190190 }
191191
192192 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 + "" );
194194 }
195195
196196 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 ;
198198 }
199199
200200 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 ) + "" );
202202 if (accessor == null ) return null ;
203203 return accessor .get ();
204204 }
205205
206206 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 ));
208208 return null ;
209209 }
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+ }
210221 //endregion
211222
212223 //region Thread Handlers
0 commit comments