SteamWar/BungeeCore
Archiviert
13
2

Add PollResult Command #153

Manuell gemergt
Lixfel hat 4 Commits von pollresult nach master 2020-11-27 17:11:54 +01:00 zusammengeführt
5 geänderte Dateien mit 91 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -119,6 +119,7 @@ public class BungeeCore extends Plugin {
new RankCommand();
new IgnoreCommand();
new UnIgnoreCommand();
new PollresultCommand();
if(!EVENT_MODE){
new WebregisterCommand();

Datei anzeigen

@ -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 <https://www.gnu.org/licenses/>.
*/
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;
Review

i ist nicht wirklich sinnvoll, kann man weglassen.

i ist nicht wirklich sinnvoll, kann man weglassen.
Map<String, Integer> voted = PollAnswer.getCurrentResults();
Message.send("POLLRESULT_HEADER", player, PollAnswer.getAllAnswered(), PollSystem.getQuestion());
for (Map.Entry<String, Integer> e: voted.entrySet()) {
Message.send("POLLRESULT_LIST", sender, e.getKey(), e.getValue());
}
}
}

Datei anzeigen

@ -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);
}
}

Datei anzeigen

@ -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<String, Integer> 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<String, Integer> 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);
}
}
Review

throw new SecurityException("Unable to get PollAnswer", e);

Kein extra-loggen vorher, weil du möchtest nicht den Bungeelog nach Fehlern durchsuchen!

throw new SecurityException("Unable to get PollAnswer", e); Kein extra-loggen vorher, weil du möchtest nicht den Bungeelog nach Fehlern durchsuchen!
public static Integer getAllAnswered() {
ResultSet set = SQL.select("SELECT Count(UserID) AS Times FROM PollAnswer WHERE Question = ?", PollSystem.getQuestion());
try {
if(!set.next())
Veraltet
Review

Da sollte man evtl. noch nach WHERE Question = ? überprüfen.

Da sollte man evtl. noch nach WHERE Question = ? überprüfen.
throw new SecurityException("Could not get PollAnswers");
return set.getInt("Times");
}catch (SQLException e) {
throw new SecurityException("Unable to get PollAnswer", e);
}
}
Review

Genauso.

Genauso.

Datei anzeigen

@ -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.
Veraltet
Review

Das ganze würde ich nicht §e§l machen, das wäre etwas penetrant, eher §7§l oder nur §e. Dazu bitte nicht §f (Nicht im Farbschema!), wenn dann §7

Das ganze würde ich nicht §e§l machen, das wäre etwas penetrant, eher §7§l oder nur §e. Dazu bitte nicht §f (Nicht im Farbschema!), wenn dann §7
POLLRESULT_HEADER=§eEs haben {0} abgestimmt auf die Frage: §7{1}
Veraltet
Review

Bitte eher §e{2}§8: §7{1}

Bitte eher §e{2}§8: §7{1}
POLLRESULT_LIST=§e{0}§8: §7{1}