Implement delete command
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
efd506eb74
commit
ae2e2e5d82
@ -32,10 +32,11 @@ public class NounsAddSubCommand
|
|||||||
|
|
||||||
int id = Cache.dbManager.getPronounId(pronoun);
|
int id = Cache.dbManager.getPronounId(pronoun);
|
||||||
sender.sendMessage("New pronoun " + pronoun + " added with id " + id + "! Format is " + format);
|
sender.sendMessage("New pronoun " + pronoun + " added with id " + id + "! Format is " + format);
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Error creating new pronoun! Check console for details.");
|
sender.sendMessage("Error creating new pronoun! Check console for details.");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package wtf.beatrice.nounspicker.commands.subcommands;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import wtf.beatrice.nounspicker.utils.Cache;
|
||||||
|
|
||||||
|
public class NounsDeleteSubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
public static boolean run(@NotNull CommandSender sender,
|
||||||
|
@NotNull String[] args)
|
||||||
|
{
|
||||||
|
if(args.length < 2) {
|
||||||
|
sender.sendMessage("usage: /nouns delete <pronoun>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String pronoun = args[1].toLowerCase();
|
||||||
|
|
||||||
|
if(!Cache.dbManager.isPronounValid(pronoun))
|
||||||
|
{
|
||||||
|
sender.sendMessage("The pronoun " + pronoun + " doesn't exist!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Cache.dbManager.deletePronoun(pronoun))
|
||||||
|
{
|
||||||
|
sender.sendMessage("Pronoun deleted successfully and removed from all users!");
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage("Could not delete pronoun " + pronoun + "! Check console for details.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -61,8 +61,8 @@ public class DatabaseManager
|
|||||||
|
|
||||||
newTables.add("CREATE TABLE IF NOT EXISTS players (" +
|
newTables.add("CREATE TABLE IF NOT EXISTS players (" +
|
||||||
"player text NOT NULL," +
|
"player text NOT NULL," +
|
||||||
"main_pronoun_id integer," +
|
"main_pronoun_id INTEGER DEFAULT -1," +
|
||||||
"secondary_pronoun_id integer" +
|
"secondary_pronoun_id INTEGER DEFAULT -1" +
|
||||||
");");
|
");");
|
||||||
|
|
||||||
newTables.add("CREATE TABLE IF NOT EXISTS pronouns (" +
|
newTables.add("CREATE TABLE IF NOT EXISTS pronouns (" +
|
||||||
@ -169,6 +169,47 @@ public class DatabaseManager
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean deletePronoun(String pronoun) {
|
||||||
|
|
||||||
|
// get the pronoun id (so we can remove it from users)
|
||||||
|
int pronounId = getPronounId(pronoun);
|
||||||
|
|
||||||
|
// delete it from the list of pronouns
|
||||||
|
String query = "DELETE FROM pronouns " +
|
||||||
|
"WHERE pronoun = ?;";
|
||||||
|
|
||||||
|
try (PreparedStatement preparedStatement = dbConnection.prepareStatement(query)) {
|
||||||
|
preparedStatement.setString(1, pronoun);
|
||||||
|
preparedStatement.execute();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.err(e.getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set players who had this pronoun to -1, which means no pronoun
|
||||||
|
List<String> queries = new ArrayList<>();
|
||||||
|
|
||||||
|
queries.add("UPDATE players " +
|
||||||
|
"SET main_pronoun_id = -1 " +
|
||||||
|
"WHERE main_pronoun_id = " + pronounId + ";");
|
||||||
|
|
||||||
|
queries.add("UPDATE players " +
|
||||||
|
"SET secondary_pronoun_id = -1 " +
|
||||||
|
"WHERE secondary_pronoun_id = " + pronounId + ";");
|
||||||
|
|
||||||
|
for(String q : queries) {
|
||||||
|
try(Statement stmt = dbConnection.createStatement()) {
|
||||||
|
stmt.execute(q);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.err(e.getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// accounce success
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user