1+ package com .lifemcserver .api ;
2+
3+ import java .util .concurrent .ConcurrentHashMap ;
4+ import java .util .concurrent .ExecutorService ;
5+ import java .util .concurrent .Executors ;
6+
7+ import javax .annotation .Nullable ;
8+
9+ import com .google .common .util .concurrent .ThreadFactoryBuilder ;
10+
11+ public class LifeAPI {
12+
13+ protected static ExecutorService apiThread = Executors .newSingleThreadExecutor (new ThreadFactoryBuilder ().setNameFormat ("LifeAPI - API Thread" ).build ());
14+ protected static LifeAPI Instance = null ;
15+
16+ protected ConcurrentHashMap <String , User > userMap = new ConcurrentHashMap <String , User >();
17+
18+ public LifeAPI () {
19+
20+ Instance = this ;
21+
22+ }
23+
24+ @ Nullable
25+ public Object getUser (String name , String password ) {
26+
27+ if (userMap .containsKey (name )) {
28+
29+ return userMap .get (name );
30+
31+ } else {
32+
33+ String jsonResponse = "" ;
34+
35+ try {
36+
37+ jsonResponse = User .connectTo ("https://www.lifemcserver.com/loginAPI.php?" + name + "&password=" + password );
38+
39+ } catch (Exception ex ) {
40+
41+ ex .printStackTrace ();
42+
43+ } catch (Throwable tw ) {
44+
45+ tw .printStackTrace ();
46+
47+ }
48+
49+ ResponseType response = null ;
50+
51+ if (jsonResponse .equalsIgnoreCase ("NO_USER" )) {
52+ response = ResponseType .NO_USER ;
53+ return response ;
54+ }
55+
56+ else if (jsonResponse .equalsIgnoreCase ("WRONG_PASSWORD" )) {
57+ response = ResponseType .WRONG_PASSWORD ;
58+ return response ;
59+ }
60+
61+ else if (jsonResponse .equalsIgnoreCase ("MAX_TRIES" )) {
62+ response = ResponseType .MAX_TRIES ;
63+ return response ;
64+ }
65+
66+ else if (jsonResponse .equalsIgnoreCase ("ERROR" )) {
67+ response = ResponseType .ERROR ;
68+ return response ;
69+ }
70+
71+ else if (jsonResponse .equalsIgnoreCase ("SUCCESS" )) {
72+ response = ResponseType .SUCCESS ;
73+ }
74+
75+ else {
76+
77+ response = ResponseType .ERROR ;
78+ return response ;
79+
80+ }
81+
82+ User u = new User (name , password );
83+ userMap .put (name , u );
84+
85+ return u ;
86+
87+ }
88+
89+ }
90+
91+ @ Nullable
92+ public User getUser (String name ) {
93+
94+ if (userMap .containsKey (name )) {
95+
96+ return userMap .get (name );
97+
98+ } else {
99+
100+ return null ;
101+
102+ }
103+
104+ }
105+
106+ }
0 commit comments