Pilot1782 / bad_copenheimer

A Python implementation of a discord bot that acts as a server scanner similar to Copenheimer, but is rather bad [DEPRECIATED].
GNU General Public License v3.0
90 stars 34 forks source link

[Suggestion] Just wondering about a possible feature(s) and if they could be implemented #8

Closed BookWyrm114 closed 2 years ago

BookWyrm114 commented 2 years ago

Would it be possible to have the program run as an independent program? perhaps it could generate a text file that lists the servers found and basic information.

Also, I was thinking about copenheimer and as an even better alternative, would it be possible to run it as a webserver, with a compatible addon for meteor client, how this would probably work is you would specify a code for the webserver, and download the meteor addon (which could be coded in python using the meteor python addon), you could then input the code to connect to the webserver and browse the server lists. later on sorting by whitelist, vanilla, modded, etc. could be added. As well as the "historical players" HUD element shown in videos with the copenhiemer client.

This is possible, but I'm not sure how difficult or time-consuming this would be (it would probably take a while to implement all the features mentioned), though it would be arguably the most powerful public copenheimer alternative in existence.

Pilot1782 commented 2 years ago

That sounds possible and I will look into it however, for the server hosting I would have to either locally host, pay for hosting or have the user locally host.

As for making a scanner that does not use discord, that is possible and much faster in other repos such as Quboscanner and Masscan for linux

BookWyrm114 commented 2 years ago

That's great! My idea was to make the user host, and then anyone the user wants would use the meteor addon and a code/password+IP to connect directly to a specific database, so individual groups could do stuff like mark servers as explored/griefed, bookmark servers, etc.

Pilot1782 commented 2 years ago

So after some researching I found that meteor-python is depreciated and no longer works, my plan now is to fork meteor rejects, add a custom module to connect to the web server etc.

BookWyrm114 commented 2 years ago

That’s great! not sure if this is better but I personally like the design copenheimer has for the server list, from videos with it they seem to have a completely separate server list, accessible from the main menu. This system could be used if you want, and optimized since copenheimer doesn’t seem to have many filtering options for servers besides whitelist, modded, and vanilla. Perhaps an option could be eventually added to filter by servers with people on them.

Also I’m not quite sure what you mean by a custom module, I assume it’s an in-game toggleable module but I don’t see exactly how that would work. (Also sorry for the huge amounts of suggestions)

Pilot1782 commented 2 years ago

So my plan is to add an in game module that when toggled will show a server list in the multiplayer menu allowing you to hop on a server based on the filters.

BookWyrm114 commented 2 years ago

That sounds like it will work really well, will it be essentially a new server list, or will you make it look different? You could probably make it more compact, as well as showing more server info, and adding features like bookmarking and custom sorting variables defined by the user, so you can mark servers as grieved/explored/useless, etc. which would show up for other users connected to the same instance of bad_copenheimer.

Pilot1782 commented 2 years ago

I'm thinking a new menu added into the main menu screen with hover information, but currently I have very limited java experience so these features are a long ways out.

BookWyrm114 commented 2 years ago

That sounds really awesome, I can't wait until then.

BookWyrm114 commented 2 years ago

Actually, I have something that might help with developing the mod, it's a similar mod made by MCstalker.com, which was essentially copenheimer as a website. this mod hooked into the API and loaded the servers it found into a seperate server list, with the abilities to bookmark servers and copy IPs from in-game. As well as various sorting options. unfortunantly MCstalker has recently dissapeared, along with the github repository for this mod. though I believe a few of their other repositories for other stuff they used like their API are still available: https://github.com/orgs/MC-Stalker/repositories. I'm not sure how much this helps, but you should be able to decompile and open the mod with winrar or vscode. The mod is also up-to-date for the latest version of fabric, but it has no meteor integration.

Mod: mcstalker-utility-mod-1.0.2.zip

BookWyrm114 commented 2 years ago

Also the meteor python addon has just been updated to the latest dev build, so it's a possibility to use that

Pilot1782 commented 2 years ago

These look good and I'll have look into these tomorrow, currently i have a basic understanding of java but im looking into using something like jython to incorporate a script, but if that doesn't work then I'll get more in depth with the mod you sent me.

sunguytogood commented 2 years ago

it appears as though copenheimer has a evade ban feature as well as a better flight feature

sunguytogood commented 2 years ago

I remember Mcstalker and their shutdown i believe their api is no longer working

Pilot1782 commented 2 years ago

I looked and mcstalker was wiped from the internet problem a dmca or c&d order. I haven't tried the mod you sent me yet due to security concerns but I'll dig through it and test it out, in the meantime I've been test and messing around with meteorpyton.

sunguytogood commented 2 years ago

mcstalker cant be built with gradle anymore i dont think, i do still have it for 1.18.1 tho if you would like

Pilot1782 commented 2 years ago

This might be good but I would rather stick with a maintained package.

BookWyrm114 commented 2 years ago

Hello, just wondering if we'll be able to run this as a standalone program anytime soon.

Also would it be possible for the program to take the login data for a valid microsoft account with minecraft in a config file, and the program uses that info to authenticate the account and try to "login" to servers in order to collect data about them. (obviously it would also re-validate the session for the account when it expires so it can be run as long as needed) So someone could just use an alt account or their own account.

Pilot1782 commented 2 years ago

For the stand-alone I can create instructions in the wiki, and as for the Microsoft auth, I can look into that but right now there isn't a good python api for controlling a Minecraft session and authentication.

BookWyrm114 commented 2 years ago

Thanks! Also, perhaps an alternative would be to directly control and connect to a minecraft instance to make it join servers that way. It would be much slower but it could be an easier alternative and would probably work in the short term

BookWyrm114 commented 2 years ago

this could probably be done using the meteor python addon but I'm not sure.

Pilot1782 commented 2 years ago

Ok, so in order to compile the bot, I would need to change every file reference to be compatible with the compiler, as the reference is currently trying to access something that doesn't exist at a machine path but rather from a relative one, ie: C:\User\username\Documents\something.txt vs \something.txt

And Meteor python unfortunately has not documentation, but I am still trying to use it as it could be much easier than making a custom mod.

BookWyrm114 commented 2 years ago

I think the person who made the addon has a discord which should be in the github, you could probably ask for help there. Also, it might actually be better to make a full meteor addon, especially on github, as, if the addon becomes popular, (which it most likely will bc server finders are awesome), people will probably make pull requests and help with code so as long as you get the base addon working fairly well, other people can and will help with extra features and improvements

Pilot1782 commented 2 years ago

Do you think I should make this scanner self hosted, or I host it and you invite it to your server?

BookWyrm114 commented 2 years ago

Honestly, I like both ideas a lot, and both have their merits. Self-hosted would probably be best as it could be a lot more configureable, such as having it run as a discord bot be optional, so people could run it as a standalone program, a discord bot, etc. However if you hosted it it could essentially become a much better version of MCStalker as the instance hosted by you would eventually be able to keep track of every server and player in Minecraft relatively well. Personally I would prefer self-hosted, but you could also build it to be self-hosted with lots of configuration for more technical players, but also host and run an instance of it yourself that’s open to everyone, so that way everyone can use the public instance if they want, it high almost everyone will do, but for people who want to host an instance themselves, they can, and they’ll have plenty of configuration options as well. And as for the meteor addon you could develop 2 versions, one for self-hosted instances where you specify an IP and port to connect to in order to get information from a server scanner, and the second one will be the exact same addon, but the IP and port is non-configurable and locked to the public instance.

Pilot1782 commented 2 years ago

I think I'll put a setting in for people who want to self host and for others I'll set up a discord server.

Cabbasca commented 2 years ago

'essentially become a much better version of MCStalker' I'm not so sure about that. MCStalker was very advanced and had hundreds of thousands of servers and players in it's database with several instances of masscan running on their vps's most of the time constantly finding new servers, recruiting new devs, etc. With an advanced fabric mod, advanced forceop, easy to use api wrapper, etc. I don't think many things can be better than mcstalker was except for maybe seethium and copenheimer

BookWyrm114 commented 2 years ago

The forceop was private and the fabric mod wasn't really that advanced all it needs to do is connect to the mcstalker api or in this case to an instance of bad_copenheimer, and mcstalker did not have very good whitelist detection, so it could be better than mcstalker, probably not copenheimer tho since it's a much bigger and more advanced project

Cabbasca commented 2 years ago

I spoke to Pilot and he is not planning on hosting it nor making forceop

Cabbasca commented 2 years ago

the bad copenheimer mod won’t be more advanced than the mcstalker mod that’s for sure

Cabbasca commented 2 years ago

MCStalker is coming back as a new project

Cabbasca commented 2 years ago

If you have any complaints just ask us and we will improve it

Cabbasca commented 2 years ago

Pilot is part of it as well

Pilot1782 commented 2 years ago

Do you think I should make a binary form of this? Like a .exe linked in the releases.

BookWyrm114 commented 2 years ago

Yes, if that’s possible it would make it a lot easier for most users to set it up