Skip to content

Unkn0wnCreator/mcsleepingserverstarter

 
 

Repository files navigation

💤 Welcome to SleepingServerStarter 💤

Put your minecraft server to rest, while SleepingServerStarter is watching! Save power, save the world!

Tutorial Video | Based on minecraft-protocol | Based on JSPrismarine | Original idea

🧰 Features

  • Listen on the same port as your minecraft server.
    • Option to connect from BedRock (Portable version of Minecraft)
    • Web-gui, to turn on or off your server from anywhere
  • When someone connects, immediately launch your minecraft server.
    • You can also type 'quit' in your console to start minecraft's server.

Works better with EmptyServerStopper, a plugin that automatically stops your server after a definied amount of time

📀 Install

There are two ways to run SleepingServerStarter :

Download the binaries

  1. Download binaries corresponding to your OS
  2. Place the executable in the same folder as your server file (spigot.jar, paper.jar, etc...)
  3. Make sure your server is stopped
  4. Run the executable
    • On Linux, try chmod +x mcsleepingserverstarter-linux if you can't run the executable

Manually install and compile

  1. Requires NodeJS v16+
  2. Clone the repo or download the project as Zip
  3. Unzip or clone it in the same folder as your minecraft server
  4. Launch npm install
  5. Start the project with npm start

🐡 PufferPanel

If you're using PufferPanel, you can import this template as JSON to use Paper Spigot with Sleeping Server Starter via PufferPanel

🐦 Pterodactyl

If you're using Pterodactyl, you can import this egg as JSON to use Paper Spigot with Sleeping Server Starter OR you can also import this egg as JSON to use Vanilla Minecraft with Sleeping Server Starter on Pterodactyl

⚙️ Settings

Note: If running from binaries, the settings file will be created after the first execution in the same folder as the executable

Setting Description Default value
serverName The name of your server "SleepingServer, waiting for his prince..."
serverPort The port of your Java Edition server (0 to disable) 25565
bedrockPort The port of your Bedrock Edition server (0 to disable) 19132
loginMessage Message shown when the server is off and someone is trying to connect "...Waking server up, come back in a minute..."
serverOnlineMode Check if players has premium accounts true
maxPlayers Maximum amount of players 20
webPort Port for the Web-Gui (0 to disable) 0
startMinecraft Start the Minecraft Server (false to disable) true
minecraftCommand The command used to start the server "java -jar paper.jar nogui"
minecraftWorkingDirectory Set a custom Working Directory for the server EDIT ONLY IF YOU KNOW WHAT YOU'RE DOING (should be the path to the server's directory, absolute path is best) ""
version Force compatibility with a specific Minecraft version ""
favIcon Use a custom server-icon 64x64 png converted using https://www.base64-image.de/ (needs to be encoded in base64) ""
discordWebhookUrl Setup a Discord WebHook to your channel "REPLACE_ME"

Note: if you need to shutdown the program, simply input a ctrl + c, the program will shut down normally afterwards


Use WebServer for dynmap :

  • You need to change your configuration from class: org.dynmap.InternalClientUpdateComponent to class org.dynmap.JsonFileClientUpdateComponent (comment all the section InternalClientUpdateComponent and uncomment JsonFileClientUpdateComponent)
  • Chat will not work when hosted by mcsleepingserverstarter. For a full compatibilty, you can use an apache server (https://github.com/webbukkit/dynmap/wiki/Setting-up-without-the-Internal-Web-Server)

Links :

🕸 Bungeecord

While SleepingServerStarter is made to run on a single server, it can be integrated to a Bungeecord network. But please note that you'll need to install and configure SleepingServerStarter on every servers you want to be affected by the program.

Installing SleepingServerStarter only on your proxy server will NOT work

For each server you're installing SleepingServerStarter on :

  • the serverPort should be the port of the server you're installing the program on, not the proxy's port
  • make sure serverOnlineMode is set to false to avoid any problems with Bungee when switching between servers

We know this can be a little bit time consuming, but this solution is working great

In action :

When trying to join a sleeping server, you get this kind of message by Bungee
Basically, it keeps kicking the player with loginMessage as reason, telling the player the server is being started

👤 Author

@vincss

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page

🙌 Show your support

Give a ⭐️ if you like the project!

Donate

📜 ChangeLog

  • 1.2.1 - 1.19 :
    • update node-minecraft-protocol for MC 1.19 (no 1.19.1 & 1.19.2 yet)
  • 1.2.0 - 1.18.2 :
    • Add settings webStopOnStart
    • Change settings startMinecraft to boolean
  • 1.1.5 - 1.18.2 :
    • Add more logs when it fails to retreive settings
    • update node-minecraft-protocol ^1.34.0
  • 1.1.4 - 1.18.2 :
    • update node-minecraft-protocol ^1.32.0
  • 1.1.3 - 1.18.1 :
    • Fixed concurent wake up : vincss#68
    • update node-minecraft-protocol ^1.30.0
  • 1.1.2 - 1.18.1 :
    • Compress binaries ( GZip )
  • 1.1.1 - 1.18.1 :
    • update node-minecraft-protocol ^1.29.0 -> 1.18.1
  • 1.1.0 - 1.17.1 :
    • Feature Add Discord Notification
    • Update dependencies (node16, npm8, typescript,...)
  • 1.0.4 - 1.17.1 :
    • update node-minecraft-protocol ^1.26.1
  • 1.0.3 - 1.16.5 :
    • update security
  • 1.0.2 - 1.16.5 :
    • add maxPlayers in settings
  • 1.0.1 - 1.16.5 :
    • Include version in log.
  • 1.0.0 - 1.16.5 :
    • Feature Add web-gui
  • 1.16.4 :
    • Add bedrock support.
  • ...

About

Put your minecraft server to rest, while SleepingServerStarter is watching !

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 90.2%
  • Handlebars 9.8%