mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-12-28 20:17:49 +01:00
Cleanup of EssentialsConf and delete empty files or files that are corrupt.
This commit is contained in:
parent
8998168ec2
commit
631583aef0
@ -1,6 +1,8 @@
|
|||||||
package com.earth2me.essentials;
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -19,12 +21,12 @@ import org.bukkit.util.config.Configuration;
|
|||||||
|
|
||||||
public class EssentialsConf extends Configuration
|
public class EssentialsConf extends Configuration
|
||||||
{
|
{
|
||||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||||
private File configFile;
|
private transient File configFile;
|
||||||
private String templateName = null;
|
private transient String templateName = null;
|
||||||
private Class<?> resourceClass = EssentialsConf.class;
|
private transient Class<?> resourceClass = EssentialsConf.class;
|
||||||
|
|
||||||
public EssentialsConf(File configFile)
|
public EssentialsConf(final File configFile)
|
||||||
{
|
{
|
||||||
super(configFile);
|
super(configFile);
|
||||||
this.configFile = configFile;
|
this.configFile = configFile;
|
||||||
@ -42,38 +44,84 @@ public class EssentialsConf extends Configuration
|
|||||||
{
|
{
|
||||||
if (!configFile.getParentFile().mkdirs())
|
if (!configFile.getParentFile().mkdirs())
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
|
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (configFile.exists() && configFile.length() == 0 && !configFile.delete())
|
||||||
|
{
|
||||||
|
LOGGER.log(Level.SEVERE, "Could not delete file " + configFile.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
// This will delete files where the first character is 0. In most cases they are broken.
|
||||||
|
if (configFile.exists() && configFile.length() != 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final InputStream input = new FileInputStream(configFile);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (input.read() == 0)
|
||||||
|
{
|
||||||
|
input.close();
|
||||||
|
configFile.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
LOGGER.log(Level.SEVERE, null, ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
LOGGER.log(Level.SEVERE, null, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException ex)
|
||||||
|
{
|
||||||
|
LOGGER.log(Level.SEVERE, null, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!configFile.exists())
|
if (!configFile.exists())
|
||||||
{
|
{
|
||||||
if (templateName != null)
|
if (templateName != null)
|
||||||
{
|
{
|
||||||
logger.log(Level.INFO, Util.format("creatingConfigFromTemplate", configFile.toString()));
|
LOGGER.log(Level.INFO, Util.format("creatingConfigFromTemplate", configFile.toString()));
|
||||||
createFromTemplate();
|
createFromTemplate();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger.log(Level.INFO, Util.format("creatingEmptyConfig", configFile.toString()));
|
LOGGER.log(Level.INFO, Util.format("creatingEmptyConfig", configFile.toString()));
|
||||||
if (!configFile.createNewFile())
|
if (!configFile.createNewFile())
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
|
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IOException ex)
|
catch (IOException ex)
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()), ex);
|
LOGGER.log(Level.SEVERE, Util.format("failedToCreateConfig", configFile.toString()), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
|
try
|
||||||
|
{
|
||||||
super.load();
|
super.load();
|
||||||
} catch(RuntimeException e) {
|
}
|
||||||
logger.log(Level.INFO, "File: " + configFile.toString());
|
catch (RuntimeException e)
|
||||||
|
{
|
||||||
|
LOGGER.log(Level.INFO, "File: " + configFile.toString());
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.root == null)
|
if (this.root == null)
|
||||||
{
|
{
|
||||||
this.root = new HashMap<String, Object>();
|
this.root = new HashMap<String, Object>();
|
||||||
@ -89,7 +137,7 @@ public class EssentialsConf extends Configuration
|
|||||||
istr = resourceClass.getResourceAsStream(templateName);
|
istr = resourceClass.getResourceAsStream(templateName);
|
||||||
if (istr == null)
|
if (istr == null)
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("couldNotFindTemplate", templateName));
|
LOGGER.log(Level.SEVERE, Util.format("couldNotFindTemplate", templateName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ostr = new FileOutputStream(configFile);
|
ostr = new FileOutputStream(configFile);
|
||||||
@ -104,7 +152,7 @@ public class EssentialsConf extends Configuration
|
|||||||
}
|
}
|
||||||
catch (IOException ex)
|
catch (IOException ex)
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("failedToWriteConfig", configFile.toString()), ex);
|
LOGGER.log(Level.SEVERE, Util.format("failedToWriteConfig", configFile.toString()), ex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@ -129,12 +177,12 @@ public class EssentialsConf extends Configuration
|
|||||||
}
|
}
|
||||||
catch (IOException ex)
|
catch (IOException ex)
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, Util.format("failedToCloseConfig", configFile.toString()), ex);
|
LOGGER.log(Level.SEVERE, Util.format("failedToCloseConfig", configFile.toString()), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTemplateName(String templateName)
|
public void setTemplateName(final String templateName)
|
||||||
{
|
{
|
||||||
this.templateName = templateName;
|
this.templateName = templateName;
|
||||||
}
|
}
|
||||||
@ -144,48 +192,48 @@ public class EssentialsConf extends Configuration
|
|||||||
return configFile;
|
return configFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTemplateName(String templateName, Class<?> resClass)
|
public void setTemplateName(final String templateName, final Class<?> resClass)
|
||||||
{
|
{
|
||||||
this.templateName = templateName;
|
this.templateName = templateName;
|
||||||
this.resourceClass = resClass;
|
this.resourceClass = resClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasProperty(String path)
|
public boolean hasProperty(final String path)
|
||||||
{
|
{
|
||||||
return getProperty(path) != null;
|
return getProperty(path) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location getLocation(String path, Server server) throws Exception
|
public Location getLocation(final String path, final Server server) throws Exception
|
||||||
{
|
{
|
||||||
String worldName = getString((path != null ? path + "." : "") + "world");
|
final String worldName = getString((path == null ? "" : path + ".") + "world");
|
||||||
if (worldName == null || worldName.isEmpty())
|
if (worldName == null || worldName.isEmpty())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
World world = server.getWorld(worldName);
|
final World world = server.getWorld(worldName);
|
||||||
if (world == null)
|
if (world == null)
|
||||||
{
|
{
|
||||||
throw new Exception(Util.i18n("invalidWorld"));
|
throw new Exception(Util.i18n("invalidWorld"));
|
||||||
}
|
}
|
||||||
return new Location(world,
|
return new Location(world,
|
||||||
getDouble((path != null ? path + "." : "") + "x", 0),
|
getDouble((path == null ? "" : path + ".") + "x", 0),
|
||||||
getDouble((path != null ? path + "." : "") + "y", 0),
|
getDouble((path == null ? "" : path + ".") + "y", 0),
|
||||||
getDouble((path != null ? path + "." : "") + "z", 0),
|
getDouble((path == null ? "" : path + ".") + "z", 0),
|
||||||
(float)getDouble((path != null ? path + "." : "") + "yaw", 0),
|
(float)getDouble((path == null ? "" : path + ".") + "yaw", 0),
|
||||||
(float)getDouble((path != null ? path + "." : "") + "pitch", 0));
|
(float)getDouble((path == null ? "" : path + ".") + "pitch", 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProperty(String path, Location loc)
|
public void setProperty(final String path, final Location loc)
|
||||||
{
|
{
|
||||||
setProperty((path != null ? path + "." : "") + "world", loc.getWorld().getName());
|
setProperty((path == null ? "" : path + ".") + "world", loc.getWorld().getName());
|
||||||
setProperty((path != null ? path + "." : "") + "x", loc.getX());
|
setProperty((path == null ? "" : path + ".") + "x", loc.getX());
|
||||||
setProperty((path != null ? path + "." : "") + "y", loc.getY());
|
setProperty((path == null ? "" : path + ".") + "y", loc.getY());
|
||||||
setProperty((path != null ? path + "." : "") + "z", loc.getZ());
|
setProperty((path == null ? "" : path + ".") + "z", loc.getZ());
|
||||||
setProperty((path != null ? path + "." : "") + "yaw", loc.getYaw());
|
setProperty((path == null ? "" : path + ".") + "yaw", loc.getYaw());
|
||||||
setProperty((path != null ? path + "." : "") + "pitch", loc.getPitch());
|
setProperty((path == null ? "" : path + ".") + "pitch", loc.getPitch());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack getItemStack(String path)
|
public ItemStack getItemStack(final String path)
|
||||||
{
|
{
|
||||||
return new ItemStack(
|
return new ItemStack(
|
||||||
Material.valueOf(getString(path + ".type", "AIR")),
|
Material.valueOf(getString(path + ".type", "AIR")),
|
||||||
@ -194,9 +242,9 @@ public class EssentialsConf extends Configuration
|
|||||||
(byte)getInt(path + ".data", 0)*/);
|
(byte)getInt(path + ".data", 0)*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProperty(String path, ItemStack stack)
|
public void setProperty(final String path, final ItemStack stack)
|
||||||
{
|
{
|
||||||
Map<String, Object> map = new HashMap<String, Object>();
|
final Map<String, Object> map = new HashMap<String, Object>();
|
||||||
map.put("type", stack.getType().toString());
|
map.put("type", stack.getType().toString());
|
||||||
map.put("amount", stack.getAmount());
|
map.put("amount", stack.getAmount());
|
||||||
map.put("damage", stack.getDurability());
|
map.put("damage", stack.getDurability());
|
||||||
@ -205,40 +253,30 @@ public class EssentialsConf extends Configuration
|
|||||||
setProperty(path, map);
|
setProperty(path, map);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getLong(String path, long def)
|
public long getLong(final String path, final long def)
|
||||||
{
|
{
|
||||||
Number num;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
num = (Number)getProperty(path);
|
final Number num = (Number)getProperty(path);
|
||||||
|
return num == null ? def : num.longValue();
|
||||||
}
|
}
|
||||||
catch (ClassCastException ex)
|
catch (ClassCastException ex)
|
||||||
{
|
{
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
if (num == null)
|
|
||||||
{
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
return num.longValue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getDouble(String path, double def)
|
public double getDouble(final String path, final double def)
|
||||||
{
|
{
|
||||||
Number num;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
num = (Number)getProperty(path);
|
Number num = (Number)getProperty(path);
|
||||||
|
return num == null ? def : num.doubleValue();
|
||||||
}
|
}
|
||||||
catch (ClassCastException ex)
|
catch (ClassCastException ex)
|
||||||
{
|
{
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
if (num == null)
|
|
||||||
{
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
return num.doubleValue();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user