jhead / phantom

Use your own Minecraft server with your Xbox or PS4 and play with friends!
MIT License
613 stars 76 forks source link

GUI #83

Closed WhatWheatleySaid closed 3 years ago

WhatWheatleySaid commented 4 years ago

Hey, I wrote a really basic GUI (dont judge me please, was just an hour) in python on top of your executable for windows. (I think only windows (and maybe MAC) users may will need a GUI for that at all)

https://github.com/WhatWheatleySaid/MC-phantom-gui

feel free to use anything of that as you like

imnotjack91 commented 4 years ago

dude! nice job! quick question, what task does it elevate for?

imnotjack91 commented 4 years ago

also, is it able to remember the servers so i can start it up with windows without having to add the servers each time?

imnotjack91 commented 4 years ago

and is it running multiple proxies at once from one window?

WhatWheatleySaid commented 4 years ago

I'm not quite sure what your first question is asking for but I'll give it a try: I'm just directly starting the executable as a subprocess for each server added if thats your question

For the second point :

I had that already in my mind and its probably not too hard to add, but i was lazy.. Windows has wierd permission Management, which forces me to store a possible serverlist inside specific folders. I'll have to look up again where to store the list, then its just a basic "save list on close" and "look if list exists" on startup

imnotjack91 commented 4 years ago

beautiful! these 2 projects = a match made in the aether mod

imnotjack91 commented 4 years ago

restinpeaceaethermod

imnotjack91 commented 4 years ago

idk if its possible but how hard would it be to make aconnecteded status indicator and connect/disconnect button by each server in the list that way the user can see if the address was put in right or they got the right port number. i know. thats probably a lot but its real questions that if i knew how, i would be trying to put in it. also, is it possible to add a feature to automatically open the firewall for the port for the listening port number..... maybe per server? idk i have a lot of ideas. let me know if i just need to shut up and stop lol :) i wrote batch files that open the firewall port on windows and close it on exit. but its complicated for the uninitiated of my family when working with a command window. maybe you would have more luck in simplifying it? i can split the commands into different batch files so its a triggerable thing. i tried to make mine automatic but buttons makes things so much easier

imnotjack91 commented 4 years ago

btw. in case you havent noticed im SUPER appreciative of the effort youve put in so far. im just brainstorming. please dont take it as ungreatfulness :) THANK YOU!!!!

WhatWheatleySaid commented 4 years ago

Well, since im just spawning processes of the already compiled executionable of this repo, I have little to no control over the actual networking. I'm currently relying on the output of the Phantom.exe to catch any errors occuring, just by searching for the keyword "failed" haha.

Btw: I just added the serverlist thingy, when you close it now, it should produce a "serverlist.pckl" file and automatically start every server inside there on startup

imnotjack91 commented 4 years ago

NICE!! bro. you da man! just like Jhead

imnotjack91 commented 4 years ago

I'm curious if you can search for the keyword in phantom for successful connection and display a connected status if its true and if it doesn't find the keyword for "connected" then trigger a "searching" or "connecting" indicator and upon "failed" or "stopped" keyword or status display the "not connected" status and it could just be like highlighting or a background color or and actual label or an overlay.

I will say, I love that even though you have it formatted to recommend the ip address. i like that you can still use FQDN. makes my life much easier

WhatWheatleySaid commented 4 years ago

Well, the output of Phantom is rather sparse. There seems to be no information about any connection status or similiar (except that a client has been found)

imnotjack91 commented 4 years ago

@jhead are you abel to customize the program output messages to make this possible?

WhatWheatleySaid commented 4 years ago

@imnotjack91 in debug mode, there is actually output of the recieved pongs, if the server is indeed responding. So i may use that to atleast check if the server is reached, even if its a really errorprone and suboptimal way to do so

imnotjack91 commented 4 years ago

maybe make a branch of the project that supports additional output for gui programming to track the status of connections?

WhatWheatleySaid commented 4 years ago

@imnotjack91 Its now showing a connectivity status next to each server, but only if minecraft is started and only if you arent connected to some server playing.

jhead commented 4 years ago

Hey @WhatWheatleySaid 👋 if you're interested, I just pushed a branch that adds an -api flag to phantom to enable a JSON REST API and HTTP server: #87

You can find the endpoints here: https://github.com/jhead/phantom/blob/feature/api/internal/services/api/api.go#L46

I figure an API is better than trying to parse the console 😄

WhatWheatleySaid commented 4 years ago

@jhead Indeed, it is! Although it was interesting to do so, I added a new version using the provided API

imnotjack91 commented 4 years ago

NICE! im going to try it tonight!

imnotjack91 commented 4 years ago

ok, so after a while of fiddling with it, i found that it does broadcast both servers im testing addresses for, however, its alternating the results. so it keeps pinging back and forth, tested on androind version, ios version, and xbox one x version. it only shows 1 server slot and alternates the server displayed every few seconds. vs when i manually run a dedicated non gui config, it shows up each to its own locally found server. was this by design? also, im not seeing the online status indicator.

WhatWheatleySaid commented 4 years ago

@imnotjack91 currently, the Binary Release for windows is not using the API, because something seems off in the api (multiple servers don't work right now)

In the binary Release there is a GUI.exe + a Phantom Release, which in combination should work

imnotjack91 commented 4 years ago

ok. i will try reconfiguring and see if that works.

imnotjack91 commented 4 years ago

for clarity, should i download the phantom release from here and download the gui from your project to avoid the api implementation and its bugs?

WhatWheatleySaid commented 4 years ago

@imnotjack91 no, in the Release-Tab of the GUI, there is a zip containing "GUI.exe" and a Phantom exe. Use these

imnotjack91 commented 4 years ago

ok, so i cant find a zip file on your project site. just the gui.exe and the copy of the api version of phantom. no zips that i can see.

imnotjack91 commented 4 years ago

i think i found it. under code>scroll down to 'usage'>click the download link there that gave me a zip. but i cant see a "releases" tab.

jhead commented 3 years ago

Gonna close this issue out but nice work! I'll collect some links to these community projects and put them in the readme soon.