games647 / FastLogin

Checks if a minecraft player has a valid paid account. If so, they can skip offline authentication automatically. (premium auto login)
https://www.spigotmc.org/resources/fastlogin.14153
MIT License
494 stars 121 forks source link

AutoIn -> FastLogin #31

Closed GotoFinal closed 8 years ago

GotoFinal commented 8 years ago

I really don't have time to develop my autoin plugin, and small part community is already so annoying for me (that kind of people who think that because I made this plugin I must be 24/7 on spigot and skype to help them set that database option to mysql instead of sqlite on bungee) that I started thinking about dropping support for autoin, but I don't want just remove project and leave everyone with nothing, so I have some questions:

  1. Are you able to handle that? Probably many users may start writing to you, autoin have near 40k downloads.
  2. What configurations are you (your plugin) able to handle? AutoIn is hard to config, but it can support even more weird setups, like multi-bungee environment, where player can enter to some severs via multiple bungees and different paths, like: masterBungee -> BungeeA -> serverA -> player and masterBungee -> BungeeB -> serverA -> player. Or one player join directly to server, and other use bungee. Very few, but still, users were using this. I have no idea why, but whatever. This isn't important.
  3. Do you fix uuids too? (many people use autoin because of that) And is there any option to disable that?
  4. Do you have option to create whitelist only for cracked players? (many people use autoin because of that)
  5. Do you have optional option to protect cracked accounts after first join? So even if someone will buy their nick they still need to /login.
  6. Do you have option to allow change account state from cracked to premium? Like cracked premium buy own account on Mojang and now want to be auto-logged, so he enter to the game, login to server and invoke some command and rejoin to confirm account.
  7. Ability to enable /login for selected accounts, some server owners still want to use /login as this works near like 2-factor auth. (Mojang + AuthMe)
  8. Allowing only already registered cracked players to play? So new premium players can join, but no new cracked players, aka "switch mode", also many people used that.
  9. Blocking invoking commands from bungee when not logged in? (it's broken in autoin anyway :D)
  10. "Forced Servers", so premium players will always go to other server than cracked ones. (It's good idea to support forced hosts and version detection too)
  11. Do you need any help with that (but still remember that I don't have much free time now)?

Some of that options may require using plugin on bungee side too, idk how your plugin works now.

Also you should think about implementing (only my private unfinished autoin had this):

games647 commented 8 years ago

First off sorry for the delay. I had to thought about big thing.

It's a great honour to me that you contacted me. It's one of the best-rated plugins out there. Moreover I know that you are great developer.

that kind of people who think that because I made this plugin I must be 24/7 on spigot and skype to help them set that database option to mysql instead of sqlite on bungee

I know that feeling ;D

but I don't want just remove project and leave everyone with nothing, so I have some questions:

Couldn't you let someone other take over the project or open source it (I don't know if the original author agrees to this - licensing problem) ?

1 . [...]

I think so. I'm also the author of ScoreboardStats. (2 Mio downloads although it's code mess)

2 . [...]

I never got a feature request like that. I think this isn't really a good idea, but I'm going to implement it as soon as it is requested.

Although FastLogin already supports multiple bungeecords (i.e. RedisBungee), but not those who are connected in a row like you pointed out.

3 . [...]

You mean setting a premium UUID? Yes FastLogin does that. It works in BungeeCord and Spigot.

4 . [...]

Theoretically this goes out of the idea of this project, but I could implement that, but it shouldn't have primary priority in opinion.

5 . [...]

In my opinion this is must-have. After a player bought the account, they still have to login. After that they could still activate premium logins.

6 . [...]

See previous answer. The command is /premium

7 . [...]

Interesting idea. I'll add this to the todo list and it will added after the other things as this shouldn't have primary priority too.

8 . [...]

Same as the previous answer

9 . [...]

This goes out of scope of this project. The login plugin is responsible for this. Otherwise the server would be at risk without this plugin.

10 . [...]

It's planned.

11 . [...]

Help is always a good idea. I think you know like me that such a project needs much time to develop. So I would be thankful for any help. No matter if it's a developer or not.

Some of that options may require using plugin on bungee side too, idk how your plugin works now.

All management stuff is moved to the BungeeCord side. There it activates the online mode and setting the premium uuid, ... by just activating it using setOnlineMode()

Multiple IP address support to skip mojang api limits.

Already implemented in ChangeSkin, so it won't be much work to move it to FastLogin

Proxy support for this same reason.

For the clients or for the server (as reverse proxy or mojang proxy)?

Some kind of anti-bot system, [...]

This is planned, but I'm going to add mcapi.ca as fallback support too for big servers.

Conclusion

FastLogin is a lot younger than AutoIn and therefore it misses many features. As you can see in the answers above, some things have a lower priority. This is due the reason that it's not often requested.

The priority of FastLogin is to provide a stable plugin. Features which are often requested or make the plugin to work better (i.e. antibot) should have a bigger priority.

GotoFinal commented 8 years ago

@games647 Code of current autoin version is really "bad", so I don't even want anyone to see it without obfuscation :D Original author wanted keep it private, so I followed that, and code is full of useless crap that only cause most of decompilers to crash (I needed to remove some of them long time ago as even a forge (cauldron server) was crashing when loading autoin). And I forgot to ask if you support cauldron etc, over 2 users wanted that! :D In times when autoin was my favorite project adding support for that was just like fun, something new to try, but after all that updates of minecraft and spigot supporting all versions is a bit pain, also I liked this project because it was something harder than normal stuff, but now... just a bit of reflections and bytecode magic (some features needed a bit of hacking into bungee to solve all issues), and I just want focus on private projects and my totally unreal diorite one (Maybe I will finish it before 2100 year). When project was created, and some time after I get it, it was something "unreal" to many people, especially in my country and as spigot-only plugin (without the need of bungee), now you have good open version of plugin, many people already know how this works, so I can go back to my stuff. (Why I didn't make it premium on first day :D )

About missing features, that might be a small problem, even today someone was asking how to configure forced servers, and yesterday for switch-mode.

  1. if you have api with all kind of events then you can try skip this, maybe someone will make addon. Also option to fix uuid should be optional, as this may be a big problem for servers that want use plugin but already have players, then they may need to disable this option.

Anyway, I will add info in few next days that autoin will be no longer updates and link all users to your project, and I only hope that you will not make it premium after this ;) If you don't have any questions you can just close/remove issue, and if you will need something later you can try ping me or write to my e-mail. (It is in my profile)

games647 commented 8 years ago

Code of current autoin version is really "bad",

Don't say that. I should refactor some parts of FastLogin too.

And I forgot to ask if you support cauldron etc, over 2 users wanted that! :D

Yes it does ^^ (>2 - lol)

When project was created, and some time after I get it, it was something "unreal" to many people, especially in my country and as spigot-only plugin (without the need of bungee),

I know that feeling. In one of the forums I was they just said it's impossible without modifying the server software itself.

(Why I didn't make it premium on first day :D )

:+1: Donations are very minimal

, many people already know how this works,

It's interesting so many users are downloading this source code. Properly to see how it works ^^

configure forced servers, and yesterday for switch-mode.

Forced servers might be something easy to implement. Switch-mode might be more difficult, but possible by requesting always premium authentication and have only a few exceptions.

But you might know that developers often think it's easy to implement and result will be very difficult.

  1. if you have api with all kind of events then you can try skip this, maybe someone will make addon.

I'm going to make an API for the next coming version. I hope that works as I thought.

Also option to fix uuid should be optional, as this may be a big problem for servers that want use plugin but already have players, then they may need to disable this option.

Already configurable if you meant premium uuids.

Anyway, I will add info in few next days that autoin will be no longer updates and link all users to your project, and I only hope that you will not make it premium after this ;)

No I'm a friend of open source software although I can understand the reasons behind making it premium.

I already considered to make LagMonitor Premium for $1 with still having it open source (like mcMMO). Every one who knows how to build it, could still get it for free. For those who don't have PayPal or just want to test the plugin. But I declined this decision as I would lose lots of users ;(

Thank very much for this great conversation.

GotoFinal commented 8 years ago

@games647 full forced server implementation is much harder than switch mode, some code used to select first server is deep in bungee implementation, and idk if they changed it, but it was pain to make sure that cracked player will never join to premium one.

Switch mode is simple, just check if player is already register/already played on server, if no then you auth him with mojang (or you can check nickname and use different message if nickname is cracked, like "Sorry, we don't accept new cracked players"), if account is register, this same code as always.

Also thanks for donation :D (I will add it to autoin page too, but not today)

games647 commented 8 years ago

I looked into it and I think you're right.

Also thanks for donation :D (I will add it to autoin page too, but not today)

No problem sir