{"action":"created","issue":{"url":"https://api.github.com/repos/games647/FastLogin/issues/98","repository_url":"https://api.github.com/repos/games647/FastLogin","labels_url":"https://api.github.com/repos/games647/FastLogin/issues/98/labels{/name}","comments_url":"https://api.github.com/repos/games647/FastLogin/issues/98/comments","events_url":"https://api.github.com/repos/games647/FastLogin/issues/98/events","html_url":"https://github.com/games647/FastLogin/issues/98","id":195219800,"number":98,"title":"Failed to query profile","user":{"login":"artur9010","id":4835677,"avatar_url":"https://avatars.githubusercontent.com/u/4835677?v=3","gravatar_id":"","url":"https://api.github.com/users/artur9010","html_url":"https://github.com/artur9010","followers_url":"https://api.github.com/users/artur9010/followers","following_url":"https://api.github.com/users/artur9010/following{/other_user}","gists_url":"https://api.github.com/users/artur9010/gists{/gist_id}","starred_url":"https://api.github.com/users/artur9010/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artur9010/subscriptions","organizations_url":"https://api.github.com/users/artur9010/orgs","repos_url":"https://api.github.com/users/artur9010/repos","events_url":"https://api.github.com/users/artur9010/events{/privacy}","received_events_url":"https://api.github.com/users/artur9010/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-13T10:49:04Z","updated_at":"2016-12-13T11:38:21Z","closed_at":"2016-12-13T11:38:21Z","body":"```\r\n[11:44:37 ERROR]: [FastLogin] Failed to query profile\r\njava.sql.SQLException: Error parsing time stamp\r\n        at org.sqlite.jdbc3.JDBC3ResultSet.getTimestamp(JDBC3ResultSet.java:565) ~[spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java) ~[FastLogin.jar:?]\r\n        at com.github.games647.fastlogin.core.AuthStorage.loadProfile(AuthStorage.java:129) [FastLogin.jar:?]\r\n        at com.github.games647.fastlogin.core.shared.JoinManagement.onLogin(JoinManagement.java:21) [FastLogin.jar:?]\r\n        at com.github.games647.fastlogin.bukkit.listener.protocollib.NameCheckTask.run(NameCheckTask.java:38) [FastLogin.jar:?]\r\n        at org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        at org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_112]\r\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_112]\r\n        at java.lang.Thread.run(Unknown Source) [?:1.8.0_112]\r\nCaused by: java.text.ParseException: Unparseable date: \"2016-12-12 16:00:49\" does not match (\\p{Nd}++)\\Q-\\E(\\p{Nd}++)\\Q-\\E(\\p{Nd}++)\\Q \\E(\\p{Nd}++)\\Q:\\E(\\p{Nd}++)\\Q:\\E(\\p{Nd}++)\\Q.\\E(\\p{Nd}++)\r\n        at org.sqlite.date.FastDateParser.parse(FastDateParser.java:299) ~[spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        at org.sqlite.date.FastDateFormat.parse(FastDateFormat.java:490) ~[spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        at org.sqlite.jdbc3.JDBC3ResultSet.getTimestamp(JDBC3ResultSet.java:562) ~[spigot-1.11.jar:git-Spigot-f950f8e-c6d6844]\r\n        ... 9 more\r\n[11:44:37 INFO]: UUID of player artur9010 is 5ce542ff-212d-359b-a395-72fc668d5c40\r\n[11:44:59 INFO]: artur9010[/127.0.0.1:63494] logged in with entity id 613 at ([world]-32.36340865781875, 88.0, 578.754820552391)\r\n```\r\n\r\nPlugin list:\r\n```\r\n>pl\r\n[11:45:52 INFO]: Plugins (20): AsyncWorldEditInjector, CleanroomGenerator, WorldEdit, AsyncWorldEdit, Essentials, PermissionsEx, Vault, Multiverse-Core, ProtocolLib, WorldGuard, NoCheatPlus, tocraft_SpawnerGUI, AZRank, FastLogin, ChestShop, tocraft_core, WebPortal, AuthMe, HolographicDisplays, tocraft_IslandWorld\r\n```\r\n\r\nSpigot version:\r\n```\r\n>ver\r\n[11:46:12 INFO]: This server is running CraftBukkit version git-Spigot-f950f8e-c6d6844 (MC: 1.11) (Implementing API version 1.11-R0.1-SNAPSHOT)\r\n[11:46:12 INFO]: Checking version, please wait...\r\n[11:46:13 INFO]: You are running the latest version\r\n```\r\n\r\nProtocolLib version:\r\n```\r\n>protocol version\r\n[11:46:40 INFO]: ProtocolLib v4.2.0-SNAPSHOT-b330\r\n[11:46:40 INFO]: Authors: dmulloy2 and Comphenix\r\n[11:46:40 INFO]: Issues: https://github.com/dmulloy2/ProtocolLib/issues\r\n```\r\n\r\nFastLogin config:\r\n```yml\r\n# FastLogin config\r\n# Project site: https://www.spigotmc.org/resources/fastlogin.14153\r\n# Source code: https://github.com/games647/FastLogin\r\n#\r\n# You can access the newest config here:\r\n# https://github.com/games647/FastLogin/blob/master/core/src/main/resources/config.yml\r\n\r\n# Request a premium login without forcing the player to type a command\r\n#\r\n# If you activate autoRegister, this plugin will check/do these points on login:\r\n# 1. An existing cracked account shouldn't exist\r\n# -> paid accounts cannot steal the existing account of cracked players\r\n# - (Already registered players could still use the /premium command to activate premium checks)\r\n# 2. Automatically registers an account with a strong random generated password\r\n# -> cracked player cannot register an account for the premium player and so cannot the steal the account\r\n#\r\n# Furthermore the premium player check have to be made based on the player name\r\n# This means if a cracked player connects to the server and we request a paid account login from this player\r\n# the player just disconnect and sees the message: 'bad login' or 'invalid session'\r\n# There is no way to change this message\r\n# For more information: https://github.com/games647/FastLogin#why-do-players-have-to-invoke-a-command\r\nautoRegister: false\r\n\r\n# This is extra configuration option to the feature above. If we request a premium authentication from a player who\r\n# isn't actual premium but used a premium username, the player will disconnect with the reason \"invalid session\" or\r\n# \"bad login\".\r\n#\r\n# If you activate this, we are remembering this player and do not force another premium authentication if the player\r\n# tries to join again, so the player could join as cracked player.\r\nsecondAttemptCracked: false\r\n\r\n# New cracked players will be kicked from server. Good if you want switch from offline-mode to online-mode without\r\n# losing players!\r\n#\r\n# Existing cracked and premium players could still join your server. Moreover you could add playernames to a whitelist.\r\n# So that these cracked players could join too although they are new players.\r\nswitchMode: false\r\n\r\n# If this plugin detected that a player has a premium, it can also set the associated\r\n# uuid from that account. So if the players changes their usernames, they will still have\r\n# the same playerdata (inventory, permissions, ...)\r\n#\r\n# Warning: This also means that the UUID will be different if the player is connecting\r\n# through a offline mode connection. This **could** cause plugin compatibility issues.\r\n#\r\n# This is a example and doesn't apply for every plugin.\r\n# Example: If you want to ban players who aren't online at the moment, the ban plugin will look\r\n# after a offline uuid associated to the player, because the server is in offline mode. Then the premium\r\n# players could still join the server, because they have different UUID.\r\n#\r\n# Moreover you may want to convert the offline UUID to a premium UUID. This will ensure that the player\r\n# will have the same inventory, permissions, ... if they switched to premium authentification from offline/cracked\r\n# authentification.\r\n#\r\n# This feature requires Cauldron, Spigot or a fork of Spigot (PaperSpigot, TacoSpigot)\r\npremiumUuid: false\r\n\r\n# This will make an additional check (only for player names which are not in the database) against the mojang servers\r\n# in order to get the premium UUID. If that premium UUID is in the database, we can assume on sucessful login that the\r\n# player changed it's  username and we just update the name in the database.\r\n# Examples:\r\n# #### Case 1\r\n# nameChangeCheck = false ----- autoRegister = false\r\n#\r\n# Player logins as cracked until the player invoked the command /premium. Then we could override the existing database\r\n# record.\r\n#\r\n# #### Case 2\r\n#\r\n# nameChangeCheck = true ----- autoRegister = false\r\n#\r\n# Connect the Mojang API and check what UUID the player has (UUID exists => Paid Minecraft account). If that UUID is in\r\n# the database it's an **existing player** and FastLogin can **assume** the player is premium and changed the username.\r\n# If it's not in the database, it's a new player and **could be a cracked player**. So we just use a offline mode\r\n# authentication for this player.\r\n#\r\n# **Limitation**: Cracked players who uses the new username of a paid account cannot join the server if the database\r\n# contains the old name. (Example: The owner of the paid account no longer plays on the server, but changed the username\r\n# in the meanwhile).\r\n#\r\n# #### Case 3\r\n#\r\n# nameChangeCheck = false ----- autoRegister = true\r\n#\r\n# We will always request a premium authentication if the username is unknown to us, but is in use by a paid minecraft\r\n# account. This means it's kind of a more aggressive check like nameChangeCheck = true and autoRegister = false, because\r\n# it request a premium authentication which are completely new to us, that even the premium UUID is not in our database.\r\n#\r\n# **Limitation**: see below\r\n#\r\n# #### Case 4\r\n#\r\n# nameChangeCheck = true ----- autoRegister = true\r\n#\r\n# Based on autoRegister it checks if the player name is premium and login using a premium authentication. After that\r\n# fastlogin receives the premium UUID and can update the database record.\r\n#\r\n# **Limitation from autoRegister**: New offline players who uses the username of an existing minecraft cannot join the\r\n# server.\r\nnameChangeCheck: false\r\n\r\n# If your players have a premium account and a skin associated to their account, this plugin\r\n# can download the data and set it to the online player.\r\n#\r\n# Keep in mind that this will only works if the player:\r\n# * is the owner of the premium account\r\n# * the serverconnection is established through a premium connection (paid account authentification)\r\n# * has a skin\r\n#\r\n# This means this plugin doesn't need to create a new connection to the Mojang servers, because\r\n# the skin data is included in the Auth-Verification-Response sent by Mojang. If you want to use for other\r\n# players like cracked player, you have to use other plugins.\r\n#\r\n# If you want to use skins for your cracked player, you need an additional plugin like\r\n# ChangeSkin, SkinRestoer, ...\r\nforwardSkin: true\r\n\r\n# Displays a warning message that this message SHOULD only be invoked by\r\n# users who actually are the owner of this account. So not by cracked players\r\n#\r\n# If they still want to invoke the command, they have to invoke /premium again\r\npremium-warning: true\r\n\r\n# If you have autoRegister or nameChangeCheck enabled, you could be rate-limited by Mojang.\r\n# The requests of the both options will be only made by FastLogin if the username is unknown to the server\r\n# You are allowed to make 600 requests per 10-minutes (60 per minute)\r\n# If you own a big server this value could be too low\r\n# Once the limit is reached, new players are always logged in as cracked until the rate-limit is expired.\r\n# (to the next ten minutes)\r\n#\r\n# The limit is IP-wide. If you have multiple IPv4-Addreses you specify them here. FastLogin will then use it in rotating\r\n# order --> 5 different IP-addreses 5 * 600 per 10 minutes\r\n# If this list is empty only the default one will be used\r\n#\r\n# Lists are created like this:\r\n#ip-addresses:\r\n#    - 192-168-0-2\r\nip-addresses: []\r\n\r\n# How many requests should be established until the plugin uses the third-party API https://mcapi.ca/\r\n# Once this number is reached in a range of ten minutes it will start connecting to https://mcapi.ca/ for the next ten minutes\r\n# This option exists in order to workaround the rate-limiting. Name -> UUID are fetched in the same way like heads\r\n#\r\n# If you want to join the discussion visit this: https://github.com/games647/FastLogin/issues/27#issuecomment-226954350\r\nmojang-request-limit: 600\r\n\r\n# This disables the auto login from fastlogin. So a premium (like a paid account) authentication is requested, but\r\n# the player won't be auto logged into the account.\r\n#\r\n# This can be used as 2Factor authentication for better security of your accounts. A hacker then needs both passwords.\r\n# The password of your minecraft and the password to login in with your auth plugin\r\nautoLogin: true\r\n\r\n# Database configuration\r\n# Recommened is the use of MariaDB (a better version of MySQL)\r\n\r\n# Single file SQLite database\r\ndriver: org.sqlite.JDBC\r\n# File location\r\ndatabase: '{pluginDir}/FastLogin.db'\r\n\r\n# MySQL\r\n#driver: com.mysql.jdbc.Driver\r\n#host: localhost\r\n#port: 3306\r\n#database: fastlogin\r\n#username: myUser\r\n#password: myPassword\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/games647/FastLogin/issues/comments/266716796","html_url":"https://github.com/games647/FastLogin/issues/98#issuecomment-266716796","issue_url":"https://api.github.com/repos/games647/FastLogin/issues/98","id":266716796,"user":{"login":"games647","id":1957196,"avatar_url":"https://avatars.githubusercontent.com/u/1957196?v=3","gravatar_id":"","url":"https://api.github.com/users/games647","html_url":"https://github.com/games647","followers_url":"https://api.github.com/users/games647/followers","following_url":"https://api.github.com/users/games647/following{/other_user}","gists_url":"https://api.github.com/users/games647/gists{/gist_id}","starred_url":"https://api.github.com/users/games647/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/games647/subscriptions","organizations_url":"https://api.github.com/users/games647/orgs","repos_url":"https://api.github.com/users/games647/repos","events_url":"https://api.github.com/users/games647/events{/privacy}","received_events_url":"https://api.github.com/users/games647/received_events","type":"User","site_admin":false},"created_at":"2016-12-13T11:38:20Z","updated_at":"2016-12-13T11:38:20Z","body":"Duplicate #97 "}}
{"actor":{"display_login":"games647"}}