From 398c386e914bccafa2d8b1cbe8fa27f052d7bac9 Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Wed, 4 Sep 2024 15:28:31 +0200 Subject: [PATCH 1/2] Added Notification when creating a poll --- .../commands/CreatePollCommand.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java b/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java index ad7667b..fa4cff3 100644 --- a/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java +++ b/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java @@ -1,6 +1,7 @@ package com.shweit.pollmaster.commands; import com.shweit.pollmaster.utils.ConnectionManager; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -11,8 +12,10 @@ import java.sql.Connection; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.UUID; @@ -82,14 +85,21 @@ public boolean onCommand(final CommandSender sender, final Command command, fina String optionsAsJsonString = convertListToJson(answers); // Speichere das Poll in der Datenbank + int id = 0; try { - savePollToDatabase(player.getUniqueId(), question, optionsAsJsonString, allowMultipleAnswers); + id = savePollToDatabase(player.getUniqueId(), question, optionsAsJsonString, allowMultipleAnswers); player.sendMessage("Poll created successfully!"); } catch (SQLException e) { player.sendMessage("An error occurred while saving the poll."); e.printStackTrace(); } + int finalId = id; + Bukkit.getOnlinePlayers().forEach(p -> { + p.sendMessage(ChatColor.GREEN + "A new poll has been created by " + player.getName() + "."); + p.sendMessage(ChatColor.GREEN + "To view the poll, type /vote " + finalId); + }); + return true; } @@ -97,7 +107,7 @@ private String convertListToJson(final List list) { return gson.toJson(list); } - private void savePollToDatabase(final UUID uniqueId, final String question, final String answersAsJsonString, final boolean multi) throws SQLException { + private int savePollToDatabase(final UUID uniqueId, final String question, final String answersAsJsonString, final boolean multi) throws SQLException { Connection connection = new ConnectionManager().getConnection(); String insertPollQuery = "INSERT INTO polls (uuid, question, answers, allowMultiple, isOpen) VALUES (?, ?, ?, ?, ?)"; @@ -109,6 +119,23 @@ private void savePollToDatabase(final UUID uniqueId, final String question, fina preparedStatement.setBoolean(5, true); preparedStatement.executeUpdate(); } + + // Return the ID of the poll + String query = "SELECT id FROM polls WHERE uuid = ? AND question = ? AND answers = ? AND allowMultiple = ? AND isOpen = ?"; + try (PreparedStatement statement = connection.prepareStatement(query)) { + statement.setString(1, uniqueId.toString()); + statement.setString(2, question); + statement.setString(3, answersAsJsonString); + statement.setBoolean(4, multi); + statement.setBoolean(5, true); + try (ResultSet results = statement.executeQuery()) { + if (results.next()) { + return results.getInt("id"); + } + } + } + + return 0; } @Override From 1501fcf4a3cf1cd2722246b5f3938b3d09768dbb Mon Sep 17 00:00:00 2001 From: Dennis van den Brock Date: Wed, 4 Sep 2024 15:30:42 +0200 Subject: [PATCH 2/2] meet code standards --- .../java/com/shweit/pollmaster/commands/CreatePollCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java b/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java index fa4cff3..d855402 100644 --- a/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java +++ b/src/main/java/com/shweit/pollmaster/commands/CreatePollCommand.java @@ -15,7 +15,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.UUID;