diff --git a/src/de/steamwar/bungeecore/BungeeCore.java b/src/de/steamwar/bungeecore/BungeeCore.java
index a6a9cca..6252b19 100644
--- a/src/de/steamwar/bungeecore/BungeeCore.java
+++ b/src/de/steamwar/bungeecore/BungeeCore.java
@@ -119,6 +119,7 @@ public class BungeeCore extends Plugin {
new RankCommand();
new IgnoreCommand();
new UnIgnoreCommand();
+ new PollresultCommand();
if(!EVENT_MODE){
new WebregisterCommand();
diff --git a/src/de/steamwar/bungeecore/commands/PollresultCommand.java b/src/de/steamwar/bungeecore/commands/PollresultCommand.java
new file mode 100644
index 0000000..1d39e9e
--- /dev/null
+++ b/src/de/steamwar/bungeecore/commands/PollresultCommand.java
@@ -0,0 +1,54 @@
+/*
+ This file is a part of the SteamWar software.
+
+ Copyright (C) 2020 SteamWar.de-Serverteam
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+ */
+
+package de.steamwar.bungeecore.commands;
+
+import de.steamwar.bungeecore.Message;
+import de.steamwar.bungeecore.listeners.PollSystem;
+import de.steamwar.bungeecore.sql.PollAnswer;
+import net.md_5.bungee.api.CommandSender;
+import net.md_5.bungee.api.connection.ProxiedPlayer;
+
+import java.util.Map;
+
+public class PollresultCommand extends BasicCommand {
+
+ public PollresultCommand() {
+ super("pollresult", "bungeecore.pollresults");
+ }
+
+ @Override
+ public void execute(CommandSender sender, String[] strings) {
+ if(!(sender instanceof ProxiedPlayer))
+ return;
+
+ if(PollSystem.noCurrentPoll()) {
+ Message.send("POLLRESULT_NOPOLL", sender);
+ return;
+ }
+
+ ProxiedPlayer player = (ProxiedPlayer) sender;
+
+ Map voted = PollAnswer.getCurrentResults();
+ Message.send("POLLRESULT_HEADER", player, PollAnswer.getAllAnswered(), PollSystem.getQuestion());
+ for (Map.Entry e: voted.entrySet()) {
+ Message.send("POLLRESULT_LIST", sender, e.getKey(), e.getValue());
+ }
+ }
+}
diff --git a/src/de/steamwar/bungeecore/listeners/PollSystem.java b/src/de/steamwar/bungeecore/listeners/PollSystem.java
index 4572e27..3dcca63 100644
--- a/src/de/steamwar/bungeecore/listeners/PollSystem.java
+++ b/src/de/steamwar/bungeecore/listeners/PollSystem.java
@@ -78,4 +78,8 @@ public class PollSystem extends BasicListener {
public static int answers(){
return answers.size();
}
+
+ public static String getAnswer(int i) {
+ return answers.get(i);
+ }
}
diff --git a/src/de/steamwar/bungeecore/sql/PollAnswer.java b/src/de/steamwar/bungeecore/sql/PollAnswer.java
index 043d1a6..62fcee0 100644
--- a/src/de/steamwar/bungeecore/sql/PollAnswer.java
+++ b/src/de/steamwar/bungeecore/sql/PollAnswer.java
@@ -24,6 +24,8 @@ import de.steamwar.bungeecore.listeners.PollSystem;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
public class PollAnswer {
@@ -48,8 +50,31 @@ public class PollAnswer {
return new PollAnswer(userID, PollSystem.getQuestion());
return new PollAnswer(rs);
} catch (SQLException e) {
- BungeeCore.log("Unable to get PollAnswer", e);
- throw new SecurityException();
+ throw new SecurityException("Unable to get PollAnswer", e);
+ }
+ }
+
+ public static Map getCurrentResults() {
+ ResultSet set = SQL.select("SELECT Count(UserID) AS Times, Answer FROM PollAnswer WHERE Question = ? GROUP BY Answer ORDER BY `Times` ASC", PollSystem.getQuestion());
+ try {
+ Map retMap = new HashMap<>();
+ while (set.next()) {
+ retMap.put(PollSystem.getAnswer(set.getInt("Answer")), set.getInt("Times"));
+ }
+ return retMap;
+ }catch (SQLException e) {
+ throw new SecurityException("Unable to get PollAnswer", e);
+ }
+ }
+
+ public static Integer getAllAnswered() {
+ ResultSet set = SQL.select("SELECT Count(UserID) AS Times FROM PollAnswer WHERE Question = ?", PollSystem.getQuestion());
+ try {
+ if(!set.next())
+ throw new SecurityException("Could not get PollAnswers");
+ return set.getInt("Times");
+ }catch (SQLException e) {
+ throw new SecurityException("Unable to get PollAnswer", e);
}
}
diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties
index 6855cb7..e4cc7a2 100644
--- a/src/de/steamwar/messages/BungeeCore.properties
+++ b/src/de/steamwar/messages/BungeeCore.properties
@@ -53,3 +53,8 @@ HELP_BAU_TESTARENA=§8/§ebau testarena §8- §7Starte eine Testarena
HELP_BAU_TESTARENA_HOVER=§eTestarena starten
HELP_BAU_BAU=§8/§ehelp bau §8- §7Hilfe zu nützlichen Werkzeugen
HELP_BAU_BAU_HOVER=§eNützliche Zusatzfunktionen
+
+#PollresultCommand
+POLLRESULT_NOPOLL=§cDerzeit läuft keine Umfrage.
+POLLRESULT_HEADER=§eEs haben {0} abgestimmt auf die Frage: §7{1}
+POLLRESULT_LIST=§e{0}§8: §7{1}
\ No newline at end of file