mirror of
https://github.com/barkeser2002/CatServer.git
synced 2026-09-25 02:20:01 +03:00
128 lines
4.2 KiB
Diff
128 lines
4.2 KiB
Diff
--- ../src-base/minecraft/net/minecraft/server/dedicated/PropertyManager.java
|
|
+++ ../src-work/minecraft/net/minecraft/server/dedicated/PropertyManager.java
|
|
@@ -1,10 +1,10 @@
|
|
package net.minecraft.server.dedicated;
|
|
|
|
-import java.io.File;
|
|
-import java.io.FileInputStream;
|
|
-import java.io.FileOutputStream;
|
|
-import java.io.IOException;
|
|
+import java.io.*;
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.util.Properties;
|
|
+
|
|
+import joptsimple.OptionSet;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
import org.apache.logging.log4j.LogManager;
|
|
@@ -14,8 +14,9 @@
|
|
public class PropertyManager
|
|
{
|
|
private static final Logger LOGGER = LogManager.getLogger();
|
|
- private final Properties serverProperties = new Properties();
|
|
+ public final Properties serverProperties = new Properties();
|
|
private final File serverPropertiesFile;
|
|
+ private OptionSet options = null;
|
|
|
|
public PropertyManager(File propertiesFile)
|
|
{
|
|
@@ -28,7 +29,7 @@
|
|
try
|
|
{
|
|
fileinputstream = new FileInputStream(propertiesFile);
|
|
- this.serverProperties.load(fileinputstream);
|
|
+ this.serverProperties.load(new InputStreamReader(fileinputstream, StandardCharsets.UTF_8));
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
@@ -57,6 +58,18 @@
|
|
}
|
|
}
|
|
|
|
+ public PropertyManager(final OptionSet options) {
|
|
+ this((File) options.valueOf("config"));
|
|
+ this.options = options;
|
|
+ }
|
|
+
|
|
+ private <T> T getOverride(String name, T value) {
|
|
+ if ((this.options != null) && (this.options.has(name))) {
|
|
+ return (T) this.options.valueOf(name);
|
|
+ }
|
|
+ return value;
|
|
+ }
|
|
+
|
|
public void generateNewProperties()
|
|
{
|
|
LOGGER.info("Generating new properties file");
|
|
@@ -69,8 +82,13 @@
|
|
|
|
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(fileoutputstream, "Minecraft server properties");
|
|
+ this.serverProperties.store(new OutputStreamWriter(fileoutputstream, StandardCharsets.UTF_8), "Minecraft server properties");
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
@@ -107,20 +125,20 @@
|
|
this.saveProperties();
|
|
}
|
|
|
|
- return this.serverProperties.getProperty(key, defaultValue);
|
|
+ return getOverride(key, this.serverProperties.getProperty(key, defaultValue));
|
|
}
|
|
|
|
public int getIntProperty(String key, int defaultValue)
|
|
{
|
|
try
|
|
{
|
|
- return Integer.parseInt(this.getStringProperty(key, "" + defaultValue));
|
|
+ return getOverride(key, Integer.parseInt(this.getStringProperty(key, "" + defaultValue)));
|
|
}
|
|
catch (Exception var4)
|
|
{
|
|
this.serverProperties.setProperty(key, "" + defaultValue);
|
|
this.saveProperties();
|
|
- return defaultValue;
|
|
+ return getOverride(key, defaultValue);
|
|
}
|
|
}
|
|
|
|
@@ -128,13 +146,13 @@
|
|
{
|
|
try
|
|
{
|
|
- return Long.parseLong(this.getStringProperty(key, "" + defaultValue));
|
|
+ return getOverride(key, Long.parseLong(this.getStringProperty(key, "" + defaultValue)));
|
|
}
|
|
catch (Exception var5)
|
|
{
|
|
this.serverProperties.setProperty(key, "" + defaultValue);
|
|
this.saveProperties();
|
|
- return defaultValue;
|
|
+ return getOverride(key, defaultValue);
|
|
}
|
|
}
|
|
|
|
@@ -142,13 +160,13 @@
|
|
{
|
|
try
|
|
{
|
|
- return Boolean.parseBoolean(this.getStringProperty(key, "" + defaultValue));
|
|
+ return getOverride(key, Boolean.parseBoolean(this.getStringProperty(key, "" + defaultValue)));
|
|
}
|
|
catch (Exception var4)
|
|
{
|
|
this.serverProperties.setProperty(key, "" + defaultValue);
|
|
this.saveProperties();
|
|
- return defaultValue;
|
|
+ return getOverride(key, defaultValue);
|
|
}
|
|
}
|
|
|