Skip to content

Commit e13eb6d

Browse files
committed
Store when the CommandAPI was first loaded to help diagnose duplicate loading issues
1 parent 5d67bb5 commit e13eb6d

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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\nBut it is now being loaded here:\n\n" + currentStack.toString());
143+
127144
}
128145
}
129146

0 commit comments

Comments
 (0)