1
1
package revxrsal .commands .velocity .core ;
2
2
3
- import com .mojang .brigadier .builder .LiteralArgumentBuilder ;
4
- import com .mojang .brigadier .tree .ArgumentCommandNode ;
5
- import com .mojang .brigadier .tree .CommandNode ;
6
- import com .mojang .brigadier .tree .LiteralCommandNode ;
7
3
import com .velocitypowered .api .command .Command ;
8
4
import com .velocitypowered .api .command .CommandMeta ;
9
- import com .velocitypowered .api .command .CommandSource ;
10
5
import com .velocitypowered .api .plugin .PluginContainer ;
11
6
import com .velocitypowered .api .proxy .Player ;
12
7
import com .velocitypowered .api .proxy .ProxyServer ;
13
- import lombok .SneakyThrows ;
14
8
import org .jetbrains .annotations .NotNull ;
15
9
import org .jetbrains .annotations .Nullable ;
16
10
import revxrsal .commands .CommandHandler ;
25
19
import revxrsal .commands .velocity .exception .InvalidPlayerException ;
26
20
import revxrsal .commands .velocity .exception .VelocityExceptionAdapter ;
27
21
28
- import java .lang .reflect .Field ;
29
- import java .util .Map ;
30
22
import java .util .Optional ;
31
23
32
- import static com .mojang .brigadier .builder .LiteralArgumentBuilder .literal ;
33
- import static revxrsal .commands .brigadier .BrigadierTreeParser .parse ;
34
24
import static revxrsal .commands .util .Preconditions .notNull ;
35
25
36
26
public final class VelocityHandler extends BaseCommandHandler implements VelocityCommandHandler {
37
27
38
28
private final ProxyServer server ;
39
29
@ SuppressWarnings ("OptionalUsedAsFieldOrParameterType" ) private final Optional <PluginContainer > plugin ;
40
- private final DummyVelocityBrigadier brigadier = new DummyVelocityBrigadier (this );
30
+ // private final DummyVelocityBrigadier brigadier = new DummyVelocityBrigadier(this);
41
31
42
32
public VelocityHandler (@ Nullable Object plugin , @ NotNull ProxyServer server ) {
43
33
super ();
@@ -81,33 +71,33 @@ private void createPluginCommand(Object commandComponent) {
81
71
Command command = new VelocitySimpleCommand (this );
82
72
if (commandComponent instanceof CommandCategory ) {
83
73
CommandCategory category = ((CommandCategory ) commandComponent );
84
- LiteralArgumentBuilder < CommandSource > builder = parse (brigadier , literal (category .getName ()), category );
85
- registerNode (command , parse ( brigadier , literal ( category .getName ()), category ) );
74
+ // registerNode(command, parse(brigadier, literal(category.getName()), category) );
75
+ registerNode (category .getName (), command );
86
76
if (getNamespace () != null )
87
- registerNode (command , parse (brigadier , literal (getNamespace () + ":" + category .getName ()), category ));
88
- // registerNode(category.getName(), command);
77
+ // registerNode(command, parse(brigadier, literal(getNamespace() + ":" + category.getName()), category));
78
+ registerNode (getNamespace () + ":" + category .getName (), command );
89
79
} else if (commandComponent instanceof ExecutableCommand ) {
90
80
ExecutableCommand executable = ((ExecutableCommand ) commandComponent );
91
- LiteralArgumentBuilder < CommandSource > builder = parse (brigadier , literal (executable .getName ()), executable );
92
- registerNode (command , parse ( brigadier , literal ( executable .getName ()), executable ) );
81
+ // registerNode(command, parse(brigadier, literal(executable.getName()), executable) );
82
+ registerNode (executable .getName (), command );
93
83
if (getNamespace () != null )
94
- registerNode (command , parse (brigadier , literal (getNamespace () + ":" + executable .getName ()), executable ));
95
- // registerNode(executable.getName(), command);
84
+ // registerNode(command, parse(brigadier, literal(getNamespace() + ":" + executable.getName()), executable));
85
+ registerNode (getNamespace () + ":" + executable .getName (), command );
96
86
}
97
87
}
98
88
99
- private void registerNode (Command command , LiteralArgumentBuilder <CommandSource > builder ) {
100
- CommandMeta .Builder metaBuilder = metaBuilder (builder .getLiteral ());
101
- LiteralCommandNode <CommandSource > node = builder .build ();
102
- node .getChildren ().forEach (metaBuilder ::hint );
103
- getArguments (node ).values ().forEach (metaBuilder ::hint );
104
- server .getCommandManager ().register (metaBuilder .build (), command );
105
- }
106
-
107
- // private void registerNode(String alias, Command command) {
108
- // server.getCommandManager().register(alias, command);
89
+ // private void registerNode(Command command, LiteralArgumentBuilder<CommandSource> builder) {
90
+ // CommandMeta.Builder metaBuilder = metaBuilder(builder.getLiteral());
91
+ // LiteralCommandNode<CommandSource> node = builder.build();
92
+ // node.getChildren().forEach(metaBuilder::hint);
93
+ // getArguments(node).values().forEach(metaBuilder::hint);
94
+ // server.getCommandManager().register(metaBuilder.build(), command);
109
95
// }
110
96
97
+ private void registerNode (String alias , Command command ) {
98
+ server .getCommandManager ().register (alias , command );
99
+ }
100
+
111
101
private @ Nullable String getNamespace () {
112
102
return plugin .map (p -> p .getDescription ().getId ()).orElse (null );
113
103
}
@@ -120,22 +110,4 @@ private CommandMeta.Builder metaBuilder(String alias) {
120
110
return server ;
121
111
}
122
112
123
- private static final Field ARGUMENTS ;
124
-
125
- static {
126
- Field arguments = null ;
127
- try {
128
- arguments = CommandNode .class .getDeclaredField ("arguments" );
129
- arguments .setAccessible (true );
130
- } catch (Throwable e ) {
131
- e .printStackTrace ();
132
- }
133
- ARGUMENTS = arguments ;
134
- }
135
-
136
- @ SneakyThrows
137
- private static <S > Map <String , ArgumentCommandNode <S , ?>> getArguments (CommandNode <S > node ) {
138
- return (Map <String , ArgumentCommandNode <S , ?>>) ARGUMENTS .get (node );
139
- }
140
-
141
113
}
0 commit comments