Refactor ReflectionUtil (renamed class + changed a lot of stuff inside) and added support for accessing filtered field and changing final fields

This commit is contained in:
2021-12-27 17:53:17 +01:00
parent 7fc419086d
commit a82820cc15
5 changed files with 382 additions and 241 deletions

View File

@@ -22,7 +22,7 @@ import com.mojang.brigadier.tree.LiteralCommandNode;
import fr.pandacube.lib.core.chat.ChatStatic;
import fr.pandacube.lib.core.commands.SuggestionsSupplier;
import fr.pandacube.lib.core.util.Log;
import fr.pandacube.lib.core.util.ReflexionUtil;
import fr.pandacube.lib.core.util.ReflectionUtil;
import net.md_5.bungee.BungeeCord;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -204,7 +204,7 @@ public abstract class BrigadierCommand extends ChatStatic {
@SuppressWarnings("unchecked")
private static List<Suggestion> getSuggestionsFromSuggestionsBuilder(SuggestionsBuilder builder) {
try {
return (List<Suggestion>) ReflexionUtil.getDeclaredFieldValue(SuggestionsBuilder.class, builder, "result");
return (List<Suggestion>) ReflectionUtil.field("result").inClass(SuggestionsBuilder.class).getValue(builder);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}