@@ -83,7 +83,7 @@ public void banWithSwitchFlag() {
8383 test (
8484 "ban mqzen" ,
8585 ResolvedArgsData .empty ()
86- .arg ("player " , "mqzen" )
86+ .arg ("target " , "mqzen" )
8787 .flag ("silent" , false )
8888 .flag ("ip" , false )
8989 .arg ("duration" , null )
@@ -94,17 +94,17 @@ public void banWithSwitchFlag() {
9494 test (
9595 "ban mqzen -s" ,
9696 ResolvedArgsData .empty ()
97- .arg ("player " , "mqzen" )
97+ .arg ("target " , "mqzen" )
9898 .flag ("silent" , true )
99- .arg ("duration" , null )
10099 .flag ("ip" , false )
100+ .arg ("duration" , null )
101101 .arg ("reason" , "Breaking server laws" )
102102
103103 );
104104 test (
105105 "ban mqzen -s 1d" ,
106106 ResolvedArgsData .empty ()
107- .arg ("player " , "mqzen" )
107+ .arg ("target " , "mqzen" )
108108 .flag ("silent" , true )
109109 .flag ("ip" , false )
110110 .arg ("duration" , "1d" )
@@ -114,7 +114,7 @@ public void banWithSwitchFlag() {
114114 test (
115115 "ban mqzen -s 1d A disgrace to community" ,
116116 ResolvedArgsData .empty ()
117- .arg ("player " , "mqzen" )
117+ .arg ("target " , "mqzen" )
118118 .flag ("silent" , true )
119119 .flag ("ip" , false )
120120 .arg ("duration" , "1d" )
@@ -155,9 +155,20 @@ private ResolvedArgsData(ResolvedContext<TestSource> context) {
155155 args .put (resolved .parameter ().name (), resolved .value ());
156156 }
157157
158- for (var flag : context .getResolvedFlags ()) {
159- String name = flag .flag ().name ();
160- resolvedFlags .setData (flag .flag ().name (), context .getFlagValue (name ));
158+ for (var param : context .getDetectedUsage ().getParameters ()) {
159+ if (!param .isFlag ()) {
160+ continue ;
161+ }
162+ var flagParam = param .asFlagParameter ();
163+
164+ String name = param .asFlagParameter ().flagData ().name ();
165+
166+ Object resolvedValue = context .getFlagValue (name );
167+ if (resolvedValue == null && flagParam .isSwitch ()) {
168+ resolvedValue = false ;
169+ }
170+
171+ resolvedFlags .setData (name , resolvedValue );
161172 }
162173 }
163174
@@ -181,14 +192,22 @@ public ResolvedArgsData flag(String paramName, Object inputValue) {
181192 }
182193
183194 public boolean matches (ResolvedArgsData other ) {
195+ System .out .println ("----------------" );
196+ System .out .println ("Comparing THIS ARGS:" );
184197 System .out .println (this .args );
198+
199+
200+ System .out .println ("Comparing OTHER ARGS:" );
185201 System .out .println (other .args );
202+
203+ System .out .println ("Comparing THIS FLAGS:" );
186204 System .out .println (this .resolvedFlags .getMap ());
205+
206+ System .out .println ("Comparing OTHER FLAGS:" );
187207 System .out .println (other .resolvedFlags .getMap ());
188208
189209
190210 if (args .size () != other .args .size () || resolvedFlags .size () != other .resolvedFlags .size ()) {
191-
192211 return false ;
193212 }
194213
@@ -203,10 +222,12 @@ public boolean matches(ResolvedArgsData other) {
203222 for (String flagKey : resolvedFlags .getKeys ()) {
204223 Object flagValue = resolvedFlags .getData (flagKey ).orElse (null );
205224 if (!other .resolvedFlags .getMap ().containsKey (flagKey )) {
225+ System .out .println ("Flag mismatch: " + flagKey + "=" + flagValue + " != " + flagKey + "=null" );
206226 return false ;
207227 }
208228 if (!Objects .equals (flagValue , other .resolvedFlags .getData (flagKey )
209229 .orElse (null ))) {
230+ System .out .println ("Flag mismatch: " + flagKey + "=" + flagValue + " != " + flagKey + "=" + other .resolvedFlags .getData (flagKey ).orElse (null ));
210231 return false ;
211232 }
212233 }
0 commit comments