diff --git a/src/main/java/cpw/mods/fml/relauncher/FMLLaunchHandler.java b/src/main/java/cpw/mods/fml/relauncher/FMLLaunchHandler.java index e78dfb9..f81c028 100644 --- a/src/main/java/cpw/mods/fml/relauncher/FMLLaunchHandler.java +++ b/src/main/java/cpw/mods/fml/relauncher/FMLLaunchHandler.java @@ -112,4 +112,9 @@ { INSTANCE.injectPostfixTransformers(); } + + public static File getMinecraftHome() + { + return INSTANCE.minecraftHome; + } } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 6558617..25dba07 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -15,6 +15,7 @@ import io.netty.buffer.ByteBufOutputStream; import io.netty.buffer.Unpooled; import io.netty.handler.codec.base64.Base64; + import java.awt.GraphicsEnvironment; import java.awt.image.BufferedImage; import java.io.File; @@ -32,7 +33,9 @@ import java.util.Random; import java.util.UUID; import java.util.concurrent.Callable; + import javax.imageio.ImageIO; + import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandManager; import net.minecraft.command.ICommandSender; @@ -71,9 +74,11 @@ import net.minecraft.world.storage.ISaveFormat; import net.minecraft.world.storage.ISaveHandler; import net.minecraft.world.storage.WorldInfo; + import org.apache.commons.lang3.Validate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.ultramine.server.ConfigurationHandler; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; @@ -502,7 +507,7 @@ protected File getDataDirectory() { - return new File("."); + return ConfigurationHandler.getSettingDir(); } protected void finalTick(CrashReport par1CrashReport) {} @@ -1290,7 +1295,7 @@ } } - final DedicatedServer dedicatedserver = new DedicatedServer(new File(s1)); + final DedicatedServer dedicatedserver = new DedicatedServer(ConfigurationHandler.getWorldsDir()); if (s != null) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java index 10b1036..83a2805 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -3,6 +3,7 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; + import java.io.BufferedReader; import java.io.File; import java.io.IOException; @@ -14,6 +15,7 @@ import java.util.List; import java.util.Random; import java.util.concurrent.Callable; + import net.minecraft.command.ICommandSender; import net.minecraft.command.ServerCommand; import net.minecraft.crash.CrashReport; @@ -32,8 +34,10 @@ import net.minecraft.world.World; import net.minecraft.world.WorldSettings; import net.minecraft.world.WorldType; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.ultramine.server.ConfigurationHandler; @SideOnly(Side.SERVER) public class DedicatedServer extends MinecraftServer implements IServer @@ -114,7 +118,7 @@ FMLCommonHandler.instance().onServerStart(this); field_155771_h.info("Loading properties"); - this.settings = new PropertyManager(new File("server.properties")); + this.settings = new PropertyManager(new File(ConfigurationHandler.getSettingDir(), "server.properties")); if (this.isSinglePlayer()) { diff --git a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java index 7921923..22bab3d 100644 --- a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java +++ b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java @@ -7,6 +7,7 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; + import java.io.File; import java.net.SocketAddress; import java.text.SimpleDateFormat; @@ -18,6 +19,7 @@ import java.util.Map; import java.util.Set; import java.util.Map.Entry; + import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.player.EntityPlayer; @@ -61,8 +63,10 @@ import net.minecraft.world.WorldSettings; import net.minecraft.world.demo.DemoWorldManager; import net.minecraft.world.storage.IPlayerFileData; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.ultramine.server.ConfigurationHandler; public abstract class ServerConfigurationManager { @@ -70,8 +74,8 @@ private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); private final MinecraftServer mcServer; public final List playerEntityList = new ArrayList(); - private final BanList bannedPlayers = new BanList(new File("banned-players.txt")); - private final BanList bannedIPs = new BanList(new File("banned-ips.txt")); + private final BanList bannedPlayers = new BanList(new File(ConfigurationHandler.getSettingDir(), "banned-players.txt")); + private final BanList bannedIPs = new BanList(new File(ConfigurationHandler.getSettingDir(), "banned-ips.txt")); private final Set ops = new HashSet(); private final Set whiteListedPlayers = new HashSet(); private final Map field_148547_k = Maps.newHashMap(); diff --git a/src/main/java/org/ultramine/server/ConfigurationHandler.java b/src/main/java/org/ultramine/server/ConfigurationHandler.java new file mode 100644 index 0000000..e13facb --- /dev/null +++ b/src/main/java/org/ultramine/server/ConfigurationHandler.java @@ -0,0 +1,27 @@ +package org.ultramine.server; + +import java.io.File; + +import cpw.mods.fml.relauncher.FMLLaunchHandler; + +public class ConfigurationHandler +{ + private static File settingsDir = new File(FMLLaunchHandler.getMinecraftHome(), "settings"); + private static File worldsDir = new File(FMLLaunchHandler.getMinecraftHome(), "worlds"); + + static + { + if(!settingsDir.exists()) settingsDir.mkdir(); + if(!worldsDir.exists()) worldsDir.mkdir(); + } + + public static File getSettingDir() + { + return settingsDir; + } + + public static File getWorldsDir() + { + return worldsDir; + } +}