mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 12:25:46 +01:00
Added DebugPaste command, to upload settings.yml and latest.log
This commit is contained in:
parent
ea8f026105
commit
514cb8134a
@ -6,6 +6,7 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.intellectualcrafters.plot.commands.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@ -18,70 +19,6 @@ import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import com.intellectualcrafters.plot.commands.Add;
|
||||
import com.intellectualcrafters.plot.commands.Auto;
|
||||
import com.intellectualcrafters.plot.commands.BukkitCommand;
|
||||
import com.intellectualcrafters.plot.commands.Chat;
|
||||
import com.intellectualcrafters.plot.commands.Claim;
|
||||
import com.intellectualcrafters.plot.commands.Clear;
|
||||
import com.intellectualcrafters.plot.commands.Cluster;
|
||||
import com.intellectualcrafters.plot.commands.Comment;
|
||||
import com.intellectualcrafters.plot.commands.Condense;
|
||||
import com.intellectualcrafters.plot.commands.Confirm;
|
||||
import com.intellectualcrafters.plot.commands.Copy;
|
||||
import com.intellectualcrafters.plot.commands.CreateRoadSchematic;
|
||||
import com.intellectualcrafters.plot.commands.Database;
|
||||
import com.intellectualcrafters.plot.commands.Debug;
|
||||
import com.intellectualcrafters.plot.commands.DebugAllowUnsafe;
|
||||
import com.intellectualcrafters.plot.commands.DebugClaimTest;
|
||||
import com.intellectualcrafters.plot.commands.DebugClear;
|
||||
import com.intellectualcrafters.plot.commands.DebugExec;
|
||||
import com.intellectualcrafters.plot.commands.DebugFill;
|
||||
import com.intellectualcrafters.plot.commands.DebugFixFlags;
|
||||
import com.intellectualcrafters.plot.commands.DebugLoadTest;
|
||||
import com.intellectualcrafters.plot.commands.DebugRoadRegen;
|
||||
import com.intellectualcrafters.plot.commands.DebugSaveTest;
|
||||
import com.intellectualcrafters.plot.commands.DebugUUID;
|
||||
import com.intellectualcrafters.plot.commands.Delete;
|
||||
import com.intellectualcrafters.plot.commands.Deny;
|
||||
import com.intellectualcrafters.plot.commands.Disable;
|
||||
import com.intellectualcrafters.plot.commands.Download;
|
||||
import com.intellectualcrafters.plot.commands.FlagCmd;
|
||||
import com.intellectualcrafters.plot.commands.Help;
|
||||
import com.intellectualcrafters.plot.commands.Home;
|
||||
import com.intellectualcrafters.plot.commands.Inbox;
|
||||
import com.intellectualcrafters.plot.commands.Info;
|
||||
import com.intellectualcrafters.plot.commands.Inventory;
|
||||
import com.intellectualcrafters.plot.commands.Kick;
|
||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||
import com.intellectualcrafters.plot.commands.Merge;
|
||||
import com.intellectualcrafters.plot.commands.Move;
|
||||
import com.intellectualcrafters.plot.commands.MusicSubcommand;
|
||||
import com.intellectualcrafters.plot.commands.Purge;
|
||||
import com.intellectualcrafters.plot.commands.Rate;
|
||||
import com.intellectualcrafters.plot.commands.RegenAllRoads;
|
||||
import com.intellectualcrafters.plot.commands.Reload;
|
||||
import com.intellectualcrafters.plot.commands.Remove;
|
||||
import com.intellectualcrafters.plot.commands.SchematicCmd;
|
||||
import com.intellectualcrafters.plot.commands.Set;
|
||||
import com.intellectualcrafters.plot.commands.SetOwner;
|
||||
import com.intellectualcrafters.plot.commands.Setup;
|
||||
import com.intellectualcrafters.plot.commands.Swap;
|
||||
import com.intellectualcrafters.plot.commands.TP;
|
||||
import com.intellectualcrafters.plot.commands.Target;
|
||||
import com.intellectualcrafters.plot.commands.Template;
|
||||
import com.intellectualcrafters.plot.commands.Toggle;
|
||||
import com.intellectualcrafters.plot.commands.Trim;
|
||||
import com.intellectualcrafters.plot.commands.Trust;
|
||||
import com.intellectualcrafters.plot.commands.Unclaim;
|
||||
import com.intellectualcrafters.plot.commands.Undeny;
|
||||
import com.intellectualcrafters.plot.commands.Unlink;
|
||||
import com.intellectualcrafters.plot.commands.Untrust;
|
||||
import com.intellectualcrafters.plot.commands.Update;
|
||||
import com.intellectualcrafters.plot.commands.Visit;
|
||||
import com.intellectualcrafters.plot.commands.WE_Anywhere;
|
||||
import com.intellectualcrafters.plot.commands.list;
|
||||
import com.intellectualcrafters.plot.commands.plugin;
|
||||
import com.intellectualcrafters.plot.config.C;
|
||||
import com.intellectualcrafters.plot.config.Settings;
|
||||
import com.intellectualcrafters.plot.database.plotme.ClassicPlotMeConnector;
|
||||
@ -288,6 +225,7 @@ public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
|
||||
MainCommand.subCommands.add(new Purge());
|
||||
MainCommand.subCommands.add(new Reload());
|
||||
MainCommand.subCommands.add(new Merge());
|
||||
MainCommand.subCommands.add(new DebugPaste());
|
||||
MainCommand.subCommands.add(new Unlink());
|
||||
MainCommand.subCommands.add(new Kick());
|
||||
MainCommand.subCommands.add(new Rate());
|
||||
|
@ -55,6 +55,7 @@ public enum Command {
|
||||
ALLOWUNSAFE("debugallowunsafe"),
|
||||
DEBUGLOADTEST("debugloadtest"),
|
||||
DEBUGSAVETEST("debugsavetest"),
|
||||
DEBUG_PASTE("debugpaste", "dp"),
|
||||
UNCLAIM("unclaim"),
|
||||
DEBUGCLEAR("debugclear", "fastclear"),
|
||||
SWAP("swap"),
|
||||
|
@ -0,0 +1,38 @@
|
||||
package com.intellectualcrafters.plot.commands;
|
||||
|
||||
import com.intellectualcrafters.plot.BukkitMain;
|
||||
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.MainUtil;
|
||||
import com.intellectualcrafters.plot.util.TaskManager;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class DebugPaste extends SubCommand {
|
||||
|
||||
public DebugPaste() {
|
||||
super(Command.DEBUG_PASTE, "Upload settings.yml & latest.log to hastebin", "", CommandCategory.DEBUG, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(final PlotPlayer plr, String... args) {
|
||||
TaskManager.runTaskAsync(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
String link = HastebinUtility.upload(PS.get().configFile);
|
||||
MainUtil.sendMessage(plr, C.SETTINGS_PASTE_UPLOADED.s().replace("%url%", link));
|
||||
link = HastebinUtility.upload(new File(BukkitMain.THIS.getDirectory(), "../../logs/latest.log"));
|
||||
MainUtil.sendMessage(plr, C.LATEST_LOG_UPLOADED.s().replace("%url%", link));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
}
|
@ -283,6 +283,8 @@ public enum C {
|
||||
* Player not found
|
||||
*/
|
||||
INVALID_PLAYER("$2Player not found: $1%s.", "Errors"),
|
||||
SETTINGS_PASTE_UPLOADED("$2settings.yml was uploaded to: $1%url%", "Paste"),
|
||||
LATEST_LOG_UPLOADED("$2latest.log was uploaded to: $1%url%", "Paste"),
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
@ -0,0 +1,53 @@
|
||||
package com.intellectualcrafters.plot.util;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class HastebinUtility {
|
||||
|
||||
public static final String BIN_URL = "http://hastebin.com/documents", USER_AGENT = "Mozilla/5.0";
|
||||
public static final Pattern PATTERN = Pattern.compile("\\{\"key\":\"([\\S\\s]*)\"\\}");
|
||||
|
||||
public static String upload(final File file) throws IOException {
|
||||
StringBuilder content = new StringBuilder();
|
||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
content.append(line).append("\n");
|
||||
}
|
||||
reader.close();
|
||||
URL url = new URL(BIN_URL);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("User-Agent", USER_AGENT);
|
||||
connection.setDoOutput(true);
|
||||
|
||||
DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
|
||||
outputStream.writeUTF(content.toString());
|
||||
outputStream.flush();
|
||||
outputStream.close();
|
||||
|
||||
BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(connection.getInputStream()));
|
||||
String inputLine;
|
||||
StringBuffer response = new StringBuffer();
|
||||
|
||||
while ((inputLine = in.readLine()) != null) {
|
||||
response.append(inputLine);
|
||||
}
|
||||
in.close();
|
||||
|
||||
Matcher matcher = PATTERN.matcher(response.toString());
|
||||
if (matcher.matches()) {
|
||||
return "http://hastebin.com/" + matcher.group(1);
|
||||
} else {
|
||||
throw new RuntimeException("Coldn't read response!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user