:okretard: marco

This commit is contained in:
Lemon 2019-07-28 13:36:06 +05:00 committed by Lemon
parent 521825024e
commit a97a3f3177

View File

@ -1,5 +1,7 @@
package me.totalfreedom.totalfreedommod.httpd.module; package me.totalfreedom.totalfreedommod.httpd.module;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@ -195,6 +197,11 @@ public class Module_schematic extends HTTPDModule
throw new SchematicTransferException("Schematic is too big (1mb max)."); throw new SchematicTransferException("Schematic is too big (1mb max).");
} }
if (plugin.web.getWorldEditPlugin() == null)
{
throw new SchematicTransferException("WorldEdit is not on the server.");
}
if (!SCHEMATIC_FILENAME_LC.matcher(origFileName.toLowerCase()).find()) if (!SCHEMATIC_FILENAME_LC.matcher(origFileName.toLowerCase()).find())
{ {
throw new SchematicTransferException("File name must be alphanumeric, between 1 and 30 characters long (inclusive), and have a \".schematic\" extension."); throw new SchematicTransferException("File name must be alphanumeric, between 1 and 30 characters long (inclusive), and have a \".schematic\" extension.");
@ -206,10 +213,18 @@ public class Module_schematic extends HTTPDModule
throw new SchematicTransferException("Schematic already exists on the server."); throw new SchematicTransferException("Schematic already exists on the server.");
} }
try try
{ {
FileUtils.copyFile(tempFile, targetFile); FileUtils.copyFile(tempFile, targetFile);
ClipboardFormat format = ClipboardFormats.findByFile(targetFile);
if (format == null)
{
FileUtils.deleteQuietly(targetFile);
throw new SchematicTransferException("Schematic is not a valid schematic.");
}
FLog.info(remoteAddress + " uploaded schematic: " + targetFile.getName()); FLog.info(remoteAddress + " uploaded schematic: " + targetFile.getName());
} }
catch (IOException ex) catch (IOException ex)
{ {