public string GetStartArguments(string Username, string Password, string BinaryPath, string GameDataPath) { StringBuilder processArguments = new StringBuilder(); processArguments.Append("-Xmx"); processArguments.Append(Settings.SettingsManager.GetSetting("MinecraftRAM").data.ToString()); processArguments.Append(" "); processArguments.Append("\"-Djava.library.path="); processArguments.Append(MinecraftData.NativesPath); processArguments.Append("\" "); processArguments.Append("-cp \""); Libraries.ForEach(l => { if (!l.IsNative) { processArguments.Append(l.Extractpath + ";"); } }); processArguments.Append(BinaryPath + "\"; "); processArguments.Append(mainClass + " "); MinecraftData.currentSession = SessionInfo.Connect(Username, Password); string ArgumentsString = MinecraftArguments.Replace("${auth_player_name}", MinecraftData.currentSession.username).Replace("${auth_session}", MinecraftData.currentSession.sessionid).Replace("${game_directory}", "\"" + GameDataPath + "\"").Replace("${game_assets}", "\"" + MinecraftData.AssetsPath + "\""); if (MinecraftData.currentSession.sessionid == "") { ArgumentsString = ArgumentsString.Replace("--session", ""); } processArguments.Append(ArgumentsString); return(processArguments.ToString()); }
/// <summary> /// 转化为String参数 /// </summary> /// <returns>转化后的参数</returns> public string ToArguments() { var sb = new StringBuilder(); if (AgentPath != null && AgentPath != "") { sb.Append("-javaagent:\"").Append(this.AgentPath + "\" "); } if (CGCEnabled) { sb.Append("-Xincgc"); } if (MinMemory > 0) { sb.Append(" -Xms").Append(MinMemory).Append("M "); } if (MaxMemory > 0) { sb.Append(" -Xmx").Append(MaxMemory).Append("M"); } else { sb.Append("-Xmx2048M "); } foreach (var adv in AdvencedArguments) { sb.Append(' ').Append(adv); } sb.Append(" -Djava.library.path=\"").Append(NativePath); sb.Append("\" -cp \""); if (Libraries.Count > 0) { foreach (var lib in Libraries) { sb.Append(lib).Append(';'); } } sb.Append("\" ").Append(MainClass).Append(' ').Append(MinecraftArguments.DoReplace(Tokens)); if (Server != null) { if (!String.IsNullOrWhiteSpace(Server.Address)) { sb.Append(" --server " + Server.Address); if (Server.Port == 0) { sb.Append(" --port 25565"); } else { sb.Append(" --port " + Server.Port); } } } if (Size != null) { if (Size.FullScreen == true) { sb.Append(" --fullscreen"); } if (Size.Height != null) { var height = (ushort)Size.Height; if (height > 0) { sb.Append(String.Format(" --height {0}", height)); } } if (Size.Width != null) { var width = (ushort)Size.Width; if (width > 0) { sb.Append(String.Format(" --width {0}", width)); } } } return(sb.ToString()); }