diff --git a/build.gradle b/build.gradle index cc41ed11..f40ff09f 100755 --- a/build.gradle +++ b/build.gradle @@ -97,6 +97,19 @@ jar { } } +def getGitCommitHash() { + try { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--always', '--dirty=*' + standardOutput = stdout + } + return stdout.toString().trim() + } catch (e) { + return "unknown" + } +} + processResources { // this will ensure that this task is redone when the versions change. @@ -108,7 +121,7 @@ processResources include 'mcmod.info' // replace version and mcversion - expand 'version':project.version, 'mcversion':project.minecraft.version + expand 'version':project.version + '-' + getGitCommitHash(), 'mcversion':project.minecraft.version } // copy everything else, thats not the mcmod.info diff --git a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java index 35d5d9d1..06b0302c 100755 --- a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java +++ b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java @@ -27,9 +27,11 @@ import net.minecraft.client.settings.GameSettings; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; +import net.minecraftforge.fml.common.ModContainer; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @@ -39,11 +41,14 @@ import java.io.File; import java.io.IOException; import java.util.Queue; -@Mod(modid = ReplayMod.MODID, version = ReplayMod.VERSION) +@Mod(modid = ReplayMod.MODID, useMetadata = true) public class ReplayMod { + public static ModContainer getContainer() { + return Loader.instance().getIndexedModList().get(MODID); + } + public static final String MODID = "replaymod"; - public static final String VERSION = "0.0.1"; public static final ApiClient apiClient = new ApiClient(); private static final Minecraft mc = Minecraft.getMinecraft(); public static GuiEventHandler guiEventHandler; diff --git a/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java b/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java index ef4be5e0..6e4a0474 100755 --- a/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java +++ b/src/main/java/eu/crushedpixel/replaymod/recording/DataListener.java @@ -165,7 +165,9 @@ public abstract class DataListener extends ChannelInboundHandlerAdapter { String[] pl = players.toArray(new String[players.size()]); - ReplayMetaData metaData = new ReplayMetaData(singleplayer, worldName, (int) lastSentPacket, startTime, pl, mcversion); + String generator = "ReplayMod v" + ReplayMod.getContainer().getVersion(); + + ReplayMetaData metaData = new ReplayMetaData(singleplayer, worldName, generator, (int) lastSentPacket, startTime, pl, mcversion); File folder = ReplayFileIO.getReplayFolder(); diff --git a/src/main/java/eu/crushedpixel/replaymod/recording/ReplayMetaData.java b/src/main/java/eu/crushedpixel/replaymod/recording/ReplayMetaData.java index 83af9db3..55f1ae52 100755 --- a/src/main/java/eu/crushedpixel/replaymod/recording/ReplayMetaData.java +++ b/src/main/java/eu/crushedpixel/replaymod/recording/ReplayMetaData.java @@ -4,15 +4,17 @@ public class ReplayMetaData { private boolean singleplayer; private String serverName; + private String generator; private int duration; private long date; private String[] players; private String mcversion; - public ReplayMetaData(boolean singleplayer, String serverName, + public ReplayMetaData(boolean singleplayer, String serverName, String generator, int duration, long date, String[] players, String mcversion) { this.singleplayer = singleplayer; this.serverName = serverName; + this.generator = generator; this.duration = duration; this.date = date; this.players = players; @@ -27,6 +29,10 @@ public class ReplayMetaData { return serverName; } + public String getGenerator() { + return generator; + } + public int getDuration() { return duration; } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 79f83bec..c70d1d31 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "replaymod", "name": "Replay Mod", "description": "Example placeholder mod.", - "version": "0.0.1", + "version": "${version}", "mcversion": "${mcversion}", "url": "", "updateUrl": "",