PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugPaste.java

86 lines
4.2 KiB
Java
Raw Normal View History

package com.intellectualcrafters.plot.commands;
2015-07-30 16:25:16 +02:00
import java.io.File;
import java.io.IOException;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.HastebinUtility;
import com.intellectualcrafters.plot.util.TaskManager;
2015-07-27 19:50:04 +02:00
import com.plotsquared.bukkit.BukkitMain;
import com.plotsquared.general.commands.CommandDeclaration;
@CommandDeclaration(
2015-09-11 12:09:22 +02:00
command = "debugpaste",
aliases = { "dp" },
usage = "/plot debugpaste",
description = "Upload settings.yml & latest.log to hastebin",
permission = "plots.debugpaste",
category = CommandCategory.DEBUG)
public class DebugPaste extends SubCommand
{
@Override
2015-09-11 12:09:22 +02:00
public boolean onCommand(final PlotPlayer plr, final String[] args)
{
TaskManager.runTaskAsync(new Runnable()
{
@Override
2015-09-11 12:09:22 +02:00
public void run()
{
try
{
final String settingsYML = HastebinUtility.upload(PS.get().configFile);
2015-07-26 13:40:48 +02:00
String latestLOG;
2015-09-11 12:09:22 +02:00
try
{
2015-07-26 13:40:48 +02:00
latestLOG = HastebinUtility.upload(new File(BukkitMain.THIS.getDirectory(), "../../logs/latest.log"));
2015-09-11 12:09:22 +02:00
}
catch (final Exception e)
{
2015-07-27 15:10:14 +02:00
plr.sendMessage("&clatest.log is too big to be pasted, will ignore");
2015-07-26 13:40:48 +02:00
latestLOG = "too big :(";
}
2015-09-11 12:09:22 +02:00
final StringBuilder b = new StringBuilder();
2015-07-19 16:18:46 +02:00
b.append("# Welcome to this paste\n# It is meant to provide us at IntellectualSites with better information about your problem\n\n# We will start with some informational files\n");
b.append("links.settings_yml: '").append(settingsYML).append("'\n");
b.append("links.latest_log: '").append(latestLOG).append("'\n");
b.append("\n# YAAAS! Now let us move on to the server info\n");
b.append("version.server: '").append(Bukkit.getServer().getVersion()).append("'\n");
b.append("version.bukkit: '").append(Bukkit.getBukkitVersion()).append("'\n");
b.append("online_mode: ").append(Bukkit.getServer().getOnlineMode()).append("\n");
b.append("plugins:");
2015-09-11 12:09:22 +02:00
for (final Plugin p : Bukkit.getPluginManager().getPlugins())
{
2015-07-19 16:18:46 +02:00
b.append("\n ").append(p.getName()).append(":\n ").append("version: '").append(p.getDescription().getVersion()).append("'").append("\n enabled: ").append(p.isEnabled());
}
b.append("\n\n# YAY! Now, let's see what we can find in your JVM\n");
2015-09-11 12:09:22 +02:00
final Runtime runtime = Runtime.getRuntime();
2015-07-19 16:18:46 +02:00
b.append("memory.free: ").append(runtime.freeMemory()).append("\n");
b.append("memory.max: ").append(runtime.maxMemory()).append("\n");
b.append("java.specification.version: '").append(System.getProperty("java.specification.version")).append("'\n");
b.append("java.vendor: '").append(System.getProperty("java.vendor")).append("'\n");
b.append("java.version: '").append(System.getProperty("java.version")).append("'\n");
b.append("os.arch: '").append(System.getProperty("os.arch")).append("'\n");
b.append("os.name: '").append(System.getProperty("os.name")).append("'\n");
b.append("os.version: '").append(System.getProperty("os.version")).append("'\n\n");
b.append("# Okay :D Great. You are now ready to create your bug report!");
b.append("\n# You can do so at https://github.com/IntellectualSites/PlotSquared/issues");
2015-09-11 12:09:22 +02:00
final String link = HastebinUtility.upload(b.toString());
2015-07-27 15:10:14 +02:00
plr.sendMessage(C.DEBUG_REPORT_CREATED.s().replace("%url%", link));
2015-09-11 12:09:22 +02:00
}
catch (final IOException e)
{
e.printStackTrace();
}
}
});
return true;
}
}