Development Direction and Ethos

Hello there,

I recently posted a PR for an Interim Bedrock Server implementation (profile for minecraft bedrock wrapper by tucks · Pull Request #432 · hexparrot/mineos-node · GitHub) and received timely feedback. Many thanks, its really appreciated.

I was about to start on improvements, but thought…well…what’s the best direction to go in.

For instance, my jar wrapper for bedrock_server should be Bedrock version independent (at least within recent memory), though clearly ping will never be supported as this is not a Bedrock capability. Looking further at the profiles as suggested, I propose that the jar wrapper might be shipped (and therefore latterly maintained) in a subfolder of the mineos-node distribution. Then I would offer versioned Bedrock servers with a postdownload unzip and latterly a copy of the jar wrapper from the known location into the newly deployed server folder.

However… I wonder if that’s perhaps against the ethos of the product. How does my proposal feel?
I’m trying to get a handle on what is a worthwhile goal prior to applying the effort.

Also as other aside queries whilst I’m getting to know the project:

  • would you be adverse to splitting out some code into library functions? I have seen a few areas of code / functionality reuse which might be refactored
  • would a letsencrypt addition to the docker-compose be valued?
  • what do you find is the best method of live development?

Kind regards,

Jez

ps. Is there a discord?

This is the use-case for this is an unconventional server option in the webui; it disables the interval ping.

I see no immediate issue with the creation of new root-level directories and files.

That said, I’m not entirely sure what benefit is conferred with its separation. Is there a reason any of this cannot be done within the systems in place?

Forgive my ignorance in this area, as I haven’t worked with bedrock, but is the following possible?

  1. create a bedrock profile, maintaining separate versions available for download
  2. create a bedrock wrapper profile, to match the versions of bedrock downloaded.
  3. create server, copy bedrock profile to live directory
  4. copy bedrock wrapper profile to live directory
  5. select profile ‘bedrock wrapper’ and set jar to mineos-bedrock-wrapper-1.0-SNAPSHOT.jar

Not in the slightest, but there generally doesn’t appear to be enough community ambition in reusing any of my code/conventions to warrant having refactored it any more than it currently is.

100%. I love letsencrypt, and if there’s a largely-non-interactive way to implement it, I’d love to see it. My docker-fu is pretty poor, so I’ve never gotten around to docker-compose yet.

I usually have two VMs, one with the installation of MineOS Turnkey, and one of Fedora with MineOS installed. I ssh to either and generally just code changes/pull PRs and then service mineos restart.

I don’t think that this is particularly special way to go about developing; the two installations are really so that I can always revert the state to a fresh install from ISO and help users who have questions that are specific to Debian/Turnkey (which I spend little time in) and then I have my fedora installation that always has nodeunit installed so I can run the test suite when there are changes to the respective js files.

No discord, no reddit. It’s all in github or here. (that is, those are the only two places I go)

Hello there. Busy week… I think that should indeed be plausible. Leave the PR open for now and I’ll investigate this angle and provide an update.

Hi. Just as a quick Sunday evening ping - I have your methodology working in a test docker on my local workstation. I am now looking at robustness prior to updating the PR.

As deployed via menus:

root       611     1  3 19:42 ?        00:00:18 /usr/bin/node webui.js
mc         784     1  0 19:50 ?        00:00:00 /usr/bin/SCREEN -dmS mc-bedrock1 /usr/bin/java -server -Xmx256M -jar mineos-bedrock-wrapper-1.0-SNAPSHOT.jar
mc         785   784  0 19:50 pts/1    00:00:00 /usr/bin/java -server -Xmx256M -jar mineos-bedrock-wrapper-1.0-SNAPSHOT.jar
mc         807   785  0 19:50 pts/1    00:00:00 sh -c LD_LIBRARY_PATH=. ./bedrock_server
mc         808   807  2 19:50 pts/1    00:00:02 ./bedrock_server

The jar wrapper should work for any version of bedrock_server thus far. it may not even require another release (if we are lucky…). I’ve added all the known Linux server versions to the associated profile.