Fixed mod languages not being loaded on the server.
This commit is contained in:
parent
25d7b80119
commit
d44c9082fa
|
@ -12,18 +12,21 @@
|
||||||
*/
|
*/
|
||||||
package net.minecraftforge.fml.server;
|
package net.minecraftforge.fml.server;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.zip.ZipFile;
|
||||||
|
|
||||||
import net.minecraft.command.ServerCommand;
|
import net.minecraft.command.ServerCommand;
|
||||||
|
import net.minecraft.launchwrapper.Launch;
|
||||||
import net.minecraft.network.INetHandler;
|
import net.minecraft.network.INetHandler;
|
||||||
import net.minecraft.network.NetHandlerPlayServer;
|
import net.minecraft.network.NetHandlerPlayServer;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.dedicated.DedicatedServer;
|
import net.minecraft.server.dedicated.DedicatedServer;
|
||||||
import net.minecraft.util.IThreadListener;
|
import net.minecraft.util.IThreadListener;
|
||||||
|
import net.minecraft.util.text.translation.LanguageMap;
|
||||||
import net.minecraft.world.storage.SaveFormatOld;
|
import net.minecraft.world.storage.SaveFormatOld;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
import net.minecraftforge.fml.common.FMLLog;
|
import net.minecraftforge.fml.common.FMLLog;
|
||||||
|
@ -37,6 +40,7 @@ import net.minecraftforge.fml.common.network.FMLNetworkEvent;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles primary communication from hooked code into the system
|
* Handles primary communication from hooked code into the system
|
||||||
|
@ -218,7 +222,42 @@ public class FMLServerHandler implements IFMLSidedHandler
|
||||||
@Override
|
@Override
|
||||||
public void addModAsResource(ModContainer container)
|
public void addModAsResource(ModContainer container)
|
||||||
{
|
{
|
||||||
// NOOP
|
String langFile = "assets/" + container.getModId().toLowerCase() + "/lang/en_US.lang";
|
||||||
|
File source = container.getSource();
|
||||||
|
InputStream stream = null;
|
||||||
|
ZipFile zip = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (source.isDirectory() && (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"))
|
||||||
|
{
|
||||||
|
stream = new FileInputStream(new File(source.toURI().resolve(langFile).getPath()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
zip = new ZipFile(source);
|
||||||
|
stream = zip.getInputStream(zip.getEntry(langFile));
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if(zip != null) zip.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LanguageMap.inject(stream);
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// hush
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
FMLLog.getLogger().error(e);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
IOUtils.closeQuietly(stream);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue