FlexibleLogin [v0.17] for Sponge 7+ - Auth plugin - 2FA

As far as I know it’s not possible to change the online mode in Sponge without a restart, neither it’s possible in Bukkit.

No sorry, I don’t have any wiki or help pages, but you can just use SQLite or H2 (See the example config). I recommend H2. Then it will create a .db file in the plugin folder. That’s it, there is no need to install a extra db programm.

Hi, thanks for so fast answer.
My configurations is here: http://pastebin.com/suKWFPRY
But it will not work.
When I try to register i have this error in console:

[Sponge]: Error occurred while executing command ‘register pokus5 pokus5’ for source EntityPlayerMP[‘Alfista_SK’/22, l=‘City_World’, x=-398.69, y=97.98, z=-189.99]: org.spongepowered.api.service.scheduler.SchedulerService.getTaskBuilder()Lorg/spongepowered/api/service/scheduler/TaskBuilder;
java.lang.NoSuchMethodError: org.spongepowered.api.service.scheduler.SchedulerService.getTaskBuilder()Lorg/spongepowered/api/service/scheduler/TaskBuilder;
at com.github.games647.flexiblelogin.commands.RegisterCommand.startTask(RegisterCommand.java:60) ~[RegisterCommand.class:?]
at com.github.games647.flexiblelogin.commands.RegisterCommand.execute(RegisterCommand.java:51) ~[RegisterCommand.class:?]
at org.spongepowered.api.util.command.spec.CommandSpec.process(CommandSpec.java:334) ~[CommandSpec.class:1.8-1499-2.1DEV-569+unknown-b569.git-unknown]
at org.spongepowered.api.util.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:345) ~[SimpleDispatcher.class:1.8-1499-2.1DEV-569+unknown-b569.git-unknown]
at org.spongepowered.api.service.command.SimpleCommandService.process(SimpleCommandService.java:250) [SimpleCommandService.class:1.8-1499-2.1DEV-569+unknown-b569.git-unknown]
at net.minecraft.command.ServerCommandManager.func_71556_a(SourceFile:80) [cl.class:?]
at net.minecraft.network.NetHandlerPlayServer.func_147361_d(NetHandlerPlayServer.java:812) [rj.class:?]
at net.minecraft.network.NetHandlerPlayServer.func_147354_a(NetHandlerPlayServer.java:791) [rj.class:?]
at net.minecraft.network.play.client.C01PacketChatMessage.func_180757_a(SourceFile:37) [lu.class:?]
at net.minecraft.network.play.client.C01PacketChatMessage.func_148833_a(SourceFile:9) [lu.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [ih.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [?:1.6.0_65]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [?:1.6.0_65]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [?:1.6.0_65]
at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:714) [FMLCommonHandler.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:656) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:364) [po.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:598) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:478) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:695) [?:1.6.0_65]

and this in the MC:

Error occurred while executing command:
org.spongepowered.api.service.sheduler.SchedulerService.getTaskBuilder()Lorg/spongepowered/api/service/scheduler/TaskBuilder;

1 Like

By the executed command (register pokus5 pokus5) I assume that you are speaking czech language, so …

nepoužíváš poslední verzi pluginu. Poslední release ke stažení je zastaralé, potřebuješ si ručně zkompilovat poslední revizi nebo počkat až autor pluginu udělá nejnovější release.

Yes, I’m Slovak. :smile:
But for every body you can use english, that it can help all peoples here.

OK, so I need to wait. Im not very familiar with compiling and programming.
Hope he will port it here soon.

That version of FlexibleLogin isn’t compatible with your new version of Sponge. The name of one method changed. (getTaskBuilder -> createTaskBuilder · SpongePowered/SpongeAPI@a699350 · GitHub)

I upload the new version now. Keep in mind that this is a alpha build.

OK thanks, I go to try the new version.

Thanks, works :+1:

Hi, found that your plugin has some problems with the latest build 590.

What problems exactly ?

It doesn’t asked for login at start. It automatically logged me in and have these errors in console.

Look here: http://pastebin.com/u51MhW06

there are problems with other plugin too, but you will see your errors too.

Excuse me, do I allow me to move this plugin to “www.mcbbs.net

My English is not good, please forgive me

I updated the plugin. It should work now.

Yes, you are allowed to post the project somewhere else if you link to the source code here.

I do like the idea of two factor authentication. However, due to the nature of minecraft, all commands entered are stored in plain text (very unsecured) in the logs. Whenever there is a server breach, the log files are always the first target.

Running a command that opens up a custom anvil interface, which masks the password typed would reduce the plain text vulnerability.

Also, I hope that the database information is encrypted, and not stored in plain text.

If the above no longer becomes an issue for me, I will most definitely utilise this plugin. It would also allow me to put my trust in you as a plugin developer.

1 Like

Passwords are hashed and unique salted with BCrypt and the secret key for TOTP is saved in plain text in order to verify the generated code of the client. So there are no passwords saved in plain text.

I know Bukkit logs commands, but I believe this is only Craftbukkit related. (See the comments here)
Since I never noticed Sponge/Forge logging a command, I don’t think this issue exists here too.

1 Like

Shows how much I’ve used bukkit (spigot) XD

And as for the database, I’m glad. I’ve seen passwords being stored as plain text in my line of work, and it just makes me cringe. So knowing you know what you’re doing makes me happy.

Keep up the good work.

1 Like

Hi, I try to set the server with the latest Sponge 613 but when I add your plugin i have these errors: http://pastebin.com/GwSqGtSq

FlexibleLogin v0.2.3
@games647 games647 released this 13 days ago
Update for Sponge 591+

So ask @games647 to make release.

Sorry for my late response. I wasn’t at home. The new version in now uploaded.

Very nice. Was looking for such a plugin.

The basic functionality is there. It prevents people who are not logged in from doing anything. Just what I needed after AuthMe seems to not be there.

However I dropped items with Q and it worked, while not logged in. They left the inventory and even after logging in were in the world to collect.

In the case of someone else trying to use the account, he could use that to drop all items?

If I remember correctly, AuthMe had an empty inventory and just filled it after logging in.

And are you planning to make it compatible with permission like, PermissionsEx?

Maybe I want people to walk around unregistered/not logged in, to admire the world and talk to Mods (if problems appear), but not being able to do anything else until logged in.

If the account with the username/UUID is already taken, a message to /login appears every X seconds (definable in the config?): “Username is taken. Please /login”.

If the account is not registered a message to /register appears every X seconds: “Please /register or you have limited permissions”

I think that event isn’t implemented yet in Sponge, because the plugin already listens to it.
https://github.com/games647/FlexibleLogin/blob/master/src/main/java/com/github/games647/flexiblelogin/listener/PreventListener.java#L61

At this state, I think so. See the text above.

I know that feature. They store the inventory of a player in a file and restore it after the player logged in. I guess the player have to be online in order to change something in the inventory of the player. This would make it hard to restore the inventory if you want to remove the plugin. If you want this feature, I will research more about it.

Which permissions do you except? Currently only flexiblelogin.admin for the /unregister command is implemented.

How should the user talk to the mods, by chat with an extra channel, by commands or something else?

Yes that’s possible, I could implement it. Keep in mind that this plugin is in a early state.