using System.Collections.Generic; using System.Reflection; using Brigadier.NET.Tree; namespace MinecraftClient.CommandHandler.Patch { public static class CommandNodeExtensions { public static void RemoveChild(this CommandNode commandNode, string name) { var children = (IDictionary>) typeof(CommandNode) .GetField("_children", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)! .GetValue(commandNode)!; var literals = (IDictionary>) typeof(CommandNode) .GetField("_literals", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)! .GetValue(commandNode)!; var arguments = (IDictionary>) typeof(CommandNode) .GetField("_arguments", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)! .GetValue(commandNode)!; children.Remove(name); literals.Remove(name); } } }