@@ -189,12 +189,21 @@ record UpdateReq(@JsonProperty(required = true) String username) { }
189189 @ Override
190190 public void delete (Context ctx ) throws JsonProcessingException {
191191 UUID uniqueId = pathParamAsUuid (ctx );
192- CompletableFuture <Void > future = this .userManager .loadUser (uniqueId ).thenCompose (user -> {
193- user .data ().clear ();
194- return this .userManager .saveUser (user ).thenRun (() -> {
195- this .messagingService .pushUserUpdate (user );
192+ boolean playerDataOnly = ctx .queryParamAsClass ("playerDataOnly" , Boolean .class ).getOrDefault (false );
193+
194+ CompletableFuture <Void > future ;
195+ if (playerDataOnly ) {
196+ future = this .userManager .deletePlayerData (uniqueId );
197+ } else {
198+ future = this .userManager .loadUser (uniqueId ).thenCompose (user -> {
199+ user .data ().clear ();
200+ return this .userManager .saveUser (user ).thenCompose (ignored -> {
201+ this .messagingService .pushUserUpdate (user );
202+ return this .userManager .deletePlayerData (uniqueId );
203+ });
196204 });
197- });
205+ }
206+
198207 ctx .future (future , result -> ctx .result ("ok" ));
199208 }
200209
@@ -240,14 +249,18 @@ public void nodesDeleteAll(Context ctx) throws JsonProcessingException {
240249 ? null
241250 : this .objectMapper .readValue (ctx .body (), new TypeReference <>(){});
242251
243- CompletableFuture <?> future = this .userManager .modifyUser (uniqueId , user -> {
252+ CompletableFuture <?> future = this .userManager .loadUser (uniqueId ). thenCompose ( user -> {
244253 if (nodes == null ) {
245254 user .data ().clear ();
246255 } else {
247256 for (Node node : nodes ) {
248257 user .data ().remove (node );
249258 }
250259 }
260+ return this .userManager .saveUser (user ).thenApply (v -> {
261+ this .messagingService .pushUserUpdate (user );
262+ return user .getNodes ();
263+ });
251264 });
252265 ctx .future (future , result -> ctx .result ("ok" ));
253266 }
0 commit comments