3
0

增加配置文件自定义路径功能

This commit is contained in:
聪聪 2017-07-18 18:17:26 +08:00
parent e5f30f532d
commit d06c424b1f
6 changed files with 169 additions and 110 deletions

View File

@ -1,6 +1,18 @@
--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java --- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java
+++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java +++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java
@@ -139,6 +139,14 @@ @@ -129,7 +129,10 @@
while (iterator.hasNext())
{
ChannelFuture channelfuture = (ChannelFuture)iterator.next();
- channelfuture.channel().close().syncUninterruptibly();
+ ChannelFuture close=channelfuture.channel().close();
+// if(channelfuture.channel().isOpen()){
+// close.syncUninterruptibly();
+// }
}
}
@@ -139,6 +142,14 @@
synchronized (this.networkManagers) synchronized (this.networkManagers)
{ {

View File

@ -1,25 +1,75 @@
--- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java --- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java
+++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java +++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java
@@ -16,6 +16,7 @@ @@ -1,21 +1,5 @@
import io.netty.buffer.ByteBufOutputStream; package net.minecraft.server;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.base64.Base64; -import com.google.common.base.Charsets;
+ -import com.mojang.authlib.GameProfile;
-import com.mojang.authlib.GameProfileRepository;
-import com.mojang.authlib.minecraft.MinecraftSessionService;
-import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.LoaderState;
-import cpw.mods.fml.common.StartupQuery;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufOutputStream;
-import io.netty.buffer.Unpooled;
-import io.netty.handler.codec.base64.Base64;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
@@ -33,7 +34,10 @@ @@ -33,10 +17,45 @@
import java.util.Random; import java.util.Random;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
+import java.util.logging.Level;
+ +
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
-import net.minecraft.command.CommandBase;
+ +
import net.minecraft.command.CommandBase; +import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.bukkit.World.Environment;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.file.YamlConfiguration;
+import org.bukkit.craftbukkit.SpigotTimings; // Spigot
+import org.bukkit.craftbukkit.block.CraftBlock;
+// Cauldron end
+import org.bukkit.craftbukkit.util.Waitable;
+import org.bukkit.event.server.RemoteServerCommandEvent;
+import org.bukkit.event.world.WorldSaveEvent;
+
+import com.google.common.base.Charsets;
+import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.GameProfileRepository;
+import com.mojang.authlib.minecraft.MinecraftSessionService;
+import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.LoaderState;
+import cpw.mods.fml.common.StartupQuery;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufOutputStream;
+import io.netty.buffer.Unpooled;
+import io.netty.handler.codec.base64.Base64;
+import jline.console.ConsoleReader;
+import joptsimple.OptionParser;
+import joptsimple.OptionSet;
+import kcauldron.KCauldronConfig;
import net.minecraft.command.ICommandManager; import net.minecraft.command.ICommandManager;
import net.minecraft.command.ICommandSender; import net.minecraft.command.ICommandSender;
@@ -50,6 +54,7 @@ +import net.minecraft.command.ServerCommand;
import net.minecraft.command.ServerCommandManager;
import net.minecraft.crash.CrashReport;
import net.minecraft.entity.player.EntityPlayer;
@@ -50,9 +69,11 @@
import net.minecraft.profiler.PlayerUsageSnooper; import net.minecraft.profiler.PlayerUsageSnooper;
import net.minecraft.profiler.Profiler; import net.minecraft.profiler.Profiler;
import net.minecraft.server.dedicated.DedicatedServer; import net.minecraft.server.dedicated.DedicatedServer;
@ -27,57 +77,37 @@
import net.minecraft.server.gui.IUpdatePlayerListBox; import net.minecraft.server.gui.IUpdatePlayerListBox;
import net.minecraft.server.management.PlayerProfileCache; import net.minecraft.server.management.PlayerProfileCache;
import net.minecraft.server.management.ServerConfigurationManager; import net.minecraft.server.management.ServerConfigurationManager;
@@ -72,6 +77,7 @@
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;
@@ -80,18 +86,55 @@
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.WorldEvent;
+
+// CraftBukkit start
+import java.io.IOException;
+
+import jline.console.ConsoleReader;
+import joptsimple.OptionSet;
+import net.minecraft.world.chunk.storage.AnvilSaveHandler;
+
+import org.bukkit.World.Environment;
+import org.bukkit.craftbukkit.SpigotTimings; // Spigot
+import org.bukkit.craftbukkit.util.Waitable;
+import org.bukkit.event.server.RemoteServerCommandEvent;
+import org.bukkit.event.world.WorldSaveEvent;
+
+// CraftBukkit end
+// Cauldron start
+import java.util.Map;
+import java.lang.reflect.Constructor;
+
+import joptsimple.OptionParser;
+import kcauldron.KCauldronConfig;
+import cpw.mods.fml.common.asm.transformers.SideTransformer;
+import net.minecraft.command.ServerCommand;
+import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.IChatComponent;
@@ -63,19 +84,20 @@
import net.minecraft.world.MinecraftException;
import net.minecraft.world.World;
import net.minecraft.world.WorldManager;
+import net.minecraft.world.WorldProvider; +import net.minecraft.world.WorldProvider;
import net.minecraft.world.WorldServer;
import net.minecraft.world.WorldServerMulti;
import net.minecraft.world.WorldSettings;
import net.minecraft.world.WorldType;
import net.minecraft.world.chunk.storage.AnvilSaveConverter;
+import net.minecraft.world.chunk.storage.AnvilSaveHandler;
import net.minecraft.world.demo.DemoWorldServer;
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 net.minecraftforge.cauldron.CauldronUtils; +import net.minecraftforge.cauldron.CauldronUtils;
+import net.minecraftforge.cauldron.configuration.CauldronConfig; +import net.minecraftforge.cauldron.configuration.CauldronConfig;
+import net.minecraftforge.cauldron.configuration.EntityConfig; +import net.minecraftforge.cauldron.configuration.EntityConfig;
+import net.minecraftforge.cauldron.configuration.TileEntityConfig; +import net.minecraftforge.cauldron.configuration.TileEntityConfig;
+import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.common.DimensionManager;
+ import net.minecraftforge.common.MinecraftForge;
+import org.bukkit.configuration.ConfigurationSection; import net.minecraftforge.event.world.WorldEvent;
+import org.bukkit.configuration.file.YamlConfiguration; @@ -85,13 +107,13 @@
+import org.bukkit.craftbukkit.CraftServer;
+import org.bukkit.craftbukkit.block.CraftBlock;
+// Cauldron end
+
public abstract class MinecraftServer implements ICommandSender, Runnable, IPlayerUsage
{
private static final Logger logger = LogManager.getLogger(); private static final Logger logger = LogManager.getLogger();
public static final File field_152367_a = new File("usercache.json"); public static final File field_152367_a = new File("usercache.json");
private static MinecraftServer mcServer; private static MinecraftServer mcServer;
@ -94,7 +124,7 @@
private final ServerStatusResponse field_147147_p = new ServerStatusResponse(); private final ServerStatusResponse field_147147_p = new ServerStatusResponse();
private final Random field_147146_q = new Random(); private final Random field_147146_q = new Random();
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@@ -135,8 +178,41 @@ @@ -135,8 +157,42 @@
private long field_147142_T = 0L; private long field_147142_T = 0L;
private final GameProfileRepository field_152365_W; private final GameProfileRepository field_152365_W;
private final PlayerProfileCache field_152366_X; private final PlayerProfileCache field_152366_X;
@ -124,6 +154,7 @@
+ public static YamlConfiguration commandsConfiguration; + public static YamlConfiguration commandsConfiguration;
+ public static File configFile; + public static File configFile;
+ public static File commandFile; + public static File commandFile;
+ public static File serverConfigDir=new File(".");
+ public static double currentTps = 0; + public static double currentTps = 0;
+ public static boolean useJline = true; + public static boolean useJline = true;
+ public static boolean useConsole = true; + public static boolean useConsole = true;
@ -136,7 +167,7 @@
public MinecraftServer(File p_i45281_1_, Proxy p_i45281_2_) public MinecraftServer(File p_i45281_1_, Proxy p_i45281_2_)
{ {
this.field_152366_X = new PlayerProfileCache(this, field_152367_a); this.field_152366_X = new PlayerProfileCache(this, field_152367_a);
@@ -149,10 +225,72 @@ @@ -149,10 +205,72 @@
this.field_152364_T = new YggdrasilAuthenticationService(p_i45281_2_, UUID.randomUUID().toString()); this.field_152364_T = new YggdrasilAuthenticationService(p_i45281_2_, UUID.randomUUID().toString());
this.field_147143_S = this.field_152364_T.createMinecraftSessionService(); this.field_147143_S = this.field_152364_T.createMinecraftSessionService();
this.field_152365_W = this.field_152364_T.createProfileRepository(); this.field_152365_W = this.field_152364_T.createProfileRepository();
@ -151,7 +182,7 @@
- protected abstract boolean startServer() throws IOException; - protected abstract boolean startServer() throws IOException;
+ public MinecraftServer(OptionSet options, Proxy proxy) // CraftBukkit - signature file -> OptionSet + public MinecraftServer(OptionSet options, Proxy proxy) // CraftBukkit - signature file -> OptionSet
+ { + {
+ this.field_152366_X = new PlayerProfileCache(this, field_152367_a); + this.field_152366_X = new PlayerProfileCache(this, new File(MinecraftServer.serverConfigDir,field_152367_a.getName()));
+ mcServer = this; + mcServer = this;
+ this.serverProxy = proxy; + this.serverProxy = proxy;
+ // this.anvilFile = p_i45281_1_; // CraftBukkit + // this.anvilFile = p_i45281_1_; // CraftBukkit
@ -210,7 +241,7 @@
protected void convertMapIfNeeded(String p_71237_1_) protected void convertMapIfNeeded(String p_71237_1_)
{ {
if (this.getActiveAnvilConverter().isOldMapFormat(p_71237_1_)) if (this.getActiveAnvilConverter().isOldMapFormat(p_71237_1_))
@@ -172,6 +310,7 @@ @@ -172,6 +290,7 @@
MinecraftServer.logger.info("Converting... " + p_73718_1_ + "%"); MinecraftServer.logger.info("Converting... " + p_73718_1_ + "%");
} }
} }
@ -218,7 +249,7 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void resetProgressAndMessage(String p_73721_1_) {} public void resetProgressAndMessage(String p_73721_1_) {}
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -195,10 +334,17 @@ @@ -195,10 +314,17 @@
protected void loadAllWorlds(String p_71247_1_, String p_71247_2_, long p_71247_3_, WorldType p_71247_5_, String p_71247_6_) protected void loadAllWorlds(String p_71247_1_, String p_71247_2_, long p_71247_3_, WorldType p_71247_5_, String p_71247_6_)
{ {
@ -238,7 +269,7 @@
WorldSettings worldsettings; WorldSettings worldsettings;
if (worldinfo == null) if (worldinfo == null)
@@ -215,11 +361,79 @@ @@ -215,11 +341,79 @@
{ {
worldsettings.enableBonusChest(); worldsettings.enableBonusChest();
} }
@ -321,7 +352,7 @@
world.addWorldAccess(new WorldManager(this, world)); world.addWorldAccess(new WorldManager(this, world));
if (!this.isSinglePlayer()) if (!this.isSinglePlayer())
@@ -227,12 +441,14 @@ @@ -227,12 +421,14 @@
world.getWorldInfo().setGameType(this.getGameType()); world.getWorldInfo().setGameType(this.getGameType());
} }
@ -339,7 +370,7 @@
} }
protected void initialWorldChunkLoad() protected void initialWorldChunkLoad()
@@ -244,9 +460,12 @@ @@ -244,9 +440,12 @@
int i = 0; int i = 0;
this.setUserMessage("menu.generatingTerrain"); this.setUserMessage("menu.generatingTerrain");
byte b0 = 0; byte b0 = 0;
@ -352,7 +383,7 @@
long j = getSystemTimeMillis(); long j = getSystemTimeMillis();
for (int k = -192; k <= 192 && this.isServerRunning(); k += 16) for (int k = -192; k <= 192 && this.isServerRunning(); k += 16)
@@ -265,7 +484,8 @@ @@ -265,7 +464,8 @@
worldserver.theChunkProviderServer.loadChunk(chunkcoordinates.posX + k >> 4, chunkcoordinates.posZ + l >> 4); worldserver.theChunkProviderServer.loadChunk(chunkcoordinates.posX + k >> 4, chunkcoordinates.posZ + l >> 4);
} }
} }
@ -362,7 +393,7 @@
this.clearCurrentTask(); this.clearCurrentTask();
} }
@@ -292,19 +512,17 @@ @@ -292,19 +492,17 @@
{ {
this.currentTask = null; this.currentTask = null;
this.percentDone = 0; this.percentDone = 0;
@ -387,7 +418,7 @@
if (worldserver != null) if (worldserver != null)
{ {
@@ -313,25 +531,41 @@ @@ -313,25 +511,41 @@
logger.info("Saving chunks for level \'" + worldserver.getWorldInfo().getWorldName() + "\'/" + worldserver.provider.getDimensionName()); logger.info("Saving chunks for level \'" + worldserver.getWorldInfo().getWorldName() + "\'/" + worldserver.provider.getDimensionName());
} }
@ -434,7 +465,7 @@
if (this.func_147137_ag() != null) if (this.func_147137_ag() != null)
{ {
this.func_147137_ag().terminateEndpoints(); this.func_147137_ag().terminateEndpoints();
@@ -347,7 +581,14 @@ @@ -347,7 +561,14 @@
if (this.worldServers != null) if (this.worldServers != null)
{ {
logger.info("Saving worlds"); logger.info("Saving worlds");
@ -450,7 +481,7 @@
for (int i = 0; i < this.worldServers.length; ++i) for (int i = 0; i < this.worldServers.length; ++i)
{ {
@@ -380,6 +621,13 @@ @@ -380,6 +601,13 @@
this.serverRunning = false; this.serverRunning = false;
} }
@ -464,7 +495,7 @@
public void run() public void run()
{ {
try try
@@ -392,45 +640,41 @@ @@ -392,45 +620,41 @@
this.field_147147_p.func_151315_a(new ChatComponentText(this.motd)); this.field_147147_p.func_151315_a(new ChatComponentText(this.motd));
this.field_147147_p.func_151321_a(new ServerStatusResponse.MinecraftProtocolVersionIdentifier("1.7.10", 5)); this.field_147147_p.func_151321_a(new ServerStatusResponse.MinecraftProtocolVersionIdentifier("1.7.10", 5));
this.func_147138_a(this.field_147147_p); this.func_147138_a(this.field_147147_p);
@ -531,7 +562,7 @@
FMLCommonHandler.instance().handleServerStopping(); FMLCommonHandler.instance().handleServerStopping();
FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
} }
@@ -448,6 +692,14 @@ @@ -448,6 +672,14 @@
catch (Throwable throwable1) catch (Throwable throwable1)
{ {
logger.error("Encountered an unexpected exception", throwable1); logger.error("Encountered an unexpected exception", throwable1);
@ -546,7 +577,7 @@
CrashReport crashreport = null; CrashReport crashreport = null;
if (throwable1 instanceof ReportedException) if (throwable1 instanceof ReportedException)
@@ -477,6 +729,7 @@ @@ -477,6 +709,7 @@
{ {
try try
{ {
@ -554,7 +585,7 @@
this.stopServer(); this.stopServer();
this.serverStopped = true; this.serverStopped = true;
} }
@@ -486,6 +739,16 @@ @@ -486,6 +719,16 @@
} }
finally finally
{ {
@ -571,7 +602,7 @@
FMLCommonHandler.instance().handleServerStopped(); FMLCommonHandler.instance().handleServerStopped();
this.serverStopped = true; this.serverStopped = true;
this.systemExitNow(); this.systemExitNow();
@@ -532,8 +795,11 @@ @@ -532,8 +775,11 @@
public void tick() public void tick()
{ {
@ -583,7 +614,7 @@
++this.tickCounter; ++this.tickCounter;
if (this.startProfiling) if (this.startProfiling)
@@ -562,12 +828,21 @@ @@ -562,12 +808,21 @@
this.field_147147_p.func_151318_b().func_151330_a(agameprofile); this.field_147147_p.func_151318_b().func_151330_a(agameprofile);
} }
@ -607,7 +638,7 @@
} }
this.theProfiler.startSection("tallying"); this.theProfiler.startSection("tallying");
@@ -575,25 +850,57 @@ @@ -575,25 +830,57 @@
this.theProfiler.endSection(); this.theProfiler.endSection();
this.theProfiler.startSection("snooper"); this.theProfiler.startSection("snooper");
@ -667,7 +698,7 @@
int i; int i;
Integer[] ids = DimensionManager.getIDs(this.tickCounter % 200 == 0); Integer[] ids = DimensionManager.getIDs(this.tickCounter % 200 == 0);
@@ -602,19 +909,21 @@ @@ -602,19 +889,21 @@
int id = ids[x]; int id = ids[x];
long j = System.nanoTime(); long j = System.nanoTime();
@ -692,7 +723,7 @@
this.theProfiler.startSection("tick"); this.theProfiler.startSection("tick");
FMLCommonHandler.instance().onPreWorldTick(worldserver); FMLCommonHandler.instance().onPreWorldTick(worldserver);
@@ -622,22 +931,46 @@ @@ -622,22 +911,46 @@
try try
{ {
@ -741,7 +772,7 @@
worldserver.addWorldInfoToCrashReport(crashreport); worldserver.addWorldInfoToCrashReport(crashreport);
throw new ReportedException(crashreport); throw new ReportedException(crashreport);
} }
@@ -645,10 +978,13 @@ @@ -645,10 +958,13 @@
FMLCommonHandler.instance().onPostWorldTick(worldserver); FMLCommonHandler.instance().onPostWorldTick(worldserver);
this.theProfiler.endSection(); this.theProfiler.endSection();
this.theProfiler.startSection("tracker"); this.theProfiler.startSection("tracker");
@ -756,7 +787,7 @@
worldTickTimes.get(id)[this.tickCounter % 100] = System.nanoTime() - j; worldTickTimes.get(id)[this.tickCounter % 100] = System.nanoTime() - j;
} }
@@ -656,15 +992,21 @@ @@ -656,15 +972,21 @@
this.theProfiler.endStartSection("dim_unloading"); this.theProfiler.endStartSection("dim_unloading");
DimensionManager.unloadWorlds(worldTickTimes); DimensionManager.unloadWorlds(worldTickTimes);
this.theProfiler.endStartSection("connection"); this.theProfiler.endStartSection("connection");
@ -778,7 +809,7 @@
this.theProfiler.endSection(); this.theProfiler.endSection();
} }
@@ -699,6 +1041,13 @@ @@ -699,6 +1021,13 @@
public WorldServer worldServerForDimension(int p_71218_1_) public WorldServer worldServerForDimension(int p_71218_1_)
{ {
@ -792,7 +823,7 @@
WorldServer ret = DimensionManager.getWorld(p_71218_1_); WorldServer ret = DimensionManager.getWorld(p_71218_1_);
if (ret == null) if (ret == null)
{ {
@@ -784,13 +1133,14 @@ @@ -784,13 +1113,14 @@
public List getPossibleCompletions(ICommandSender p_71248_1_, String p_71248_2_) public List getPossibleCompletions(ICommandSender p_71248_1_, String p_71248_2_)
{ {
@ -811,7 +842,7 @@
if (list != null) if (list != null)
{ {
@@ -798,40 +1148,25 @@ @@ -798,40 +1128,25 @@
while (iterator.hasNext()) while (iterator.hasNext())
{ {
@ -860,7 +891,7 @@
} }
public static MinecraftServer getServer() public static MinecraftServer getServer()
@@ -1034,7 +1369,7 @@ @@ -1034,7 +1349,7 @@
public boolean isServerInOnlineMode() public boolean isServerInOnlineMode()
{ {
@ -869,7 +900,7 @@
} }
public void setOnlineMode(boolean p_71229_1_) public void setOnlineMode(boolean p_71229_1_)
@@ -1124,7 +1459,7 @@ @@ -1124,7 +1439,7 @@
public NetworkSystem func_147137_ag() public NetworkSystem func_147137_ag()
{ {
@ -878,7 +909,7 @@
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@@ -1259,8 +1594,11 @@ @@ -1259,8 +1574,11 @@
{ {
Bootstrap.func_151354_b(); Bootstrap.func_151354_b();
@ -890,7 +921,7 @@
boolean flag = true; boolean flag = true;
String s = null; String s = null;
String s1 = "."; String s1 = ".";
@@ -1356,16 +1694,34 @@ @@ -1356,16 +1674,34 @@
{ {
dedicatedserver.setGuiEnabled(); dedicatedserver.setGuiEnabled();
} }
@ -931,7 +962,7 @@
} }
catch (Exception exception) catch (Exception exception)
{ {
@@ -1400,15 +1756,70 @@ @@ -1400,15 +1736,70 @@
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
public String getPlugins() public String getPlugins()
{ {
@ -1007,7 +1038,7 @@
} }
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@@ -1455,9 +1866,213 @@ @@ -1455,9 +1846,220 @@
return this.serverStopped; return this.serverStopped;
} }
@ -1016,6 +1047,12 @@
+ { + {
+ acceptsAll(Arrays.asList("?", "help"), "Show the help"); + acceptsAll(Arrays.asList("?", "help"), "Show the help");
+ +
+ acceptsAll(Arrays.asList("SCD", "ServerConfigDir"), "server config dir")
+ .withRequiredArg()
+ .ofType(File.class)
+ .defaultsTo(new File("."))
+ .describedAs("server config dir");
+
+ acceptsAll(Arrays.asList("c", "config"), "Properties file to use") + acceptsAll(Arrays.asList("c", "config"), "Properties file to use")
+ .withRequiredArg() + .withRequiredArg()
+ .ofType(File.class) + .ofType(File.class)
@ -1148,6 +1185,7 @@
+ useConsole = false; + useConsole = false;
+ } + }
+ // Cauldron start - initialize config + // Cauldron start - initialize config
+ serverConfigDir = (File) options.valueOf("ServerConfigDir");
+ configFile = (File) options.valueOf("bukkit-settings"); + configFile = (File) options.valueOf("bukkit-settings");
+ commandFile = (File)options.valueOf("commands-settings"); + commandFile = (File)options.valueOf("commands-settings");
+ configuration = YamlConfiguration.loadConfiguration(configFile); + configuration = YamlConfiguration.loadConfiguration(configFile);

View File

@ -0,0 +1,19 @@
--- ../src-base/minecraft/net/minecraftforge/common/UsernameCache.java
+++ ../src-work/minecraft/net/minecraftforge/common/UsernameCache.java
@@ -24,6 +24,7 @@
import com.google.gson.JsonSyntaxException;
import cpw.mods.fml.relauncher.FMLInjectionData;
+import net.minecraft.server.MinecraftServer;
/**
* Caches player's last known usernames
@@ -39,7 +40,7 @@
private static final Charset charset = Charsets.UTF_8;
- private static final File saveFile = new File( /* The minecraft dir */(File) FMLInjectionData.data()[6], "usernamecache.json");
+ private static final File saveFile = new File( MinecraftServer.serverConfigDir, "usernamecache.json");
private static final Gson gson = new GsonBuilder().setPrettyPrinting().create();
private static final Logger log = LogManager.getLogger(UsernameCache.class);

View File

@ -2,28 +2,15 @@ package net.minecraftforge.cauldron.configuration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Level;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.WorldServer;
import net.minecraftforge.cauldron.CauldronHooks;
import net.minecraftforge.cauldron.TileEntityCache;
import net.minecraftforge.cauldron.command.CauldronCommand;
import net.minecraftforge.common.DimensionManager;
import org.apache.commons.lang.BooleanUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import com.google.common.base.Throwables; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.WorldServer;
public abstract class ConfigBase public abstract class ConfigBase
{ {
@ -41,7 +28,7 @@ public abstract class ConfigBase
public ConfigBase(String fileName, String commandName) public ConfigBase(String fileName, String commandName)
{ {
this.configFile = new File(fileName); this.configFile=new File(MinecraftServer.serverConfigDir,fileName);
this.config = YamlConfiguration.loadConfiguration(configFile); this.config = YamlConfiguration.loadConfiguration(configFile);
this.commandName = commandName; this.commandName = commandName;
this.commands = new HashMap<String, Command>(); this.commands = new HashMap<String, Command>();

View File

@ -8,6 +8,8 @@ import org.bukkit.help.HelpTopic;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import net.minecraft.server.MinecraftServer;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -27,7 +29,7 @@ public class HelpYamlReader {
public HelpYamlReader(Server server) { public HelpYamlReader(Server server) {
this.server = server; this.server = server;
File helpYamlFile = new File("help.yml"); File helpYamlFile = new File(MinecraftServer.serverConfigDir,"help.yml");
YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("configurations/help.yml"), Charsets.UTF_8)); YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("configurations/help.yml"), Charsets.UTF_8));
try { try {

View File

@ -1,29 +1,30 @@
package org.spigotmc; package org.spigotmc;
import com.google.common.base.Throwables;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import gnu.trove.map.hash.TObjectIntHashMap;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.SimpleCommandMap;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import com.google.common.base.Throwables;
import gnu.trove.map.hash.TObjectIntHashMap;
import net.minecraft.server.MinecraftServer;
public class SpigotConfig public class SpigotConfig
{ {
private static final File CONFIG_FILE = new File( "spigot.yml" ); private static final File CONFIG_FILE = new File(MinecraftServer.serverConfigDir, "spigot.yml" );
private static final String HEADER = "This is the main configuration file for Spigot.\n" private static final String HEADER = "This is the main configuration file for Spigot.\n"
+ "As you can see, there's tons to configure. Some options may impact gameplay, so use\n" + "As you can see, there's tons to configure. Some options may impact gameplay, so use\n"
+ "with caution, and make sure you know what each option does before configuring.\n" + "with caution, and make sure you know what each option does before configuring.\n"