mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-29 16:46:45 +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.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.commands.*;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -18,70 +19,6 @@ import org.bukkit.generator.ChunkGenerator;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
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.C;
|
||||||
import com.intellectualcrafters.plot.config.Settings;
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
import com.intellectualcrafters.plot.database.plotme.ClassicPlotMeConnector;
|
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 Purge());
|
||||||
MainCommand.subCommands.add(new Reload());
|
MainCommand.subCommands.add(new Reload());
|
||||||
MainCommand.subCommands.add(new Merge());
|
MainCommand.subCommands.add(new Merge());
|
||||||
|
MainCommand.subCommands.add(new DebugPaste());
|
||||||
MainCommand.subCommands.add(new Unlink());
|
MainCommand.subCommands.add(new Unlink());
|
||||||
MainCommand.subCommands.add(new Kick());
|
MainCommand.subCommands.add(new Kick());
|
||||||
MainCommand.subCommands.add(new Rate());
|
MainCommand.subCommands.add(new Rate());
|
||||||
|
@ -55,6 +55,7 @@ public enum Command {
|
|||||||
ALLOWUNSAFE("debugallowunsafe"),
|
ALLOWUNSAFE("debugallowunsafe"),
|
||||||
DEBUGLOADTEST("debugloadtest"),
|
DEBUGLOADTEST("debugloadtest"),
|
||||||
DEBUGSAVETEST("debugsavetest"),
|
DEBUGSAVETEST("debugsavetest"),
|
||||||
|
DEBUG_PASTE("debugpaste", "dp"),
|
||||||
UNCLAIM("unclaim"),
|
UNCLAIM("unclaim"),
|
||||||
DEBUGCLEAR("debugclear", "fastclear"),
|
DEBUGCLEAR("debugclear", "fastclear"),
|
||||||
SWAP("swap"),
|
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
|
* Player not found
|
||||||
*/
|
*/
|
||||||
INVALID_PLAYER("$2Player not found: $1%s.", "Errors"),
|
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