есть код:
это скопированный мод на таймер(с майна 1.2.5)
часть уже сам исправил может кто нибудь помочь закончить ( я не знаю таких классов
)
к тому же наверняка за такое время метод загрузки "этого" одноклассного мода изменился
это скопированный мод на таймер(с майна 1.2.5)
Код:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import javax.xml.crypto.Data;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.world.MinecraftException;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.storage.IChunkLoader;
import net.minecraft.world.storage.IPlayerFileData;
import net.minecraft.world.storage.ISaveHandler;
import net.minecraft.world.storage.WorldInfo;
import net.minecraftforge.client.MinecraftForgeClient;
public class mod_Timer implements ISaveHandler
{
long timerAdd = 0L;
long baseTime = 0L;
long lastSave = 0L;
public boolean clientSideRequired()
{
return false;
}
public boolean serverSideRequired()
{
return false;
}
public String getVersion()
{
return "1.2.5v1";
}
public void load()
{
ModLoader.setInGameHook(this, true, false);
net.minecraftforge.common.MinecraftForge.registerSaveHandler(this);
}
public boolean onTickInGame(float subTick, Minecraft mc)
{
mc.q.a(getDisplayString(calculateTime()), 10, 10, 16777215);
return true;
}
public void onWorldLoad(World world)
{
if (!world.isRemote)
{
Minecraft mc = Minecraft.getMinecraft();
this.baseTime = System.currentTimeMillis();
this.timerAdd = loadTime(world.w.d(), mc.k.b);
}
}
public void onWorldSave(World world)
{
Minecraft mc = Minecraft.getMinecraft();
saveTime(world.w.d(), mc.k.b);
}
public String getDisplayString(long time)
{
int hour = (int)(time / 3600000L);
time -= hour * 3600000;
int min = (int)(time / 60000L);
time -= min * 60000;
int sec = (int)(time / 1000L);
time -= sec * 1000;
return String.format("%d:%02d:%02d.%03d", new Object[] { Integer.valueOf(hour), Integer.valueOf(min), Integer.valueOf(sec), Long.valueOf(time) });
}
private File getSaveFile(String worldName, String playerName)
{
Minecraft mc = Minecraft.getMinecraft();
File dataFile = new File("saves");
dataFile = new File(dataFile, worldName);
dataFile = new File(dataFile, "timer_" + playerName + ".dat");
return dataFile;
}
private long calculateTime()
{
return System.currentTimeMillis() - this.baseTime + this.timerAdd;
}
private void saveTime(String worldName, String username)
{
Minecraft mc = Minecraft.getMinecraft();
File dataFile = getSaveFile(worldName, username);
if (System.currentTimeMillis() - this.lastSave < 10000L) {
return;
}
if (dataFile.exists()) {
dataFile.delete();
}
try
{
dataFile.createNewFile();
DataOutputStream fos = new DataOutputStream(new FileOutputStream(dataFile));
fos.writeLong(calculateTime());
}
catch (Exception e)
{
System.out.println("Failed to save timer data: " + dataFile);
e.printStackTrace();
}
}
private long loadTime(String worldname, String username)
{
Minecraft mc = Minecraft.getMinecraft();
File dataFile = getSaveFile(worldname, username);
if (!dataFile.exists()) {
return 0L;
}
try
{
DataInputStream fis = new DataInputStream(new FileInputStream(dataFile));
return fis.readLong();
}
catch (Exception e)
{
System.out.println("Failed to load timer data: " + dataFile);
e.printStackTrace();
}
return 0L;
}
public void onChunkLoad(World world,Chunk chunk) {}
public void onChunkUnload(World world,Chunk chunk) {}
public void onChunkSaveData(World world,Chunk chunk,Data data) {}
public void onChunkLoadData(World world,Chunk chunk,Data data) {}
@Override
public WorldInfo loadWorldInfo() {
return null;
}
@Override
public void checkSessionLock() throws MinecraftException {
}
@Override
public IChunkLoader getChunkLoader(WorldProvider p_75763_1_) {
return null;
}
@Override
public void saveWorldInfoWithPlayer(WorldInfo p_75755_1_,NBTTagCompound p_75755_2_) {
}
@Override
public void saveWorldInfo(WorldInfo p_75761_1_) {
}
@Override
public IPlayerFileData getSaveHandler() {
return null;
}
@Override
public void flush() {
}
@Override
public File getWorldDirectory() {
return null;
}
@Override
public File getMapFileFromName(String p_75758_1_) {
return null;
}
@Override
public String getWorldDirectoryName() {
return null;
}
}
к тому же наверняка за такое время метод загрузки "этого" одноклассного мода изменился