Files
CatServer/patches/net/minecraft/server/dedicated/PropertyManager.java.patch
2018-07-20 01:14:44 +08:00

111 lines
3.9 KiB
Diff

--- ../src-base/minecraft/net/minecraft/server/dedicated/PropertyManager.java
+++ ../src-work/minecraft/net/minecraft/server/dedicated/PropertyManager.java
@@ -12,12 +12,30 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import joptsimple.OptionSet;
+
@SideOnly(Side.SERVER)
public class PropertyManager
{
private static final Logger LOGGER = LogManager.getLogger();
- private final Properties serverProperties = new Properties();
+ final Properties serverProperties = new Properties();
private final File serverPropertiesFile;
+
+ // CraftBukkit start
+ private OptionSet options = null;
+
+ public PropertyManager(final OptionSet options) {
+ this((File)options.valueOf("config"));
+ this.options = options;
+ }
+
+ private <T> T getOverride(final String name, final T value) {
+ if (this.options != null && this.options.has(name)) {
+ return (T)this.options.valueOf(name);
+ }
+ return value;
+ }
+ // CraftBukkit end
public PropertyManager(File propertiesFile)
{
@@ -71,6 +89,12 @@
try
{
+ // CraftBukkit start - Don't attempt writing to file if it's read only
+ if (this.serverPropertiesFile.exists() && !this.serverPropertiesFile.canWrite()) {
+ return;
+ }
+ // CraftBukkit end
+
fileoutputstream = new FileOutputStream(this.serverPropertiesFile);
this.serverProperties.store((OutputStream)fileoutputstream, "Minecraft server properties");
}
@@ -109,20 +133,23 @@
this.saveProperties();
}
- return this.serverProperties.getProperty(key, defaultValue);
+ //return this.serverProperties.getProperty(key, defaultValue);
+ return getOverride(key, serverProperties.getProperty(key, defaultValue)); // CraftBukkit
}
public int getIntProperty(String key, int defaultValue)
{
try
{
- return Integer.parseInt(this.getStringProperty(key, "" + defaultValue));
+ //return Integer.parseInt(this.getStringProperty(key, "" + defaultValue));
+ return getOverride(key, Integer.parseInt(this.getStringProperty(key, "" + defaultValue))); // CraftBukkit
}
catch (Exception var4)
{
this.serverProperties.setProperty(key, "" + defaultValue);
this.saveProperties();
- return defaultValue;
+ //return defaultValue;
+ return getOverride(key, defaultValue); // CraftBukkit
}
}
@@ -130,13 +157,15 @@
{
try
{
- return Long.parseLong(this.getStringProperty(key, "" + defaultValue));
+ //return Long.parseLong(this.getStringProperty(key, "" + defaultValue));
+ return getOverride(key, Long.parseLong(this.getStringProperty(key, "" + defaultValue))); // CraftBukkit
}
catch (Exception var5)
{
this.serverProperties.setProperty(key, "" + defaultValue);
this.saveProperties();
- return defaultValue;
+ //return defaultValue;
+ return getOverride(key, defaultValue); // CraftBukkit
}
}
@@ -144,13 +173,15 @@
{
try
{
- return Boolean.parseBoolean(this.getStringProperty(key, "" + defaultValue));
+ //return Boolean.parseBoolean(this.getStringProperty(key, "" + defaultValue));
+ return getOverride(key, Boolean.parseBoolean(this.getStringProperty(key, "" + defaultValue))); // CraftBukkit
}
catch (Exception var4)
{
this.serverProperties.setProperty(key, "" + defaultValue);
this.saveProperties();
- return defaultValue;
+ //return defaultValue;
+ return getOverride(key, defaultValue); // CraftBukkit
}
}