Giter Site home page Giter Site logo

elytrium / limboauth Goto Github PK

View Code? Open in Web Editor NEW
165.0 4.0 63.0 776 KB

Minecraft Auth System for Velocity proxy built in virtual server (Limbo). Built with LimboAPI.

License: GNU Affero General Public License v3.0

Java 100.00%
auth-plugin minecraft-plugin velocity-plugin

limboauth's Introduction

Elytrium

LimboAuth

Join our Discord Modrinth Game Versions Modrinth Downloads Proxy Stats Proxy Stats

Auth System built in virtual server (Limbo).
Описание и обсуждение на русском языке (spigotmc.ru)
Описание и обсуждение на русском языке (rubukkit.org)

Test server: ely.su

See also

  • LimboFilter - Most powerful bot filtering solution for Minecraft proxies. Built with LimboAPI.
  • LimboAPI - Library for sending players to virtual servers (called limbo)

Features of LimboAuth

Commands and permissions

Player

  • limboauth.commands.destroysession | /destroysession - Destroy Account Auth Session Command
  • limboauth.commands.premium | /license or /premium - Command Makes Account Premium
  • limboauth.commands.unregister | /unregister - Unregister Account Command
  • limboauth.commands.changepassword | /changepassword - Change Account Password Command
  • limboauth.commands.totp | /totp - 2FA Management Command
  • limboauth.commands.* - Gives All Player Permissions

Admin

  • limboauth.admin.forceunregister | /forceunregister - Force Unregister Account Command
  • limboauth.admin.forcechangepassword | /forcechangepassword - Force Change Account Password Command
  • limboauth.admin.forceregister | /forceregister - Force Registration Account Command
  • limboauth.admin.reload | /lauth reload - Reload Plugin Command
  • limboauth.admin.* - Gives All Admin Permissions

Donation

Your donations are really appreciated. Donations wallets/links/cards:

  • MasterCard Debit Card (Tinkoff Bank): 5536 9140 0599 1975
  • Qiwi Wallet: PFORG or this link
  • YooMoney Wallet: 4100 1721 8467 044 or this link
  • Monero (XMR): 86VQyCz68ApebfFgrzRFAuYLdvd3qG8iT9RHcru9moQkJR9W2Q89Gt3ecFQcFu6wncGwGJsMS9E8Bfr9brztBNbX7Q2rfYS

limboauth's People

Contributors

0xyura avatar avutuva avatar en0tuk avatar hevav avatar jnngl avatar kamillaova avatar kforbro avatar mdxd44 avatar sepera-okeq avatar skywatcher2019 avatar souvlakis avatar spongecade avatar usernugget avatar wruczek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

limboauth's Issues

[BUG] Column Relations already exist when altering table for Postgres Database

Describe the bug
Errors show up in console on proxy start with a postgres database.

To Reproduce
Steps to reproduce the behavior:

  1. Have a postgres database
  2. Add database credentials
  3. Restart Server
  4. If it doesn't show up, restart it again as it tries to alter the table after it's already been altered

Expected behavior
No errors. Though the plugin works perfectly fine even with the errors, it's just kind of annoying.

Screenshots
https://pastes.dev/oqioDnogFB

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [e.g. LimboAPI 1.0.4-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/runs/5630619580]

  • [e.g. LimboAuth 1.0.4-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAuth/runs/5618221017]

  • /velocity dump link https://dump.velocitypowered.com/jocozaxewo.json

Additional context
Add any other context about the problem here.

Authentication and connection still works, it's just annoying that it spams the console with it during start up.

[BUG] Premium players losing their data

Describe the bug
My configuration: https://pastebin.com/M2nBQHuw
So i configure the plugin when a premium player join he doesn't need to register. The problem is randomly they connected on the server and the system doesn't recognize them as "Premium Players" and changed their UUID and they have to register. To fix the problem all i have to do is remove the specific player form LimboAuth Database but it's happen with A LOT of premium players and it's really annoying.

To Reproduce
Steps to reproduce the behavior:

  1. Not sure, it's happen randomly

Expected behavior

Screenshots

Server Info (please complete the following information):

Additional context
Add any other context about the problem here.

[BUG] Geyser translation error

Describe the bug
[13:22:40] [Geyser player thread-5-4/ERROR]: Unable to translate package ClientboundLoginPacket
java.lang.NullPointerException: Cannot invoke "com.github.steveice10.opennbt.tag.builtin.CompoundTag.get(java.lang.String)" because "tag" is null
at org.geysermc.geyser.util.JavaCodecEntry.iterateAsTag(JavaCodecEntry.java:41) ~[?:?]
at org.geysermc.geyser.translator.protocol.java.JavaLoginTranslator.translate(JavaLoginTranslator.java:73) ~[?:?]
at org.geysermc.geyser.translator.protocol.java.JavaLoginTranslator.translate(JavaLoginTranslator.java:58) ~[?:?]
at org.geysermc.geyser.registry.PacketTranslatorRegistry.translate0(PacketTranslatorRegistry.java:86) ~[?:?]
at org.geysermc.geyser.registry.PacketTranslatorRegistry.lambda$translate$0(PacketTranslatorRegistry.java:67) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at java.lang.Thread.run(Unknown Source) [?:?]
[13:22:40] [Geyser player thread-5-4/ERROR]: java.lang.NullPointerException: Cannot invoke "com.github.steveice10.opennbt.tag.builtin.CompoundTag.get(java.lang.String)" because "tag" is null
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.util.JavaCodecEntry.iterateAsTag(JavaCodecEntry.java:41)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.translator.protocol.java.JavaLoginTranslator.translate(JavaLoginTranslator.java:73)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.translator.protocol.java.JavaLoginTranslator.translate(JavaLoginTranslator.java:58)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.registry.PacketTranslatorRegistry.translate0(PacketTranslatorRegistry.java:86)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.registry.PacketTranslatorRegistry.lambda$translate$0(PacketTranslatorRegistry.java:67)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[13:22:40] [Geyser player thread-5-4/ERROR]: at java.base/java.lang.Thread.run(Unknown Source)
[13:22:40] [Geyser player thread-5-4/ERROR]: Unable to translate package ClientboundSystemChatPacket
java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.text.ChatTypeEntry.bedrockChatType()" because the return value of "org.geysermc.geyser.platform.velocity.shaded.fastutil.ints.Int2ObjectMap.get(int)" is null
at org.geysermc.geyser.translator.protocol.java.JavaSystemChatTranslator.translate(JavaSystemChatTranslator.java:44) ~[?:?]
at org.geysermc.geyser.translator.protocol.java.JavaSystemChatTranslator.translate(JavaSystemChatTranslator.java:35) ~[?:?]
at org.geysermc.geyser.registry.PacketTranslatorRegistry.translate0(PacketTranslatorRegistry.java:86) ~[?:?]
at org.geysermc.geyser.registry.PacketTranslatorRegistry.lambda$translate$0(PacketTranslatorRegistry.java:67) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-3.1.2-SNAPSHOT-153.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at java.lang.Thread.run(Unknown Source) [?:?]
[13:22:40] [Geyser player thread-5-4/ERROR]: java.lang.NullPointerException: Cannot invoke "org.geysermc.geyser.text.ChatTypeEntry.bedrockChatType()" because the return value of "org.geysermc.geyser.platform.velocity.shaded.fastutil.ints.Int2ObjectMap.get(int)" is null
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.translator.protocol.java.JavaSystemChatTranslator.translate(JavaSystemChatTranslator.java:44)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.translator.protocol.java.JavaSystemChatTranslator.translate(JavaSystemChatTranslator.java:35)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.registry.PacketTranslatorRegistry.translate0(PacketTranslatorRegistry.java:86)
[13:22:40] [Geyser player thread-5-4/ERROR]: at org.geysermc.geyser.registry.PacketTranslatorRegistry.lambda$translate$0(PacketTranslatorRegistry.java:67)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[13:22:40] [Geyser player thread-5-4/ERROR]: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[13:22:40] [Geyser player thread-5-4/ERROR]: at java.base/java.lang.Thread.run(Unknown Source)

To Reproduce
Bedrock edition players join the server

Expected behavior
Geyser translated limboauth correctly

Screenshots
I

Server Info (please complete the following information):
limboapi 1.0.5(dowload from github)
limboauth 1.0.5(download from github)
geyser 2.0.4(master-691d674)

Additional context

[BUG] Log-in Error

Error: https://www.toptal.com/developers/hastebin/atatapuqip.properties
When I log in with my premium account after restarting the proxy, it disconnects me and the console shows the error that I left previously
(Client kick message "Disconnected")

[BUG]

У меня проблема короче не просит пароль даже если я с пиратной версий, и в титл пишет Ты авторизован как премиум аккаунт

[Feature] LimboAuth Mail register , SMTP, Forgot password and Title messages

Can you add a "forgot password" system for those who forgot their password?

While registering, if "mail" is mandatory, an e-mail will be sent via SMTP when players forget their password. And in this way, the password reset process can be done automatically.

Finally, can you add "title" messages that we can send in the Registration / Login section?

Password reset

so i got a friend and he forget his passowrd at my server and now we dont know how can i reset it anyone please help i cant reset and it is stored at h2 format

/premium password confirm

Why is offline uuid not deleted after linking the account to premium uuid?
image

LimboAuth latest version
online-mode-need-auth: false

[ENHANCEMENT] Update H2 database to 2.x

Describe the feature you'd like to have implemented
Update h2 database library to version 2.x and perhaps also implement auto migration.

Is your feature request related to an existing problem? Please describe.
I had bad experience with h2 database 1.x because of its risk of database corruption. The 1.x version is not recommend by its developer anymore.
There are more details in the following link.

Additional context
LuckPerms/LuckPerms#3458

[BUG] Offline players can't login

I found that closed "online-mode-need-auth" after. Offline players can't login.
A little Offline players can login in after waiting for a while another player still can't login
it shows:"fail login,invalid session"
image

[ENHANCEMENT] Add 1.19.2 support

Describe the feature you'd like to have implemented
Add support for 1.19.2

Is your feature request related to an existing problem? Please describe.
When players try to join through 1.19.2, they get kicked

[BUG] Online UUID issue

Describe the bug
Some player have bug when they not have an online UUID, they have offline instead despite having premium

To Reproduce
Idk, just join server and hope that your UUID brakes

Screenshots
Broken UUID
Broken UUID

Working One
Working one

Server Info (please complete the following information):
Velocity 3.1.2-SNAPSHOT

limboapi-plugin-1.0.4-SNAPSHOT
limboauth-1.0.4-SNAPSHOT
LuckPerms-Velocity-5.4.10
minimotd-velocity-2.0.6

Limboauth config

[/velocity dump link]](https://dump.velocitypowered.com/owijacakor.json)

[ENHANCEMENT] Name filtering

Describe the feature you'd like to have implemented
There should be a config option to filter out names using regex or specified list of names.
This would help reduce inappropriate names on servers.

This can be implemented to check on non-registered players only to reduce the load of every time a player join.

help [BUG]

Couldn't pass ProxyInitializeEvent to limboauth
java.lang.IllegalStateException: If you want floodgate players to automatically pass auth (floodgate-need-auth: false), please install floodgate plugin.
at net.elytrium.limboauth.LimboAuth.reload(LimboAuth.java:207) ~[?:?]
at net.elytrium.limboauth.LimboAuth.onProxyInitialization(LimboAuth.java:182) ~[?:?]
at net.elytrium.limboauth.Lmbda$3.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[server.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[server.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[server.jar:3.1.2-SNAPSHOT (git-74edac96-b153)]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]

what can i do?

[ Suggestion ] /lauth info command

Add a /lauth info command whose return avaliable data from database.

Example after execute command:

Informations about Player1:
IP: <>
UUID: <>
Account type: <PREMIUM/CRACKED>
Register date: <>

[BUG] 1.8 Clients can't join 1.19.2 servers

Describe the bug
Everytime I try to connect to a 1.19.2 server via limboauth the client crashes due to packet errors.

To Reproduce
Steps to reproduce the behavior:

  1. Setup a 1.19.2 server and a proxy with LimboAuth
  2. Try to join
  3. See error

Expected behavior
I should be able to join without any problems

Screenshots
Example Crash
Example Crash

Server Info (please complete the following information):

  • LimboAPI and LimboAuth 1.0.6

  • Limbo Api Social Addon 1.0.2

  • Other plugins: floodgate, geyser, luckperms, minimotd-velocity, skinsrestorer, velocity_tools, viaversion, viabackwards, viarewind

  • /velocity dump

[BUG] Cross server transmission cannot be carried out for the first time, and / server cannot be used for cross server transmission

  1. Cross server transmission cannot be carried out for the first time, and / server cannot be used for cross server transmission
  2. When I enter the server twice, I can carry out cross server transmission
  3. limboauth-1.0.4-SNAPSHOT and limboapi-plugin-1.0.4-SNAPSHOT
  4. The first time I can cross server or use / server
    [23:22:19 ERROR]: [connected player] yuan_kun (/61.144.96.140:62915): unable to connect to server poke1
    java.io.IOException: Unexpectedly disconnected from remote server
    at com.velocitypowered.proxy.connection.backend.TransitionSessionHandler.disconnected(TransitionSessionHandler.java:207) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at com.velocitypowered.proxy.connection.MinecraftConnection.channelInactive(MinecraftConnection.java:114) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:392) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:357) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
    at java.lang.Thread.run(Thread.java:833) [?:?]

[ENHANCEMENT] 1.18.2 Support

Joining to the limbo with 1.18.2 on 1.16.5 server with ViaVersion just disconnects the client.

When the session is active the 1.18.2 client can play normally.

[ENHANCEMENT]

Limbo is a greate option but Not for bungeecord if you can add it to bungeecord too it would be greate.The main problem with velocity is it doesnt support BungeeCoord plugins which is needed like for an example i setup a bedwarspractise but to connect it with proxy it need a plugin installed at Bungeecord and it doesnt support velocity and this is only one example so ya if you can possibly make limbo to bungeecord too that's greate.

[BUG] /changepassword Не работает

Описание
Смена пароля в игре для игроков не работает.

Конкретнее

  1. Вводишь команду /changepassword [пароль] [пароль]
  2. В чат выбрасывает ошибку "Incorrect argument for command at position..."

Должно было быть
Пароль должен был смениться.

Скрины
2022-06-25_13 32 01

Информация

[BUG] Timeout when player joins

Describe the bug
When a player join using minecraft bedrock it sometimes go through and most of the time getting time out by limboapi

To Reproduce
Steps to reproduce the behavior:
Join a limboauth server with minecraft bedrock

Expected behavior
Works nicely without error

Screenshots
If applicable, add screenshots to help explain your problem.
image

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [e.g. LimboAPI 1.0.5-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/2579535740]

  • [e.g. LimboAuth 1.0.3-rc3, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/2481464963]

  • /velocity dump link [(https://dump.velocitypowered.com/nonuyokipo.json)]

Additional context
Add any other context about the problem here.

[Suggestion] Email authentication

Adding a email authentication system :

New mode of registration (email only), it sends an email with a temporary password and the user can change it later.
New config :

  • SMTP configuration
  • Email whitelist and blacklist (to only allow one domain or to remove others)
  • Mail formatting (with templates html files)

Thank you !

when i want limbo auth to load scheme file it doesn't work

when i want limbo auth to load scheme file it doesn't work
[21:51:38 ERROR]: Couldn't pass ProxyInitializeEvent to limboauth
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at net.elytrium.limboapi.api.file.SchematicFile.toWorld(SchematicFile.java:61) ~[?:?]
at net.elytrium.limboauth.LimboAuth.reload(LimboAuth.java:344) ~[?:?]
at net.elytrium.limboauth.LimboAuth.onProxyInitialization(LimboAuth.java:182) ~[?:?]
at net.elytrium.limboauth.Lmbda$7.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[server.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[server.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[server.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]

[ENHANCEMENT] Добавление команды /logout

Отсутствует команда /logout закрывающую сессию игрока.

Понятно что не каждый этим пользуется, однако в некотором случае нужная функция.

Можно добавить в конфиг опцию которая выключает сохранении сессии и при каждом заходе будет требовать пароль + добавить всё и саму команду /logout

[BUG] BE Players can't join the server

Describe the bug
BE Players can't join the server

To Reproduce
Steps to reproduce the behavior:

  1. a be account
  2. join
  3. See error

Expected behavior
emmmmmm

Screenshots
image

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [e.g. LimboAPI 1.0.4-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/1926762894]

  • [e.g. LimboAuth 1.0.3-rc3, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/1806267878]

  • /velocity dump link [e.g. https://dump.velocitypowered.com/iqefukiliq.csharp]

Additional context
None

[BUG] Players can still join if the database connection failed

Describe the bug
If there is no connection to the database server continues to work and lets players in without the auth. This is a serious security concern

To Reproduce

  • Stop the database
  • Join the server

Expected behavior
The server should stop immediately

[ENHANCEMENT] Изменение заполнителей сообщений

Изменить заполнители сообщений.

Сейчас заполнители имеют вид {0}, это не удобно при переводе, т.к приходится проверять каждое сообщение при переводе на другой язык.

В идеале всё же сделать плейсхолдеры, скорость прогрузки прокси это конечно хорошо, но это мизерные миллисекунды потерь, если всё же поменять заполнители на более понятные)

Было бы в разы удобнее тем, кто переводит сообщения на свой язык.

[BUG] Проблемы с подключением MySQL базы данных

При подключении плагина к базе данных выдаёт следующую ошибку - https://pastebin.com/yxDiK8Kf
Как я понял связанно как-то с размером строк или что-то такое, при импорте базы говорит:
"Указан слишком длинный ключ. Максимальная длина ключа составляет 767 байт"

How to open an issue.

If you want to report a bug:

Your issue should be based on the "Bug Report" template, in another cases the issue will be closed.
img
Upload your logs and error messages on pastebin-alike services without autodeletion.
Make sure that you can reproduce your bug on the latest build from the actions tab.

If you want to suggest an idea:

Your issue should be based on the "Feature Request" template, in another cases the issue will be closed.
img
Make sure that your idea is not implemented in the latest build from the actions tab.
Please, correctly define your idea. If we can't understand what you mean, your issue will be closed.

If you want to ask questions or if you want to get help with our plugins/Velocity:

You can join our Discord server, there you can ask questions in the public chat or open tickets to get personal help.

[Suggestion] More commands + titles

Приветствую.

Было бы здорово иметь команду для проверки твинков (одинаковый ip) и собственно просмотр ip по нику.
Также не будет лишним добавить title subtitle с подсказкой reg/login

Do not remove premium account passwords from database

Hello i use MYSQL database and my Site also connected to same database when my players use /premium command the plugin delete's password from database thats why my players couldnt login from site. how can i fix that ?

[BUG] Account authentication issues

Describe the bug
I want to enable the online and offline authentication functions of limboauth. and I set the "online-mode-need-auth" in the configuration file to false. However, when an offline player enters the server, the client prompts "failed to log in:invalid session." I confirm that I have turned off the "online-mode" function of spigot and velocity
To Reproduce
Steps to reproduce the behavior:

  1. Offline players enter the server

Expected behavior
Offline players and online players successfully enter the server, and online players do not need to authenticate their accounts

Screenshots
Screenshot_20220614_014319_com tungsten hmclpe
Screenshot_20220614_015306

Server Info (please complete the following information):
LimboAPI 1.0.6
LimboAuth 1.0.6

Additional context

[BUG] Minimessage formating

Describe the bug
not working minimessage formating

Server Info (please complete the following information):

  • All Limbo plugins versions:
  • LATEST

[BUG] clients display errors when entering commands

Describe the bug
in high version minecraft , clients display errors when entering commands,that may results from permissions issue.
the command works, but the warning seems weird.

To Reproduce
Steps to reproduce the behavior:
1.enter the velocity server
2. input in game 'login or register commands'
3. See error

Expected behavior
The commands should be in white color without warnings and it's better to have command prompt.

Screenshots
image

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [LimboAPI 1.0.3, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/xxxxxx]

  • [LimboAuth 1.0.3-rc3, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/xxxxxx]

  • /velocity dump link https://dump.velocitypowered.com/vinadilepa.json

Additional context
I am not good at English,and if there are sth which can't be expressed well,i am sorry.

[BUG] com.velocitypowered.proxy.connection.client.AuthSessionHandler

Describe the bug
A clear and concise description of the bug.

To Reproduce
Steps to reproduce the behavior:

  1. Player join the game
  2. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Server Info (please complete the following information):

/ - /velocity dump link [e.g. https://dump.velocitypowered.com/abcdef.json]

Additional context
[16:12:47 INFO] [limboapi]: likangxian1007 (/47.102.156.194:27683) has connected to the LimboAuth Limbo
[16:12:47 ERROR]: [initial connection] /47.102.156.194:27683: exception encountered in com.velocitypowered.proxy.connection.client.AuthSessionHandler@7999d319
io.netty.handler.codec.EncoderException: PreparedPacketEncoder must produce at least one message.
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:96) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1015) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.AbstractChannel.write(AbstractChannel.java:301) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at com.velocitypowered.proxy.connection.MinecraftConnection.delayedWrite(MinecraftConnection.java:230) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at net.elytrium.limboapi.server.LimboImpl.lambda$spawnPlayer$4(LimboImpl.java:224) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-3.1.2-SNAPSHOT-137.jar:3.1.2-SNAPSHOT (git-aa38d3e5-b137)]
at java.lang.Thread.run(Thread.java:833) [?:?]
[16:12:47 INFO] [limboapi]: likangxian1007 (/47.102.156.194:27683) has disconnected from the LimboAuth Limbo

[ENHANCEMENT] Keep premium users hash after /premium

Describe the feature you'd like to have implemented
Please add an option in the config to disable deleting password hashes after a user does /premium

Additional context
Keeping the hash would help with website integrations

[BUG] Premium players logging in as non-premium players

Describe the bug
When players with premium minecraft account join my server plugin doesn't seem to be detecting that they are using premium account.

To Reproduce
My config:

version: "1.0.6-SNAPSHOT"
# Available serializers:
# LEGACY_AMPERSAND - "&c&lExample &c&9Text".
# LEGACY_SECTION - "§c§lExample §c§9Text".
# MINIMESSAGE - "<bold><red>Example</red> <blue>Text</blue></bold>". (https://webui.adventure.kyori.net/)
# GSON - "[{"text":"Example","bold":true,"color":"red"},{"text":" ","bold":true},{"text":"Text","bold":true,"color":"blue"}]". (https://minecraft.tools/en/json_text.php/)
# GSON_COLOR_DOWNSAMPLING - Same as GSON, but uses downsampling.
serializer: "LEGACY_AMPERSAND"
prefix: "Logowanie &6>>&f"

# Don't use \n, use {NL} for new line, and {PRFX} for prefix.
main:
  # Maximum time for player to authenticate in milliseconds. If the player stays on the auth limbo for longer than this time, then the player will be kicked.
  auth-time: 60000
  enable-bossbar: true
  # Available colors: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
  bossbar-color: "RED"
  # Available overlays: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20
  bossbar-overlay: "NOTCHED_20"
  min-password-length: 4
  # Max password length for the BCrypt hashing algorithm, which is used in this plugin, can't be higher than 71. You can set a lower value than 71.
  max-password-length: 71
  check-password-strength: true
  unsafe-passwords-file: "unsafe_passwords.txt"
  online-mode-need-auth: false
  # Needs floodgate plugin.
  floodgate-need-auth: true
  # TOTALLY disables hybrid auth feature
  force-offline-mode: false
  # Forces all players to get offline uuid
  force-offline-uuid: false
  # Delay in milliseconds before sending auth-confirming titles and messages to the player. (login-premium-title, login-floodgate, etc.)
  premium-and-floodgate-messages-delay: 1250
  # Forcibly set player's UUID to the value from the database
  # If the player had the cracked account, and switched to the premium account, the cracked UUID will be used.
  save-uuid: false
  enable-totp: true
  totp-need-password: true
  register-need-repeat-password: false
  change-password-need-old-password: true
  # Used in unregister and premium commands.
  confirm-keyword: "confirm"
  # This prefix will be added to offline mode players nickname
  offline-mode-prefix: ""
  # This prefix will be added to online mode players nickname
  online-mode-prefix: ""
  # If you want to migrate your database from another plugin, which is not using BCrypt.
  # You can set an old hash algorithm to migrate from.
  # AUTHME - AuthMe SHA256(SHA256(password) + salt) that looks like $SHA$salt$hash (AuthMe, MoonVKAuth, DSKAuth, DBA)
  # AUTHME_NP - AuthMe SHA256(SHA256(password) + salt) that looks like SHA$salt$hash (JPremium)
  # SHA256_NP - SHA256(password) that looks like SHA$salt$hash
  # SHA256_P - SHA256(password) that looks like $SHA$salt$hash
  # SHA512_NP - SHA512(password) that looks like SHA$salt$hash
  # SHA512_P - SHA512(password) that looks like $SHA$salt$hash
  # SHA512_DBA - DBA plugin SHA512(SHA512(password) + salt) that looks like SHA$salt$hash (DBA, JPremium)
  # MD5 - Basic md5 hash
  # ARGON2 - Argon2 hash that looks like $argon2i$v=1234$m=1234,t=1234,p=1234$hash
  # MOON_SHA256 - Moon SHA256(SHA256(password)) that looks like $SHA$hash (no salt)
  # SHA256_NO_SALT - SHA256(password) that looks like $SHA$hash (NexAuth)
  # SHA512_NO_SALT - SHA512(password) that looks like $SHA$hash (NexAuth)
  # SHA512_P_REVERSED_HASH - SHA512(password) that looks like $SHA$hash$salt (nLogin)
  migration-hash: ""
  # Available dimensions: OVERWORLD, NETHER, THE_END
  dimension: "THE_END"
  purge-cache-millis: 3600000
  purge-premium-cache-millis: 28800000
  # QR Generator URL, set {data} placeholder
  qr-generator-url: "https://api.qrserver.com/v1/create-qr-code/?data={data}&size=200x200&ecc=M&margin=30"
  totp-issuer: "ELOCraft"
  bcrypt-cost: 10
  login-attempts: 3
  ip-limit-registrations: 3
  totp-recovery-codes-amount: 16
  # Time in milliseconds, when ip limit works, set to 0 for disable.
  ip-limit-valid-time: 21600000
  # Regex of allowed nicknames
  # ^ means the start of the line, $ means the end of the line
  # [A-Za-z0-9_] is a character set of A-Z, a-z, 0-9 and _
  # {3,16} means that allowed length is from 3 to 16 chars
  allowed-nickname-regex: "^[A-Za-z0-9_]{3,16}$"
  load-world: false
  # World file type: "schematic" (1.12.2 and lower, not recommended), "structure" block .nbt (saved in 1.17 - 1.18.2).
  world-file-type: "structure"
  world-file-path: "world.nbt"
  # World time in ticks (24000 ticks == 1 in-game day)
  world-ticks: 1000
  # World light level (from 0 to 15)
  world-light-level: 15
  # Available: ADVENTURE, CREATIVE, SURVIVAL, SPECTATOR
  game-mode: "ADVENTURE"
  # Custom isPremium URL
  # You can use Mojang one's API (set by default)
  # Or CloudFlare one's: https://api.ashcon.app/mojang/v1/user/%s
  # Or use this code to make your own API: https://blog.cloudflare.com/minecraft-api-with-workers-coffeescript/
  # Or implement your own API, it should just respond with HTTP code 200 only if the player is premium
  ispremium-auth-url: "https://api.ashcon.app/mojang/v1/user/%s"
  # If Mojang rate-limits your server, we cannot determine if the player is premium or not
  # This option allows you to choose whether every player will be defined as premium or as cracked while Mojang is rate-limiting the server
  # True - as premium; False - as cracked
  on-rate-limit-premium: true
  register-command:
    - "/r"
    - "/reg"
    - "/register"
  login-command:
    - "/l"
    - "/log"
    - "/login"
  totp-command:
    - "/2fa"
    - "/totp"
  # New players will be kicked with registrations-disabled-kick message
  disable-registrations: false
  world-coords:
    x: 0
    y: 0
    z: 0
  cracked-title-settings:
    fade-in: 10
    stay: 70
    fade-out: 20
    clear-after-login: false
  premium-title-settings:
    fade-in: 10
    stay: 70
    fade-out: 20
  strings:
    reload: "{PRFX} &aReloaded successfully!"
    reload-failed: "{PRFX} &cReload failed, check console for details."
    error-occurred: "{PRFX} &cAn internal error has occurred!"
    database-error-kick: "{PRFX} &cA database error has occurred!"
    not-player: "{PRFX} &cKonsola nie może tego uruchomić!"
    not-registered: "{PRFX} &cNie jesteś zarejestrowany albo masz konto &6PREMIUM!"
    cracked-command: "{PRFX}{NL}&aNie możesz użyć tego polecenia, ponieważ masz konto &6PREMIUM&a!"
    wrong-password: "{PRFX} &cZłe hasło!"
    nickname-invalid-kick: "{PRFX}{NL}&cTwój nick zawiera niedozwolone znaki. Zmień go!"
    # 6 hours by default in ip-limit-valid-time
    ip-limit-kick: "{PRFX}{NL}{NL}&cTwó adres IP osiągnął limit zarejestrowanych graczy."
    wrong-nickname-case-kick: "{PRFX}{NL}&cWielkość liter w twoim nicku jest nieodpowiednia."
    bossbar: "{PRFX} Masz &6{0} &fsekund na zalogowanie."
    times-up: "{PRFX}{NL}&cCzas na logowanie minął."
    login-premium: "" # Can be empty.
    login-premium-title: "" # Can be empty.
    login-premium-subtitle: "" # Can be empty.
    login-floodgate: "" # Can be empty.
    login-floodgate-title: "" # Can be empty.
    login-floodgate-subtitle: "" # Can be empty.
    login: "{PRFX} &aZaloguj się używając &6/login <hasło>&a, pozostało &6{0} &aprób."
    login-wrong-password: "{PRFX} &cWpisałeś złe hasło. Masz &6{0} &cprób."
    login-wrong-password-kick: "{PRFX}{NL}&cZbyt wiele razy wpisałeś złe hasło!"
    login-successful: "{PRFX} &aPomyślnie zalogowano!"
    login-title: "" # Can be empty.
    login-subtitle: "" # Can be empty.
    login-successful-title: "" # Can be empty.
    login-successful-subtitle: "" # Can be empty.
    # Or if register-need-repeat-password set to false remove the "<repeat password>" part.
    register: "{PRFX} Zarejestruj się używając &6/register <hasło>"
    register-different-passwords: "{PRFX} &cHasła różnią się od siebie!"
    register-password-too-short: "{PRFX} &cZa krótkie hasło, użyj innego!"
    register-password-too-long: "{PRFX} &cZa długie hasło, użyj innego!"
    register-password-unsafe: "{PRFX} &cHasło nie jest bezpieczne, użyj innego!"
    register-successful: "{PRFX} &aPomyślnie zarejestrowano!"
    register-title: "" # Can be empty.
    register-subtitle: "" # Can be empty.
    register-successful-title: "" # Can be empty.
    register-successful-subtitle: "" # Can be empty.
    unregister-successful: "{PRFX}{NL}&aPomyślnie wyrejestrowano!"
    unregister-usage: "{PRFX} Użyj: &6/unregister <aktualne hasło> confirm"
    premium-successful: "{PRFX}{NL}&aZmieniono konto na &6PREMIUM&a!"
    already-premium: "{PRFX} &cTwoje konto jest już zarejestrowane jako &6PREMIUM&c!"
    not-premium: "{PRFX} &cTwoje konto nie jest zarejestrowane jako &6PREMIUM&c!"
    premium-usage: "{PRFX} Użycie: &6/premium <hasło> confirm"
    event-cancelled: "{PRFX} Authorization event was cancelled"
    force-unregister-successful: "{PRFX} &6{0} &apomyślnie odrejestrowano!"
    force-unregister-kick: "{PRFX}{NL}&aZostałeś odrejestrowany przez administratora!"
    force-unregister-not-successful: "{PRFX} &cNie udało się odrejestrować &6{0}&c. Prawdopodobnie gracz nie był na serwerze."
    force-unregister-usage: "{PRFX} Użycie: &6/forceunregister <nick>"
    registrations-disabled-kick: "{PRFX} Registrations are currently disabled."
    change-password-successful: "{PRFX} &aPomyślnie zmieniono hasło!"
    # Or if change-password-need-old-pass set to false remove the "<old password>" part.
    change-password-usage: "{PRFX} Użycie: &6/changepassword <stare hasło> <nowe hasło>"
    force-change-password-successful: "{PRFX} &aPomyślnie zmieniono hasło dla gracza &6{0}&a!"
    force-change-password-message: "{PRFX} &aTwoje hasło zostało zmienione na &6{0} &aprzez administratora!"
    force-change-password-not-successful: "{PRFX} &cNie można zmienić hasła dla gracza &6{0}&c. Przwdopodobnie gracz nie był na serwerze."
    force-change-password-usage: "{PRFX} Użycie: &6/forcechangepassword <nick> <nowe hasło>"
    totp: "{PRFX} Wpisz klucz 2FA używając &6/2fa <klucz>"
    totp-title: "" # Can be empty.
    totp-subtitle: "" # Can be empty.
    totp-successful: "{PRFX} &aPomyślnie włączono 2FA!"
    totp-disabled: "{PRFX} &aPomyślnie wyłączono 2FA!"
    # Or if totp-need-pass set to false remove the "<current password>" part.
    totp-usage: "{PRFX} Użycie: &6/2fa enable <hasło>&f lub &6/2fa disable <klucz 2FA>&f."
    totp-wrong: "{PRFX} &cZły klucz 2FA!"
    totp-already-enabled: "{PRFX} &c2FA jest już włączone. Dyłącz je używając &6/2fa disable <klucz 2FA>&c."
    totp-qr: "{PRFX} Naciśnij tutaj aby otworzyć kod 2FA w przeglądarce."
    totp-token: "{PRFX} &aTwój token 2FA &7(naciśnij, aby skopiować)&a: &6{0}"
    totp-recovery: "{PRFX} &aTwoje kody odzyskiwania &7(kliknij, aby skopiować)&a: &6{0}"
    destroy-session-successful: "{PRFX} &eTwoja sesja została zniszczona. Musisz zalogować się ponownie po ponownym dołączeniu."
  auth-coords:
    x: 0.0
    y: 0.0
    z: 0.0
    yaw: 0.0
    pitch: 0.0

# Database settings
database:
  # Database type: mysql, postgresql or h2.
  storage-type: "mysql"
  # Settings for Network-based database (like MySQL, PostgreSQL): 
  hostname: "127.0.0.1:3306"
  user: "something"
  password: "something"
  database: "something"
  connection-parameters: "?autoReconnect=true&initialTimeout=1&useSSL=false"

Expected behavior
When player joins server they should have been detected as a premium account or not.

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [e.g. LimboAPI 1.0.6-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/2675404300]

  • [e.g. LimboAuth 1.0.6-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/2656704149]

  • /velocity dump link: https://dump.velocitypowered.com/nocifuleca.json

Am I doing something wrong or is this a bug?

[BUG] Saving TOTP recovery codes is not implemented

Describe the bug
LimboAuth generates TOTP scratch codes, but doesn't store them anywhere (see there).
dev.samstevens.totp.recovery.RecoveryCodeGenerator just provides N random strings, that should be stored yourself.
TOTP doesn't describe recovery codes, it's a mechanism that is outside the scope of TOTP.

Possible solution
Add table column or separate table for storing generated recovery codes.

p.s. I think such long alphanumeric strings for recovery codes is a bad idea for a Minecraft server. It might be better to generate small integers, such it does GoogleAuth.

[BUG] Login Error

Describe the bug
Anyone that join the server get kicked and "Disconnected" message appear

To Reproduce
Steps to reproduce the behavior:

  1. Install limboauth and limboapi
  2. connect to the server
  3. See error

Expected behavior
User can successfully connect to the server

Screenshots
image

Server Info (please complete the following information):

  • All Limbo plugins versions:

  • [LimboAPI 1.0.4-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAPI/actions/runs/2082878209]

  • [LimboAuth 1.0.4-SNAPSHOT, downloaded from https://github.com/Elytrium/LimboAuth/actions/runs/2086353707]

  • /velocity dump link [https://dump.velocitypowered.com/uwefasagoh.json]

Additional context
None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.