Giter VIP home page Giter VIP logo

dockerize-minecraft's People

Contributors

siege918 avatar

Stargazers

 avatar

Watchers

 avatar

dockerize-minecraft's Issues

Add ability to apply a patch

Currently, if I need to add plugins, I have to stop the server, pull down the latest backup, modify it, and then upload it again, manually updating the flag to point to the latest backup.

Instead, build code to check for a key called "patch.zip", which will download a zip file containing just the differences and apply them to the server before launch.

Build Discord Bot interface for server

Allow remote execution of admin server commands using siegebot-client and a custom built plugin.

Server admins should be able to provide a Discord bot access token, along with a whitelist of users, channels, and roles that are allowed to send commands to the sever via Discord.

Optionally, admin should be able to specify a channel for logs from the Minecraft server and the scripts to be echoed to.

Here is an article on administrating Minecraft servers using SMS that can be adapted for this purpose.

Use Stream/Buffer to hold logs instead of string

Currently, the Discord bot grabs logs from the Minecraft server and outputs them, 2000 characters at a time every 5 seconds, to a Discord channel.

Logs come in faster than 2000 characters every 5 seconds, especially during startup, so the discord.js script holds them in a string that is appended to when new logs arrive, and the oldest 2000 characters of this are chopped off and sent to Discord.

let logCache = "";

function appendLogs(logData) {
   logCache += logData.toString();
}

...

setInterval(() => {
   var newLogs = logCache.substring(0, 2000);
   logCache = logCache.substr(2000);

   if (newLogs) {
       outputChannel.send(newLogs);
   }
}, 5000);

However, strings are immutable in Javascript, and so all of this appending and chopping is actually kind of a nightmare memory-wise. Should use something like stream-buffers instead.

Tag S3 Uploads

Tag the S3 Uploads so that they can be lifecycled properly, and allow them to be made more frequently. Uploads should be marked as:
Quarterhourly
Hourly
Daily
Weekly
Monthly

This will allow for lifecycle rules to be set accordingly to delete the items on a reasonable schedule to lower costs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.