Added versioning.
This commit is contained in:
parent
428d119699
commit
10143101da
15 changed files with 176 additions and 18 deletions
buildcraft_resources
common/buildcraft
|
@ -68,6 +68,9 @@
|
|||
<arg value="install.sh" />
|
||||
</exec>
|
||||
|
||||
<!-- Set build number -->
|
||||
<buildnumber file="${src.dir}/buildcraft_resources/build.number"/>
|
||||
|
||||
<!-- Copy BC source -->
|
||||
<copy todir="${clientsrc.dir}">
|
||||
<fileset dir="${src.dir}/common">
|
||||
|
@ -75,6 +78,7 @@
|
|||
</fileset>
|
||||
<filterset>
|
||||
<filter token="VERSION" value="${bc.version}" />
|
||||
<filter token="BUILD_NUMBER" value="${build.number}" />
|
||||
</filterset>
|
||||
</copy>
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@ import buildcraft.builders.TileFiller;
|
|||
import buildcraft.builders.TileMarker;
|
||||
import buildcraft.builders.TilePathMarker;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.blueprints.BptPlayerIndex;
|
||||
import buildcraft.core.blueprints.BptRootIndex;
|
||||
import buildcraft.core.network.PacketHandler;
|
||||
|
@ -82,7 +83,7 @@ import net.minecraftforge.common.Configuration;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.Property;
|
||||
|
||||
@Mod(name="BuildCraft Builders", version=DefaultProps.VERSION, useMetadata = false, modid = "BuildCraft|Builders", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@Mod(name="BuildCraft Builders", version=Version.VERSION, useMetadata = false, modid = "BuildCraft|Builders", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandler.class, clientSideRequired = true, serverSideRequired = true)
|
||||
public class BuildCraftBuilders {
|
||||
|
||||
|
|
|
@ -17,8 +17,10 @@ import cpw.mods.fml.common.Mod;
|
|||
import cpw.mods.fml.common.Mod.Init;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
import cpw.mods.fml.common.Mod.PreInit;
|
||||
import cpw.mods.fml.common.Mod.ServerStarting;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.registry.EntityRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
@ -34,6 +36,7 @@ import buildcraft.api.liquids.LiquidStack;
|
|||
import buildcraft.api.power.PowerFramework;
|
||||
import buildcraft.core.BlockIndex;
|
||||
import buildcraft.core.BuildCraftConfiguration;
|
||||
import buildcraft.core.CommandBuildCraft;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.EntityEnergyLaser;
|
||||
import buildcraft.core.EntityLaser;
|
||||
|
@ -41,10 +44,10 @@ import buildcraft.core.EntityRobot;
|
|||
import buildcraft.core.ItemBuildCraft;
|
||||
import buildcraft.core.ItemWrench;
|
||||
import buildcraft.core.RedstonePowerFramework;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.blueprints.BptItem;
|
||||
import buildcraft.core.network.EntityIds;
|
||||
import buildcraft.core.network.PacketHandler;
|
||||
//import buildcraft.core.network.ConnectionHandler;
|
||||
import buildcraft.core.network.PacketUpdate;
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.core.triggers.ActionMachineControl;
|
||||
|
@ -59,13 +62,14 @@ import buildcraft.core.utils.Localization;
|
|||
import buildcraft.transport.triggers.TriggerRedstoneInput;
|
||||
|
||||
import net.minecraft.src.Block;
|
||||
import net.minecraft.src.CommandHandler;
|
||||
import net.minecraft.src.EntityList;
|
||||
import net.minecraft.src.Item;
|
||||
import net.minecraft.src.ItemStack;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.common.Property;
|
||||
|
||||
@Mod(name="BuildCraft", version=DefaultProps.VERSION, useMetadata = false, modid = "BuildCraft|Core")
|
||||
@Mod(name="BuildCraft", version=Version.VERSION, useMetadata = false, modid = "BuildCraft|Core")
|
||||
@NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandler.class, clientSideRequired = true, serverSideRequired = true)
|
||||
public class BuildCraftCore {
|
||||
public static enum RenderMode {
|
||||
|
@ -138,8 +142,11 @@ public class BuildCraftCore {
|
|||
|
||||
@PreInit
|
||||
public void loadConfiguration(FMLPreInitializationEvent evt) {
|
||||
|
||||
Version.versionCheck();
|
||||
|
||||
bcLog.setParent(FMLLog.getLogger());
|
||||
bcLog.info("Starting BuildCraft " + DefaultProps.VERSION);
|
||||
bcLog.info("Starting BuildCraft " + Version.getVersion());
|
||||
bcLog.info("Copyright (c) SpaceToad, 2011");
|
||||
bcLog.info("http://www.mod-buildcraft.com");
|
||||
|
||||
|
@ -253,6 +260,12 @@ public class BuildCraftCore {
|
|||
|
||||
}
|
||||
|
||||
@ServerStarting
|
||||
public void serverStarting(FMLServerStartingEvent event) {
|
||||
CommandHandler commandManager = (CommandHandler)event.getServer().getCommandManager();
|
||||
commandManager.registerCommand(new CommandBuildCraft());
|
||||
}
|
||||
|
||||
public void loadRecipes() {
|
||||
GameRegistry.addRecipe(new ItemStack(wrenchItem), "I I", " G ", " I ", Character.valueOf('I'), Item.ingotIron, Character.valueOf('G'), stoneGearItem);
|
||||
GameRegistry.addRecipe(new ItemStack(woodenGearItem), " S ", "S S", " S ", Character.valueOf('S'), Item.stick);
|
||||
|
|
|
@ -32,6 +32,7 @@ import buildcraft.api.recipes.RefineryRecipe;
|
|||
import buildcraft.core.BlockIndex;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.ItemBuildCraft;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.network.PacketHandler;
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.energy.BlockEngine;
|
||||
|
@ -56,7 +57,7 @@ import net.minecraftforge.common.Configuration;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.Property;
|
||||
|
||||
@Mod(name="BuildCraft Energy", version=DefaultProps.VERSION, useMetadata = false, modid = "BuildCraft|Energy", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@Mod(name="BuildCraft Energy", version=Version.VERSION, useMetadata = false, modid = "BuildCraft|Energy", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandler.class, clientSideRequired = true, serverSideRequired = true)
|
||||
public class BuildCraftEnergy {
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.factory.BlockAutoWorkbench;
|
||||
import buildcraft.factory.BlockFrame;
|
||||
|
@ -54,7 +55,7 @@ import net.minecraft.src.ItemStack;
|
|||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.common.Property;
|
||||
|
||||
@Mod(name="BuildCraft Factory", version=DefaultProps.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@Mod(name="BuildCraft Factory", version=Version.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
@NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandlerFactory.class, clientSideRequired = true, serverSideRequired = true)
|
||||
public class BuildCraftFactory {
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import buildcraft.api.bptblocks.BptBlockRotateMeta;
|
|||
import buildcraft.api.recipes.AssemblyRecipe;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.ItemRedstoneChipset;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.silicon.BlockAssemblyTable;
|
||||
import buildcraft.silicon.BlockLaser;
|
||||
|
@ -33,7 +34,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
|
||||
@Mod(name="BuildCraft Silicon", version=DefaultProps.VERSION, useMetadata = false, modid = "BuildCraft|Silicon", dependencies = DefaultProps.DEPENDENCY_TRANSPORT)
|
||||
@Mod(name="BuildCraft Silicon", version=Version.VERSION, useMetadata = false, modid = "BuildCraft|Silicon", dependencies = DefaultProps.DEPENDENCY_TRANSPORT)
|
||||
@NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandlerSilicon.class, clientSideRequired = true, serverSideRequired = true)
|
||||
public class BuildCraftSilicon {
|
||||
public static Item redstoneChipset;
|
||||
|
|
|
@ -30,6 +30,7 @@ import buildcraft.api.transport.IExtractionHandler;
|
|||
import buildcraft.api.transport.PipeManager;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.ItemBuildCraft;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.transport.BlockGenericPipe;
|
||||
import buildcraft.transport.GuiHandler;
|
||||
import buildcraft.transport.ItemFacade;
|
||||
|
@ -78,7 +79,7 @@ import net.minecraft.src.World;
|
|||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.common.Property;
|
||||
|
||||
@Mod(version = DefaultProps.VERSION, modid="BuildCraft|Transport", name = "Buildcraft Transport", dependencies=DefaultProps.DEPENDENCY_CORE)
|
||||
@Mod(version = Version.VERSION, modid="BuildCraft|Transport", name = "Buildcraft Transport", dependencies=DefaultProps.DEPENDENCY_CORE)
|
||||
@NetworkMod(channels={DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandlerTransport.class)
|
||||
public class BuildCraftTransport {
|
||||
public static BlockGenericPipe genericPipeBlock;
|
||||
|
|
|
@ -31,7 +31,7 @@ public class BuildCraftConfiguration extends Configuration {
|
|||
} else
|
||||
versionProp = generalProperties.get("version");
|
||||
|
||||
versionProp.value = DefaultProps.VERSION;
|
||||
versionProp.value = Version.VERSION;
|
||||
|
||||
super.save();
|
||||
}
|
||||
|
|
55
common/buildcraft/core/CommandBuildCraft.java
Normal file
55
common/buildcraft/core/CommandBuildCraft.java
Normal file
|
@ -0,0 +1,55 @@
|
|||
package buildcraft.core;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
|
||||
import net.minecraft.src.CommandBase;
|
||||
import net.minecraft.src.ICommand;
|
||||
import net.minecraft.src.ICommandSender;
|
||||
import net.minecraft.src.WrongUsageException;
|
||||
|
||||
public class CommandBuildCraft extends CommandBase {
|
||||
|
||||
@Override
|
||||
public int compareTo(Object arg0) {
|
||||
return this.getCommandName().compareTo(((ICommand)arg0).getCommandName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "buildcraft";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandUsage(ICommandSender sender) {
|
||||
return "/" + this.getCommandName() + " help";
|
||||
}
|
||||
|
||||
@Override public List getCommandAliases() { return null; }
|
||||
|
||||
@Override
|
||||
public void processCommand(ICommandSender sender, String[] arguments) {
|
||||
|
||||
if (arguments.length <= 0)
|
||||
throw new WrongUsageException("Type '" + this.getCommandUsage(sender) + "' for help.");
|
||||
|
||||
if(arguments[0].matches("version")) {
|
||||
commandVersion(sender, arguments);
|
||||
return;
|
||||
} else if(arguments[0].matches("help")) {
|
||||
sender.sendChatToPlayer("Format: '"+ this.getCommandName() +" <command> <arguments>'");
|
||||
sender.sendChatToPlayer("Available commands:");
|
||||
sender.sendChatToPlayer("- version : Version information.");
|
||||
return;
|
||||
}
|
||||
|
||||
throw new WrongUsageException(this.getCommandUsage(sender));
|
||||
}
|
||||
|
||||
private void commandVersion(ICommandSender sender, String[] arguments) {
|
||||
sender.sendChatToPlayer(String.format("BuildCraft %s for Minecraft %s (Latest: %s).", Version.getVersion(), CoreProxy.proxy.getMinecraftVersion(), Version.getRecommendedVersion()));
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -11,10 +11,10 @@ package buildcraft.core;
|
|||
|
||||
public class DefaultProps {
|
||||
|
||||
public static final String VERSION = "@VERSION@";
|
||||
public static final String MOD = "BuildCraft";
|
||||
|
||||
public static final String DEPENDENCY_CORE = "required-after:BuildCraft|Core@"+VERSION;
|
||||
public static final String DEPENDENCY_TRANSPORT = "required-after:BuildCraft|Transport@"+VERSION;
|
||||
public static final String DEPENDENCY_CORE = "required-after:BuildCraft|Core@"+Version.VERSION;
|
||||
public static final String DEPENDENCY_TRANSPORT = "required-after:BuildCraft|Transport@"+Version.VERSION;
|
||||
|
||||
public static int WORLD_HEIGHT = 256;
|
||||
public static final String NET_CHANNEL_NAME = "BC";
|
||||
|
|
79
common/buildcraft/core/Version.java
Normal file
79
common/buildcraft/core/Version.java
Normal file
|
@ -0,0 +1,79 @@
|
|||
package buildcraft.core;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
|
||||
public class Version {
|
||||
|
||||
public enum EnumUpdateState { CURRENT, OUTDATED, CONNECTION_ERROR }
|
||||
|
||||
public static final String VERSION = "@VERSION@";
|
||||
public static final String BUILD_NUMBER = "@BUILD_NUMBER@";
|
||||
private static final String REMOTE_VERSION_FILE = "http://bit.ly/buildcraftver";
|
||||
|
||||
public static EnumUpdateState currentVersion = EnumUpdateState.CURRENT;
|
||||
|
||||
public static final int FORGE_VERSION_MAJOR = 4;
|
||||
public static final int FORGE_VERSION_MINOR = 0;
|
||||
public static final int FORGE_VERSION_PATCH = 0;
|
||||
|
||||
private static String recommendedVersion;
|
||||
|
||||
public static String getVersion() {
|
||||
return VERSION + " (:"+ BUILD_NUMBER +")";
|
||||
}
|
||||
|
||||
public static String getRecommendedVersion() {
|
||||
return recommendedVersion;
|
||||
}
|
||||
|
||||
public static void versionCheck() {
|
||||
try {
|
||||
|
||||
String location = REMOTE_VERSION_FILE;
|
||||
HttpURLConnection conn = null;
|
||||
while(location != null && !location.isEmpty()) {
|
||||
URL url = new URL(location);
|
||||
conn = (HttpURLConnection)url.openConnection();
|
||||
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)");
|
||||
conn.connect();
|
||||
location = conn.getHeaderField("Location");
|
||||
}
|
||||
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
||||
|
||||
String line = null;
|
||||
String mcVersion = CoreProxy.proxy.getMinecraftVersion();
|
||||
while ((line = reader.readLine()) != null) {
|
||||
if (line.startsWith(mcVersion)) {
|
||||
if (line.contains(DefaultProps.MOD)) {
|
||||
|
||||
String[] tokens = line.split(":");
|
||||
recommendedVersion = tokens[2];
|
||||
|
||||
if (line.endsWith(VERSION)) {
|
||||
FMLLog.finer(DefaultProps.MOD + ": Using the latest version ["+ getVersion() +"] for Minecraft " + mcVersion);
|
||||
currentVersion = EnumUpdateState.CURRENT;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FMLLog.warning(DefaultProps.MOD + ": Using outdated version ["+ VERSION +" (build:"+ BUILD_NUMBER +")] for Minecraft " + mcVersion + ". Consider updating.");
|
||||
currentVersion = EnumUpdateState.OUTDATED;
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
FMLLog.warning(DefaultProps.MOD + ": Unable to read from remote version authority.");
|
||||
currentVersion = EnumUpdateState.CONNECTION_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -22,7 +22,7 @@ import java.io.UnsupportedEncodingException;
|
|||
|
||||
import buildcraft.BuildCraftCore;
|
||||
import buildcraft.core.Box;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.core.proxy.CoreProxy;
|
||||
|
||||
public abstract class BptBase {
|
||||
|
@ -116,7 +116,7 @@ public abstract class BptBase {
|
|||
|
||||
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "8859_1"));
|
||||
|
||||
writer.write("version:" + DefaultProps.VERSION);
|
||||
writer.write("version:" + Version.VERSION);
|
||||
writer.newLine();
|
||||
|
||||
if (this instanceof BptTemplate)
|
||||
|
|
|
@ -37,6 +37,8 @@ public class CoreProxy {
|
|||
@SidedProxy(clientSide="buildcraft.core.proxy.CoreProxyClient", serverSide="buildcraft.core.proxy.CoreProxy")
|
||||
public static CoreProxy proxy;
|
||||
|
||||
public String getMinecraftVersion() { return "1.3.2"; }
|
||||
|
||||
/* INSTANCES */
|
||||
public Object getClient() { return null; }
|
||||
public World getClientWorld() { return null; }
|
||||
|
|
|
@ -14,7 +14,7 @@ import buildcraft.api.blueprints.BptBlock;
|
|||
import buildcraft.api.blueprints.BptSlotInfo;
|
||||
import buildcraft.api.blueprints.IBptContext;
|
||||
import buildcraft.api.core.Orientations;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.Version;
|
||||
import net.minecraft.src.Block;
|
||||
|
||||
public class BptBlockEngine extends BptBlock {
|
||||
|
@ -53,7 +53,7 @@ public class BptBlockEngine extends BptBlock {
|
|||
BlockSignature sig = super.getSignature(block);
|
||||
|
||||
sig.mod = "BuildCraftEnergy";
|
||||
sig.modVersion = DefaultProps.VERSION;
|
||||
sig.modVersion = Version.VERSION;
|
||||
|
||||
return sig;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import buildcraft.api.blueprints.BptSlotInfo;
|
|||
import buildcraft.api.blueprints.IBptContext;
|
||||
import buildcraft.api.gates.ActionManager;
|
||||
import buildcraft.api.gates.TriggerParameter;
|
||||
import buildcraft.core.DefaultProps;
|
||||
import buildcraft.core.Version;
|
||||
import buildcraft.transport.BlockGenericPipe;
|
||||
import buildcraft.transport.Gate;
|
||||
import buildcraft.transport.GateVanilla;
|
||||
|
@ -169,7 +169,7 @@ public class BptBlockPipe extends BptBlock {
|
|||
BlockSignature sig = super.getSignature(block);
|
||||
|
||||
sig.mod = "BuildCraftTransport";
|
||||
sig.modVersion = DefaultProps.VERSION;
|
||||
sig.modVersion = Version.VERSION;
|
||||
|
||||
return sig;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue