22
33import com .hb .mcfdebugger .*;
44import com .hb .mcfdebugger .config .ConfigHolder ;
5+ import com .hb .mcfdebugger .mixinHelpers .ReadCommandSource ;
56import net .minecraft .server .command .ServerCommandSource ;
67import net .minecraft .server .function .CommandFunction ;
78import net .minecraft .server .function .CommandFunctionManager ;
@@ -26,11 +27,11 @@ public void execute(ArrayDeque<CommandFunctionManager.Entry> stack, int maxChain
2627 try {
2728 element .execute (manager , source , stack , maxChainLength );
2829 } catch (Throwable var4 ) {
29- if (!ConfigHolder .debuggerMode .equals ("none" )&&! ConfigHolder . nonStopOnException ) {
30+ if (!ConfigHolder .debuggerMode .equals ("none" )) {
3031 String exceptionMsg = var4 .toString ();
3132 if (exceptionMsg != "" ) {
3233 if (McfDebugger .lastCmdObj !=null && !McfDebugger .lastCmdObj .toSimple ().isNext (McfDebugger .nowMuteCmd )) {
33- sendError (exceptionMsg );
34+ sendError (exceptionMsg , ConfigHolder . nonStopOnException ? 1 : 0 );
3435
3536 }
3637 }
@@ -40,32 +41,18 @@ public void execute(ArrayDeque<CommandFunctionManager.Entry> stack, int maxChain
4041 McfDebugger .nowMuteCmd .clear ();
4142 }
4243 }
43- public void sendError (String message ) {
44+ public void sendError (String message , int mode ) {
4445 McfDebugger .lastCmdObj .exception =message ;
4546 McfDebugger .lastCmdObj .pause =true ;
46- Map <String ,String > sourceMap =new LinkedHashMap <>();
47- if (source .getEntity ()!=null ){
48- sourceMap .put ("entityName" ,source .getEntity ().getEntityName ());
49- sourceMap .put ("entityUuid" ,source .getEntity ().getUuidAsString ());
50- }else {
51- sourceMap .put ("entityName" ,"None(Server)" );
52- sourceMap .put ("entityUuid" ,"None" );
53- }
54- sourceMap .put ("pos" ,source .getPosition ().toString ());
55- sourceMap .put ("rotation" ,"(" +source .getRotation ().y +", " +source .getRotation ().x +")" );
56- sourceMap .put ("world" ,source .getWorld ().getRegistryKey ().getValue ().toString ());
57- try {
58- Method levelMethod = source .getClass ().getDeclaredMethod ("fakeGetLevel" );
59- sourceMap .put ("level" , String .valueOf (levelMethod .invoke (source )));
60- } catch (ReflectiveOperationException e ) {
61- sourceMap .put ("level" ,"Error" );
62- }
63- sourceMap .put ("commandsLeftToMaxChainLength" , String .valueOf (McfDebugger .commandsLeftToMaxChainLength ));
64- SendCmdObj sendCmdObj = new SendCmdObj (McfDebugger .lastCmdObj .funNamespace , McfDebugger .lastCmdObj .funPath , McfDebugger .lastCmdObj .cmdIndex , element .toString (),true ,sourceMap );
47+ SendCmdObj sendCmdObj = new SendCmdObj (McfDebugger .lastCmdObj .funNamespace , McfDebugger .lastCmdObj .funPath , McfDebugger .lastCmdObj .cmdIndex , element .toString (),true , ReadCommandSource .read (source ));
6548 sendCmdObj .exception =message ;
66- DebugThread .sendObjMsgToDebugger (McfDebugger .stackList ,"stackReport" );
67- DebugThread .sendObjMsgToDebugger (sendCmdObj ,"errorCommandReport" );
68-
69- PauseWaiter .WaitForNext ();
49+ if (mode ==0 ||McfDebugger .howeverStop ){
50+ McfDebugger .howeverStop =false ;
51+ DebugThread .sendObjMsgToDebugger (McfDebugger .stackList ,"stackReport" );
52+ DebugThread .sendObjMsgToDebugger (sendCmdObj ,"errorCommandReport" );
53+ PauseWaiter .WaitForNext ();
54+ }else if (mode ==1 ){
55+ DebugThread .sendObjMsgToDebugger (sendCmdObj ,"nonStopErrorCommandReport" );
56+ }
7057 }
7158}
0 commit comments