Paper command
Co-authored-by: Zach Brown <1254957+zachbr@users.noreply.github.com>
This commit is contained in:
@ -991,6 +991,7 @@ public final class CraftServer implements Server {
|
||||
this.commandMap.clearCommands();
|
||||
this.reloadData();
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@ -2737,6 +2738,34 @@ public final class CraftServer implements Server {
|
||||
// Paper end
|
||||
|
||||
// Paper start
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
public static java.nio.file.Path dumpHeap(java.nio.file.Path dir, String name) {
|
||||
try {
|
||||
java.nio.file.Files.createDirectories(dir);
|
||||
|
||||
javax.management.MBeanServer server = java.lang.management.ManagementFactory.getPlatformMBeanServer();
|
||||
java.nio.file.Path file;
|
||||
|
||||
try {
|
||||
Class clazz = Class.forName("openj9.lang.management.OpenJ9DiagnosticsMXBean");
|
||||
Object openj9Mbean = java.lang.management.ManagementFactory.newPlatformMXBeanProxy(server, "openj9.lang.management:type=OpenJ9Diagnostics", clazz);
|
||||
java.lang.reflect.Method m = clazz.getMethod("triggerDumpToFile", String.class, String.class);
|
||||
file = dir.resolve(name + ".phd");
|
||||
m.invoke(openj9Mbean, "heap", file.toString());
|
||||
} catch (ClassNotFoundException e) {
|
||||
Class clazz = Class.forName("com.sun.management.HotSpotDiagnosticMXBean");
|
||||
Object hotspotMBean = java.lang.management.ManagementFactory.newPlatformMXBeanProxy(server, "com.sun.management:type=HotSpotDiagnostic", clazz);
|
||||
java.lang.reflect.Method m = clazz.getMethod("dumpHeap", String.class, boolean.class);
|
||||
file = dir.resolve(name + ".hprof");
|
||||
m.invoke(hotspotMBean, file.toString(), true);
|
||||
}
|
||||
|
||||
return file;
|
||||
} catch (Throwable t) {
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Could not write heap", t);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private Iterable<? extends net.kyori.adventure.audience.Audience> adventure$audiences;
|
||||
@Override
|
||||
public Iterable<? extends net.kyori.adventure.audience.Audience> audiences() {
|
||||
|
||||
Reference in New Issue
Block a user