Pugmatt / BedrockConnect

Join any Minecraft Bedrock Edition server IP on Xbox One, Nintendo Switch, and PS4/PS5
GNU General Public License v3.0
1.41k stars 165 forks source link

Update? #321

Closed Sappy-X closed 1 year ago

Sappy-X commented 1 year ago

What happened?

I'm guessing its not a bug I'm guessing more of is needing maybe an update. But the official server work off the dns but int the dns's it says "Outdated server". Wondering how long till this can be updated and if there's anyway of keeping us updated on this type of stuff thru a social or something.

Expected Behaviour?

Be able to join.

Steps to reproduce.

No response

Screenshots/Videos

No response

Minecraft Bedrock Version

1.19.21

Console

PS4, PS5, XBOX Series S, XBOX Series X, Xbox One, ect.

Additional Context

I know the consoles cause I host my server and most people use this way to join it.

kashalls commented 1 year ago

1.19.21 just came out, gonna have to give them a little time to get started.

chikokunn1011 commented 1 year ago

I am having trouble with it too. hope you update soon

kmpoppe commented 1 year ago

@Camotoy will it be enough to change the protocol version to 545 or did you have to change anything else in Geyser (I don't see much?)

braindigitalis commented 1 year ago

Can updates of this nature be automated @Pugmatt ? It seems a little backwards to have to manually do this when really the 'server' portion could be a dependency and auto updated by dependabot in your github actions.

I know a fair bit about github actions, but little about java (I'm more a C++ and PHP person). Is this doable? Let me know if i can be any help, I wouldnt mind contributing if this is a possibility.

kmpoppe commented 1 year ago

Just changing the protocol version wouldn't be complicated to automate (something like dependabot when Geyser updates) but more often than not it's not that easy and there has to be some manual coding to support all the parts of the protocol. You can go through the closed PRs that Camotoy opened that added the support for the newer versions and take a look yourself, my feeling is, that without even more manual work from Geyser's side to provide a full set of changes specifically for Bedrock Connect, any automation here would be hard to come by.

Camotoy commented 1 year ago

This was a very exceptional update in that it caught literally everyone - even people working on featured servers - off guard. To support it is a small change I'll try my best to PR today - otherwise it should be easy enough to copy how we supported it in Geyser.

But yeah, I don't think there's a way to automate this.

basel0071 commented 1 year ago

geyser is now 1.19.21

Pugmatt commented 1 year ago

Sorry for the wait, main instance has now been updated to 1.19.21, along with JAR released.

kmpoppe commented 1 year ago

Instances DE and UK have been updated as well.

CrafterPika commented 1 year ago

any automation here would be hard to come by.

@kmpoppe Yep, while there are some ways to automate this, like stealing kindly taking the git diffs from the Geyser Repo and parsing out which changes are required from certain java files. The amount of work it would take making it perfect is not even worth considering it just takes about 5 minutes doing it manually.

i'd say maybe add some collaborators, so such updates can be done without waiting for @Pugmatt. But that is entirely up to Pugmatt.

EDIT: wanted to add i am probably not a good person for that task, i didn't even notice 1.19.21 until about 20 hours after it popped up. and that is like with every update.

DeathSkullPain commented 1 year ago

Just wanted to say thank you. You guys are awesome.

Pugmatt commented 1 year ago

Going to look into ways to automate the process, or atleast deployment, and have more people with the ability to accept pull requests and push updates out if I'm not around (like yesterday). Adding the JAR to releases could definitely be automated at least. Would like to look into the possibility of automating updating the official instance too, but that might get a bit more complicated. I might be able to setup a Jenkins instance or something for the official instance deployment. In terms of auto-updating the version in the code, as said above that needs to be done manually, no really good way to do that automatically.

@CrafterPika @kmpoppe @Camotoy Would you 3 be interested in access to accept pull requests? No pressure, more just for cases when I'm not here. As you guys are usually the ones around when an update drops. And when I figure it out, have access to initiate the automated release of the JAR, and maybe the deployment of the official instance through something like Jenkins. The logic I guess would be at least one of us are going to be around probably when an update drops, so if I'm not around then someone else, if they would like to, can test and push out the update. Going to be writing up a more detailed plan later, but just wanted to get an idea of who would be interested first in having said access.

kmpoppe commented 1 year ago

@Pugmatt with pleasure. Sadly, I'm not really versed with GH actions, all my attempts failed spectacularly - compiling locally and checking if my Switch will connect should be possible though :-)

kashalls commented 1 year ago

Just an idea, you could fetch the official bedrock server manifest and check to see if the latest official is higher than the latest BMC. If it is just open an issue or PR. Other than that this will require a manual overview.

kmpoppe commented 1 year ago

Just an idea, you could fetch the official bedrock server manifest and check to see if the latest official is higher than the latest BMC. If it is just open an issue or PR. Other than that this will require a manual overview.

That might be a good idea, problem being that "automatically checking" usually is something that's a very grey zone regarding TOCs of webhosters - or Microsoft for that matter.

If, OTOH, there was an RSS feed or something that was to inform about updates (I think there is something like that for the Previews?!), that a service could check every X minutes, that would be less of a pain...

kashalls commented 1 year ago

Just an idea, you could fetch the official bedrock server manifest and check to see if the latest official is higher than the latest BMC. If it is just open an issue or PR. Other than that this will require a manual overview.

That might be a good idea, problem being that "automatically checking" usually is something that's a very grey zone regarding TOCs of webhosters - or Microsoft for that matter.

If, OTOH, there was an RSS feed or something that was to inform about updates (I think there is something like that for the Previews?!), that a service could check every X minutes, that would be less of a pain...

To be fair, usually this file is located in a cdn and is fetched by the official Minecraft client every start. I see no issue creating workflow once every 6 hours to do this.

kmpoppe commented 1 year ago

To be fair, usually this file is located in a cdn and is fetched by the official Minecraft client every start. I see no issue creating workflow once every 6 hours to do this.

My bad, I was thinking about the version that one of the start scripts for the bedrock server fetches and that gets pulled from the website directly, checking the same source that an official app might check (do they? I feel that Windows and Android only know if they are outdated when their App Store tells them?) would do nicely of course.

Camotoy commented 1 year ago

I'm happy to help with this repository.

CrafterPika commented 1 year ago

Would you 3 be interested in access to accept pull requests?

I'm happy to help.

And when I figure it out, have access to initiate the automated release of the JAR

i set up gh actions already, i probably can do that too with it. (assuming you mean automatically create a github release)

Pugmatt commented 1 year ago

@CrafterPika @Camotoy @kmpoppe Collaborator invites have been sent

i set up gh actions already, i probably can do that too with it. (assuming you mean automatically create a github release)

Essentially a way to automatically create the GitHub releases, yeah. I'm thinking the logic would be like the following, if this is possible through GH Actions:

kmpoppe commented 1 year ago

I was just about seeking to close more Issues that have no use anymore, it seems you were faster @Pugmatt :-D

CrafterPika commented 1 year ago
  • If a pull request with the word [RELEASE] in the request title is merged into master, the GH Action will build like normal, but also build and include BedrockConnect-setup.zip in the artifacts (Which is basically a ZIP that contains the JAR artifact, README.txt, and run.bat. See past releases for those contents)

Ah. Well that's a bit diffrent, i know how to do with commit Patterns like "Release X.X" or "Bump Version", gotta look that up if it's possible to use PR titles.

A GitHub release would then be created, containing the two artifacts, the JAR and ZIP. Title and description would be similar to what is put in manually now.

Yeah that should be easy, the zip content like README.txt and run.bat would be just placed in .github/assets and zipped up during the release creation process.

Title and Body/Description is easy to handle, take the commit title and the commit description using git.

**And automatic version upcounting is easy too, i am just gonna make an py script that fetches the latest version and does +1. or just "Release $(cat .github/assets/supportedVersion)"

CrafterPika commented 1 year ago

just came back from italy so i don't have to use my very slow laptop :D.