From 68bac1455ee3a417ad5d48f9f30683f978a96a31 Mon Sep 17 00:00:00 2001 From: Julia Butenhoff Date: Wed, 22 Nov 2023 17:18:28 -0600 Subject: [PATCH] Added GetLevelInfo for the GalaxyServer --- .../ArkOne/Plugins/UserPlugin.java | 5 +++- .../UBFunkeysServer/Galaxy/GalaxyServer.java | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/Plugins/UserPlugin.java b/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/Plugins/UserPlugin.java index f591407..9578020 100644 --- a/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/Plugins/UserPlugin.java +++ b/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/Plugins/UserPlugin.java @@ -470,7 +470,10 @@ public class UserPlugin { if (buddy != null) { switch (plugin) { - case "5": + case "1": // Ace - Operation Flight Plan | Mulch - + + break; + case "5": // Lucky - Rainbow Shootout // Create new entry for the invitee RainbowShootout newRS = RainbowShootout.builder() .username(buddy.getUsername()) diff --git a/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java b/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java index 33903c2..0598b7e 100644 --- a/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java +++ b/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java @@ -235,6 +235,9 @@ public class GalaxyServer { case "search": response = search((Element)nodes.item(0)); break; + case "get_level_info": + response = getLevelInfo((Element)nodes.item(0)); + break; default: System.out.println("[Galaxy][POST][ERROR] Unhandled type of request for: " + command); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); @@ -672,4 +675,30 @@ public class GalaxyServer { return new ResponseEntity<>(response.toString(), HttpStatus.OK); } + + /** + * Get the level info for a level by ID + * NOTES: + * - This method is only used when challenging a friend + * - The level should always exist from here as it must've been shared to challenge a friend + * @param element the request element extracted from the XML + * @return level info for the requested level + */ + private ResponseEntity getLevelInfo(Element element) { + Integer levelId = Integer.valueOf(element.getAttribute("id")); + Level level = levelService.findLevelById(levelId).orElse(null); + + String levelData = ""; + try { + User creator = userService.findByUUID(level.getUserId()).orElse(null); + String creatorName = creator != null ? creator.getUsername() : "UNKNOWN"; + levelData += ""; + } + catch (NullPointerException e) { + return new ResponseEntity<>("", HttpStatus.OK); + } + return new ResponseEntity<>("" + levelData + "", HttpStatus.OK); + } }