MCMrARM / mcpelauncher-linux

Please note this is a legacy repository, please go to: https://github.com/minecraft-linux/mcpelauncher-manifest/wiki
GNU General Public License v3.0
311 stars 44 forks source link

XboxLive #117

Open vzlomka76 opened 7 years ago

vzlomka76 commented 7 years ago

When will add support for XboxLive? Just want to play with friends

kukulo2011 commented 7 years ago

You can meanwhile play on Raspberry PI or ARM Board with Tesseract Pocketmine server. On LAN you can also play a LAN game on the friends tab. When you have public IP, you can also redirect port 19132 to your Minecraft LAN device and play this way. Other possibility is to use Hamachi VPN.

vzlomka76 commented 7 years ago

@kukulo2011 I don't use Tesseract, i use Nukkit. Not in this case, I would like to see what would be the support of xbox live

DaMatrix commented 7 years ago

If i remember correctly, @MCMrARM said he wasn't planning on adding XBL support. amiright?

NyaomiDEV commented 7 years ago

XBL isn't the priority now. There are few issues to be fixed: resource packs aren't working, storage sometimes is bugged, gamepad support is missing...

MCMrARM commented 7 years ago

I'd say the ETA on this is around two months.

MCMrARM commented 7 years ago

I'll write a bit more about what is the problem with adding this quickly and how someone could eventually help me. I more or less know of a hacky way to implement Xbox Live however to do so I need to have a working web browser which is the current problem with this overall. I'd need to add a custom scripting interface to the browser to get a callback with the login token. Adding an embeeded web browser to this is currently pretty problematic as Qt doesn't like being built for i386 and I'm not sure how easy would it be to embeed Chromium into this.

MCMrARM commented 7 years ago

I've tried integrating CEF into the project with pretty much success (except it looks like it'll add +150mb to binary size). I also did some reverse engineer on actual login procedure and it's probably doable, but still a lot of work left :)

MCMrARM commented 7 years ago

I got myself signed in! I have no idea if Realms work or not but looks like achievements work.

(Note it's not even persistent at this point and you'd have to log in on every launch at this point but I'm working on it :P)

MCMrARM commented 7 years ago

Okay, I'd ask you all to try this out, but it might not be easy to compile:

  1. Clone the 1.2-xboxlive branch
  2. Download CEF linux32 binary (http://opensource.spotify.com/cefbuilds/index.html) and extract Release/libcef.so to libs/cef (so that libs/cef/libcef.so exists)
    • copy Release/natives_blob.bin and Release/snapshot_blob.bin to the directory from where you will run mcpelauncher (the directory with the binary though, not working dir)
    • You'll need to build libcef_dll and copy over libcef_dll_wrapper.a to libs/cef/ . I think that should build pretty easily (note you'll need to do cmake . -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_C_FLAGS=-m32 to build for 32 bit)
    • from Resources copy: locales to libs/cef/locales/, cef.pak, cef_100_percent.pak, cef_200_percent.pak, cef_extensions.pak to libs/cef, and icudtl.dat to the mcpelauncher binary directory
  3. Then MCPELauncher should build finally, run and log in :)

I'm aware this is confusing, but I believe in anyone who will attempt to build this!

M3meZ commented 7 years ago

Can Anyone Make a Video This Is Confusing Me Alot

BrainBlasted commented 7 years ago

Perhaps you should wait a bit, since it seems like it's not too long until these changes are handled for you.

M3meZ commented 7 years ago

k

MCMrARM commented 7 years ago

Okay, now it's way easier.

  1. Clone the 1.2-xboxlive branch
  2. Run ./setup_cef.sh and wait until it completes
  3. Build as normal Please note that there are new dependecies and you'll need to resolve them on your own.
Irioth commented 7 years ago

Great job so far! thx

Those dependencies must be enough.

apt-get install libxrender-dev:i386 libxrandr-dev:i386 libnss3-dev:i386 libxcursor-dev:i386 libxcomposite-dev:i386 libglib2.0-dev:i386 libgdk-pixbuf2.0-dev:i386 libcairo-dev:i386 libgtk2.0-0:i386 libxss-dev:i386 libxtst-dev:i386 libasound-dev:i386 libgconf2-dev:i386
guppy42 commented 7 years ago

Linux Mint 18.1 ( Ubuntu 16.04 base ) Needs

libssl-dev:i386

I get stuck here tho;

In file included from /usr/include/curl/curl.h:35:0,
                 from /home/morten/source/mcpelauncher-linux/src/msa_network.cpp:8:
/usr/include/curl/curlrules.h:143:41: error: size of array ‘__curl_rule_01__’ is negative
     [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
                                         ^
/usr/include/curl/curlrules.h:153:53: error: size of array ‘__curl_rule_02__’ is negative
     [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
                                                     ^
In file included from /usr/include/curl/curl.h:35:0,
                 from /home/morten/source/mcpelauncher-linux/src/cll.cpp:6:
/usr/include/curl/curlrules.h:143:41: error: size of array ‘__curl_rule_01__’ is negative
     [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
                                         ^
/usr/include/curl/curlrules.h:153:53: error: size of array ‘__curl_rule_02__’ is negative
     [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
                                                     ^

Not sure how to fix that, and I don't have much time to much around today.

I'll update my vagrant file to use the 1.2 branch and produce output that is generally usefull, should I put it here or on the wiki?

for those that don't know, vagrant is a virtual machine templating system that lets you spool up new instances of machines on you computer without user input - very useful for automated testing on clean systems.

guppy42 commented 7 years ago

The line cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1 doesn't do what you think it does;

it reports the number of physical cores -1, so on single cores it report 0 ( and -j0 makes make fail) on my i5 it report 3 but it has hyper threading to the correct value would be 4*2

at any rate if you pick a number higher than the max number of threads you cpu can handle it just works as if you specified max so maybe just replace that with a static number?

guppy42 commented 7 years ago

I've created a seperate issue for testing the build system using vagrant #164

MCMrARM commented 7 years ago

@guppy42 As a temporary workaround, what I can think of, is getting the normal non-distribution CURL headers and building against those instead of the system ones.

guppy42 commented 7 years ago

Just a word of caution here - I rebooted and suddenly I had no desktop, at least the following software had been uninstalled;

All I've installed on my real box is openssl openssl:i386 libssl-dev:i386 and ofcourse run the setup_cef.sh script

given that setup_cef does not mess with packages I'm inclined to think that libssl-dev:i386 might be the culprit. It could also be a flaw in Mint's updater but I don't see anyone else online complaining about it - so exercise caution

MCMrARM commented 7 years ago

@guppy42 Probably one of the packages has a complex dependency mess, try to read the change list more carefully next time - setup_cef shouldn't cause any mess.

guppy42 commented 7 years ago

Not pointing fingers or anything I well aware that if anyone is responsible for messing up my system it's me ;)

Just posted it in case it happened to anyone else also so we can try and figure out what package that started the cascade