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
     };
 }
Esempio n. 2
0
        /// <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;
        }