You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I added a accept_transfers config boolean, which is false by default. When accept_transfers is set to true, PicoLimbo will accept incoming connections with the transfer intention.
I also added a /transfer <hostname> [<port>] command that transfers the player who executes it to the specified hostname and port.
Demo
PicoLimbo_Transfer_Demo.mp4
AI Usage Disclosure
All code was written by me. I used ChatGPT 5.2 and Google Gemini 2.5 for help with Rust syntax as I've never used the language before and for some help explaining the codebase.
This looks good to me. While testing it, I noticed two improvements:
Update the documentation in the docs directory to mention the new accept_transfers setting
Packet IDs are missing for the transfer packet for versions prior to 1.21, this has to be manually added to each packets.json files for the concerned versions (1.20.5 or greater)
Should the transfer command be disabled by default since it is usually a command reserved for operators?
Also, I noticed the /transfer (without any arguments) brigadier node is marked as executable, which causes the client to render the hostname as an optional paramater instead of required, as denoted by the brackets []:
I was thinking I could add a requiredArgumentCount int to the Command struct in commands_packet.rs and then only mark nodes after that count as executable. Would that work or would you prefer something else?
Should the transfer command be disabled by default since it is usually a command reserved for operators?
That's a good question; I don't know 😅
The thing is, to disable a command, you have to set an empty string in the config file, which looks weird to me in a default config file. The best would be to update the commands config to something like this 🤔
This can be done in another pull request and leave the command available to everyone for now. It could also allow to whitelist some players in the future, for example, to run a reload or stop command.
Also, I noticed the /transfer (without any arguments) brigadier node is marked as executable, which causes the client to render the hostname as an optional paramater instead of required, as denoted by the brackets
I was thinking I could add a requiredArgumentCount int to the Command struct in commands_packet.rs and then only mark nodes after that count as executable. Would that work or would you prefer something else?
A required argument count int could work. I probably would've added a is executable bool to the arguments. Whichever you prefer!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I added a
accept_transfersconfig boolean, which isfalseby default. Whenaccept_transfersis set totrue, PicoLimbo will accept incoming connections with the transfer intention.I also added a
/transfer <hostname> [<port>]command that transfers the player who executes it to the specified hostname and port.Demo
PicoLimbo_Transfer_Demo.mp4
AI Usage Disclosure
All code was written by me. I used ChatGPT 5.2 and Google Gemini 2.5 for help with Rust syntax as I've never used the language before and for some help explaining the codebase.