@@ -27,6 +27,7 @@ private CommandAPI() {
2727 private static boolean loaded ;
2828 private static InternalConfig config ;
2929 private static CommandAPILogger logger ;
30+ private static String loadedStack ;
3031
3132 // Accessing static variables
3233
@@ -96,6 +97,14 @@ public static CommandAPILogger getLogger() {
9697 */
9798 public static void onLoad (CommandAPIConfig <?> config ) {
9899 if (!loaded ) {
100+ // Store the current stack trace to help diagnose multi-loading errors
101+ final StringBuilder currentStack = new StringBuilder ();
102+ for (StackTraceElement e : Thread .currentThread ().getStackTrace ()) {
103+ currentStack .append (e .toString ());
104+ currentStack .append ("\n " );
105+ }
106+ CommandAPI .loadedStack = currentStack .toString ();
107+
99108 // Setup variables
100109 CommandAPI .config = new InternalConfig (config );
101110
@@ -124,6 +133,14 @@ public static void onLoad(CommandAPIConfig<?> config) {
124133 loaded = true ;
125134 } else {
126135 getLogger ().severe ("You've tried to call the CommandAPI's onLoad() method more than once!" );
136+ final StringBuilder currentStack = new StringBuilder ();
137+ for (StackTraceElement e : Thread .currentThread ().getStackTrace ()) {
138+ currentStack .append (e .toString ());
139+ currentStack .append ("\n " );
140+ }
141+ getLogger ().severe ("The CommandAPI was first loaded here:\n \n " + CommandAPI .loadedStack +
142+ "\n \n But it is now being loaded here:\n \n " + currentStack .toString ());
143+
127144 }
128145 }
129146
0 commit comments