Skip to content

Commit 549f7ec

Browse files
committed
Implement listUsers api method and add two functions for getting a list of users
1 parent 0f9b7d2 commit 549f7ec

2 files changed

Lines changed: 51 additions & 0 deletions

File tree

src/com/namelessmc/NamelessAPI/NamelessAPI.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import java.net.URL;
55
import java.net.URLEncoder;
66
import java.util.ArrayList;
7+
import java.util.HashMap;
78
import java.util.List;
9+
import java.util.Map;
810
import java.util.UUID;
911

1012
import com.google.gson.JsonArray;
@@ -157,6 +159,36 @@ public NamelessPlayer getPlayer(UUID uuid) throws NamelessException {
157159
return new NamelessPlayer(uuid, apiUrl);
158160
}
159161

162+
public Map<UUID, String> getRegisteredUsers() throws NamelessException {
163+
Request request = new Request(apiUrl, Action.LIST_USERS);
164+
request.connect();
165+
if (request.hasError()) {
166+
throw new ApiError(request.getError());
167+
}
168+
169+
Map<UUID, String> users = new HashMap<>();
170+
171+
request.getResponse().get("users").getAsJsonArray().forEach(userJsonElement -> {
172+
final String uuid = userJsonElement.getAsJsonObject().get("uuid").getAsString();
173+
final String username = userJsonElement.getAsJsonObject().get("username").getAsString();
174+
175+
users.put(websiteUuidToJavaUuid(uuid), username);
176+
});
177+
178+
return users;
179+
}
180+
181+
public List<NamelessPlayer> getRegisteredUsersAsNamelessPlayerList() throws NamelessException {
182+
Map<UUID, String> users = getRegisteredUsers();
183+
List<NamelessPlayer> namelessPlayers = new ArrayList<>();
184+
185+
for (UUID userUuid : users.keySet()) {
186+
namelessPlayers.add(this.getPlayer(userUuid));
187+
}
188+
189+
return namelessPlayers;
190+
}
191+
160192
static String encode(Object object) {
161193
try {
162194
return URLEncoder.encode(object.toString(), "UTF-8");
@@ -170,6 +202,24 @@ static String[] jsonToArray(JsonArray jsonArray) {
170202
jsonArray.iterator().forEachRemaining((element) -> list.add(element.getAsString()));
171203
return list.toArray(new String[] {});
172204
}
205+
206+
static UUID websiteUuidToJavaUuid(String uuid) {
207+
// Add dashes to uuid
208+
// https://bukkit.org/threads/java-adding-dashes-back-to-minecrafts-uuids.272746/
209+
StringBuffer sb = new StringBuffer(uuid);
210+
sb.insert(8, "-");
211+
212+
sb = new StringBuffer(sb.toString());
213+
sb.insert(13, "-");
214+
215+
sb = new StringBuffer(sb.toString());
216+
sb.insert(18, "-");
217+
218+
sb = new StringBuffer(sb.toString());
219+
sb.insert(23, "-");
220+
221+
return UUID.fromString(sb.toString());
222+
}
173223

174224

175225
}

src/com/namelessmc/NamelessAPI/Request.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public static enum Action {
195195
GET_NOTIFICATIONS("getNotifications", GET),
196196
SERVER_INFO("serverInfo", POST),
197197
VALIDATE_USER("validateUser", POST),
198+
LIST_USERS("listUsers", GET),
198199

199200
;
200201

0 commit comments

Comments
 (0)