示例#1
0
        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());
        }