From 83f33a7823f982721dc91677f310d0f7dfea6147 Mon Sep 17 00:00:00 2001 From: SimSonic Date: Fri, 5 Aug 2016 01:47:40 +0700 Subject: [PATCH] removeGroup and removePermission are done... (not tested). --- .../Bukkit/Commands/CommandEntity.java | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java index b5118f7..8dc090a 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java @@ -407,14 +407,56 @@ public class CommandEntity { final ArrayList answer = new ArrayList<>(); // Find out what does entered identifier mean? - rscp.connection.removeInheritanceById(1200); + final LinkedList possibleTargets = new LinkedList<>(); + for(RowInheritance row : entity.inheritance) + { + if(whatToRemove.equalsIgnoreCase(row.splittedId)) + { + if(row.hasClonesInRow()) + answer.add("{_LR}Cannot remove inheritance record {_WH}" + + row.splittedId + "{_LR} from DB due to too complex initial data."); + else + possibleTargets.add(row); + continue; + } + if(whatToRemove.equalsIgnoreCase(row.parent)) + possibleTargets.add(row); + } + if(possibleTargets.size() == 0) + throw new CommandAnswerException("{_LR}Sorry, I don't understand what I have to remove from DB."); + if(possibleTargets.size() > 1) + throw new CommandAnswerException("{_LR}There are several possibilities what to remove. Please use unique white id."); + final RowInheritance row = possibleTargets.get(0); + rscp.connection.removeInheritanceById(row.id); + answer.add("{_LR}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LR}!"); throw new CommandAnswerException(answer); } private void removePermission(RowEntity entity, String whatToRemove) throws CommandAnswerException { final ArrayList answer = new ArrayList<>(); // Find out what does entered identifier mean? - rscp.connection.removePermissionsById(1200); + final LinkedList possibleTargets = new LinkedList<>(); + for(RowPermission row : entity.permissions) + { + if(whatToRemove.equalsIgnoreCase(row.splittedId)) + { + if(row.hasClonesInRow()) + answer.add("{_LR}Cannot remove inheritance record {_WH}" + + row.splittedId + "{_LR} from DB due to too complex initial data."); + else + possibleTargets.add(row); + continue; + } + if(whatToRemove.equalsIgnoreCase(row.permission)) + possibleTargets.add(row); + } + if(possibleTargets.size() == 0) + throw new CommandAnswerException("{_LR}Sorry, I don't understand what I should remove from DB."); + if(possibleTargets.size() > 1) + throw new CommandAnswerException("{_LR}There are several possibilities what to remove. Please use unique white id."); + final RowPermission row = possibleTargets.get(0); + rscp.connection.removeInheritanceById(row.id); + answer.add("{_LR}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LR}!"); throw new CommandAnswerException(answer); } }