public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			Plugin_PatchDetector_Config cfg = (Plugin_PatchDetector_Config)Host.GetConfiguration(typeof(Plugin_PatchDetector_Config), typeof(Plugin_PatchDetector));
			Plugin_PatchDetector_Config.PPMapping mapped = null;
			if (replay.MapName.Contains("1.02+")) mapped = cfg.Mappings.FirstOrDefault(pp => pp.Mapped_MC.ToLower() == replay.MapVersion.ToLower());
			
			if (mapped == null) return "Vanilla";
			return mapped.FriendlyName;
		}
		public override void OnPreSave(KWReplayFile replay)
		{
			config = GetConfiguration<Plugin_MatchOfTheDay_Config>();
			if (DateTime.Today.Date != config.LastMatch.Date)
			{
				config.LastMatch = DateTime.Today;
				config.CounterOfToday = 0;
			}
			SaveConfiguration(config);
		}
		public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			int digit_count = string.IsNullOrWhiteSpace(OptionalArguments) ? 4 : int.Parse(OptionalArguments);
			StringBuilder sbformat = new StringBuilder(digit_count);
			sbformat.Append("{0:");
			for (int i = 0; i < digit_count; i++) sbformat.Append('0');
			sbformat.Append("}");

			string formatString = sbformat.ToString();
			sbformat.Clear(); sbformat = null;

			Plugin_MatchOfTheDay_Config cfg = (Plugin_MatchOfTheDay_Config)host.GetConfiguration(typeof(Plugin_MatchOfTheDay_Config), typeof(Plugin_MatchOfTheDay));
			return string.Format(formatString, cfg.CounterOfToday);
		}
		public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			StringBuilder sb = new StringBuilder();

			foreach (PlayerSlot player in replay.PlayerSlots.Where(ps => ps != PlayerSlot.Empty).OrderBy(ps2 => ps2.PlayerName).ThenBy(ps3 => ps3.PlayerIndex))
			{
				sb.AppendFormat("{0}.", player.PlayerName);
			}

			string rslt = sb.ToString().Trim('.', ' ');
			sb.Clear();
			sb = null;
			return rslt;
		}
Example #5
0
		static void Main(string[] args)
		{

			using (FileStream fs = new FileStream(@"C:\Users\wiki\Desktop\Replays\R11\2015.09.07\0003.[1.02+] Twisted Arena.HateMeLikeAPro.Lucwasbeer.KWReplay", FileMode.Open, FileAccess.Read))
			{
				KWReplayFile replay = new KWReplayFile();
				replay.ParseStream(fs);
				foreach (var player in replay.PlayerSlots)
				{

				}
			}

			using (FileStream fs = new FileStream(@"D:\tmp2\bigstuff\MPMaps.big", FileMode.Open, FileAccess.Read))
			{
				BigFile bf = new BigFile(fs);
				bf.LoadArchive();

				BigFilePart part = bf.GetPart(@"data\mapmetadata.bin");

				//if (!Directory.Exists(output_dir)) Directory.CreateDirectory(output_dir);
				//foreach (BigFilePart part in bf.PartStartsWith(@"data\maps\official\map_mp_4_bass"))
				//{
				//	using (FileStream sfs = new FileStream(Path.Combine(output_dir, part.FileName.Substring(part.FileName.LastIndexOf('\\') + 1)), FileMode.Create, FileAccess.ReadWrite))
				//	{
				//		using (Stream content = part.OpenStream()) content.CopyTo(sfs);
				//	}
				//}

				using (FileStream sf = new FileStream(@"D:\tmp2\bigstuff\map_mp_4_bass\test.tga", FileMode.Create, FileAccess.Write))
				{
					using (Stream content = part.OpenStream())
					{
						content.CopyTo(sf);
					}
					//using (StreamWriter sr = new StreamWriter(sf))
					//{
					//	foreach (BigFilePart bfp in bf.FileParts)
					//	{
					//		sr.WriteLine("[{0}]: {1}", bfp.Offset, bfp.FileName);
					//	}
					//}

				}
			}
			Console.ReadLine();
		}
Example #6
0
		private void FileBinder_OnNewReplay(string ReplayFile)
		{
			KWReplayFile replay = new KWReplayFile();
			using (FileStream fs = new FileStream(ReplayFile, FileMode.Open, FileAccess.Read)) replay.ParseStream(fs);

			LoadedPlugins.ForEach(lp => lp.OnPreSave(replay));

			string NewFile = EvalExpression(txtSaveBase.Text, txtExpression.Text, replay);
			string NewFileName = Path.GetFileName(NewFile);
			string NewFileDirectory = Path.GetDirectoryName(NewFile);
			if (!Directory.Exists(NewFileDirectory)) Directory.CreateDirectory(NewFileDirectory);
			File.Copy(ReplayFile, NewFile);
			SPNOTIF.Play();

			LoadedPlugins.ForEach(lp => lp.OnSaveComplete(NewFileName, NewFile, replay));

			LogMessage(MessageType.Notification, "Successfully saved \"<b>{0}</b>\"!", NewFileName);
		}
		public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			int digit_count = string.IsNullOrWhiteSpace(OptionalArguments) ? 4 : int.Parse(OptionalArguments);
			StringBuilder sbformat = new StringBuilder(digit_count);
			sbformat.Append("{0:");
			for (int i = 0; i < digit_count; i++) sbformat.Append('0');
			sbformat.Append("}");

			string formatString = sbformat.ToString();
			sbformat.Clear(); sbformat = null;

			int counter = 0;
			while (true)
			{
				if (!File.Exists(Regex.Replace(CurrentFilename, InnerRegex, string.Format(formatString, counter)))) break;
				else counter++;
			}
			return string.Format(formatString, counter);
		}
		public abstract string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "");
Example #9
0
		public string EvalExpression(string BaseDirectory, string Expression, KWReplayFile replay)
		{
			string target_file = BaseDirectory.TrimEnd('\\') + '\\' + Expression.TrimStart('\\');
			foreach (RegexCommand rc in AvailableRegexes())
			{
				string CreatedRegex = "{" + rc.InnerRegex + "}";
				Match rm = Regex.Match(target_file, CreatedRegex);
				if (rm != null && rm.Success)
				{
					string param = null;
					if (rm.Groups.Count != 0) param = rm.Groups["OptionalArguments"].Value.TrimStart(':');
					target_file = Regex.Replace(target_file, CreatedRegex, rc.FormatFunction(replay, target_file, param));
				}
			}
			return target_file;
		}
		public override void OnSaveComplete(string SavedFilename, string Fullname, KWReplayFile replay)
		{
			config = GetConfiguration<Plugin_MatchOfTheDay_Config>();
			config.CounterOfToday++;
			SaveConfiguration(config);
		}
		public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			string fm = string.IsNullOrWhiteSpace(OptionalArguments) ? "dd.MM.yyyy" : OptionalArguments;
			return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Add(TimeSpan.FromSeconds((double)replay.MatchTimestamp)).ToString(fm);
		}
		public override string FormatFunction(KWReplayFile replay, string CurrentFilename, string OptionalArguments = "")
		{
			return replay.MapName;
		}