LilyPad / GoLilyPad

GNU General Public License v3.0
98 stars 58 forks source link

Add support for Cuberite #36

Open yangm97 opened 7 years ago

yangm97 commented 7 years ago

GoLilyPad seems to be a resource efficient bungeecord replacement. Cuberite is a resource efficient minecraft server replacement. I wonder if we could marry these two together?

coelho commented 7 years ago

I think I looked into this once upon a time and basically concluded the Lua API doesn't provide enough functionality for Connect's plugin. We would need to get an alternative to this running on Cuberite for this to work: https://github.com/LilyPad/Bukkit-Connect

Maybe if we can do a native DLL/SO or something? But that sounds like a bit of work.

yangm97 commented 7 years ago

Which features are missing exactly? I think it would be easier to ask Cuberite developers to add the needed bindings by opening issues. They usually like when plugins request such things.

Also, what the connect bit does exactly? Seems to be mostly about handling sessions. If so, I think you can get around changing the authentication server and authentication address bits on settings.ini.

PS: Coelho? Are you Brazilian or Portuguese by any chance?

coelho commented 7 years ago

Let me apologize for my delay on this. I'm Portugese by the way :D

Take a look at https://github.com/LilyPad/Bukkit-Connect

We need to be able to read the serverHost from the handshake and swap the IP address of the player, and the GameProfile of the player. We also need a TCP raw networking API to implement:

https://github.com/LilyPad/GoLilyPad/tree/master/client/connect

Or JLilyPad's Client-Connect-Lib which is the API for plugins. I'm pretty sure with the Lua API in Cuberite this is going to be very hard.

yangm97 commented 7 years ago

Better late than never :P

For the TCP API, isn’t luasocket enough? Although not greatly advertised, cuberite supports loading external lua plugins, like luasocket from luarocks.