public PluginRelayHandler(PluginFactory pluginLoader, MinecraftProperties minecraftProperties, IOptions <MinecraftSettings> minecraftSettings, IMediator mediator, MinecraftServer minecraftServer, PluginLogger pluginLogger) { _pluginLoader = pluginLoader; _mediator = mediator; _pluginContext = new PluginContext { MinecraftProperties = minecraftProperties, MinecraftSettings = minecraftSettings.Value, MinecraftServer = minecraftServer, Logger = pluginLogger }; }
/// <summary> /// Starts a managed server. /// </summary> /// <param name="serverID"></param> /// <returns></returns> public static Boolean StartServer(Guid serverID) { if (!_isRunning) throw new ArgumentException("manager is not running"); if (serverID == null || serverID == Guid.Empty) throw new ArgumentNullException("server id cannot be null or empty"); if (AllServers.Exists(serverID)) { Server serv = AllServers.GetServer(serverID); if (!(serv.IsRunning || serv.Loaded)) return false; AgreeMojangEULA(serverID); //If normal Minecraft, allow this. if (serv.Properties.Type == ServerType.Minecraft || serv.Properties.Type == ServerType.CraftBukkit) { if (!File.Exists(serv.RootDirectory + "/server.properties")) { MinecraftProperties prop = new MinecraftProperties(Paths.ConfigDirectory + "/default.properties"); prop.PropertyFile = serv.RootDirectory + "/server.properties"; prop.Add("server-port", serv.Properties.Port.ToString()); prop.Add("server-ip", serv.Properties.IPAddress); prop.Save(); } else { //just in case someone got smart, lets write over the file. MinecraftProperties prop = new MinecraftProperties(); prop.Load(serv.RootDirectory + "/server.properties"); prop.Set("server-port", serv.Properties.Port.ToString()); prop.Set("server-ip", serv.Properties.IPAddress); prop.Save(); } } System.Threading.Thread.Sleep(1000); if (_isWin32) { serv.Start(Paths.JVMInstance.JREPath + @"/" + Paths.JVMInstance.javaExecutable); } else { serv.Start(Paths.JVMInstance.JREPath + @"/" + Paths.JVMInstance.javaExecutableUNIX); } Logger.Write(LogType.Info, "server with an id of '{0}' was started", serv.ID); return true; } return false; }